https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71670
Bug ID: 71670 Summary: powerpc64le ICE in extract_constrain_insn with -mcpu=power9 Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: anton at samba dot org Target Milestone: --- The following testcase: volatile int a; int b; void fn1(void) { b + (long)b || a; } hits an ICE when built with: # gcc -O1 -mcpu=power9 testcase.c testcase.c: In function ‘fn1’: testcase.c:3:1: error: insn does not satisfy its constraints: void fn1(void) { b + (long)b || a; } ^~~~ (insn 24 23 9 2 (parallel [ (set (reg:CC 68 0 [162]) (compare:CC (ashift:DI (sign_extend:DI (reg:SI 10 10)) (const_int 1 [0x1])) (const_int 0 [0]))) (clobber (scratch:DI)) ]) testcase.c:3 260 {ashdi3_extswsli_dot} (expr_list:REG_DEAD (reg:SI 10 10) (nil))) testcase.c:3:1: internal compiler error: in extract_constrain_insn, at recog.c:2211 0x108329d3 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../gcc/gcc/rtl-error.c:108 0x10832a2b _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) ../../gcc/gcc/rtl-error.c:119 0x107f8797 extract_constrain_insn(rtx_insn*) ../../gcc/gcc/recog.c:2211 0x107fd89f copyprop_hardreg_forward_1 ../../gcc/gcc/regcprop.c:774 0x107fe8b7 execute ../../gcc/gcc/regcprop.c:1280