https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78590
Bug ID: 78590 Summary: [7 Regression] FAIL: gcc.target/aarch64/advsimd-intrinsics/vget_lane.c in change_zero_ext in combine Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: ktkachov at gcc dot gnu.org CC: segher at gcc dot gnu.org Target Milestone: --- Target: aarch64 I believe after r242950 in combine we started seeing some ICEs in some __fp16 tests on aarch64: FAIL: gcc.target/aarch64/advsimd-intrinsics/vget_lane.c bad.c: In function 'fn1': bad.c:8:1: internal compiler error: in gen_rtx_SUBREG, at emit-rtl.c:908 } ^ 0x7fd144 gen_rtx_SUBREG(machine_mode, rtx_def*, int) $SRC/gcc/emit-rtl.c:908 0x7fd183 gen_lowpart_SUBREG(machine_mode, rtx_def*) $SRC/gcc/emit-rtl.c:924 0x10e46f5 change_zero_ext $SRC/gcc/combine.c:11259 0x10e4ca8 recog_for_combine $SRC/gcc/combine.c:11345 0x10f0764 try_combine $SRC/gcc/combine.c:3501 0x10f4c7f combine_instructions $SRC/gcc/combine.c:1265 0x10f4c7f rest_of_handle_combine $SRC/gcc/combine.c:14580 0x10f4c7f execute $SRC/gcc/combine.c:14625 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. A reduced reproducer is: int a; int fn2 (); void fn3 (); void fn1() { __fp16 b = fn2(); if (*(unsigned short *)&b != a) fn3(); } ICEs at -O1 on aarch64