https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64893
Bug ID: 64893
Summary: [5 Regression] ICE while doing a bootstrap with the
latest compiler
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Keywords: build, ice-on-valid-code
Severity: blocker
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: pinskia at gcc dot gnu.org
Target: aarch64*
Compile the following with -O0:
typedef __Uint32x2_t uint32x2_t;
__extension__ static __inline unsigned __attribute__
((__always_inline__))vget_lane_u32 (uint32x2_t __a, const int __b)
{
return __extension__ ({ __builtin_aarch64_im_lane_boundsi ((sizeof (__a) /
sizeof (__a[0])), __b); __a[__b]; });
}
int
search_line_fast (uint32x2_t t)
{
return vget_lane_u32 (t, 0);
}
-- CUT ---
With the C front-end, it works correctly but with the C++ front-end it fails
due to (int) (8 / 4) not being folded into just 2.