https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86487
Bug ID: 86487 Summary: [7/8/9 Regression] insn does not satisfy its constraints on arm big-endian Product: gcc Version: unknown Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: ktkachov at gcc dot gnu.org Target Milestone: --- Target: arm int a, b, c, d; long long fn1(long long p2) { return p2 == 0 ? -1 : -1 % p2; } void fn2(long long p1, short p2, long p3) { b = fn1((d || 6) & a); c = b | p3; } Compiled for arm-none-eabi with -O1 -mfloat-abi=hard -mfpu=neon -mbig-endian -march=armv7-a ICEs with: anddi.c: In function 'fn2': anddi.c:6:1: error: insn does not satisfy its constraints: } ^ (insn 13 11 14 2 (set (reg:DI 0 r0 [124]) (and:DI (reg:DI 1 r1 [orig:121+-4 ] [121]) (const_int 1 [0x1]))) "anddi.c":2 79 {*anddi3_insn} (nil)) during RTL pass: reload anddi.c:6:1: internal compiler error: in extract_constrain_insn, at recog.c:2205 0xb6d56c _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) $SRC/gcc/rtl-error.c:108 0xb6d59d _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) $SRC/gcc/rtl-error.c:119 0xb40af6 extract_constrain_insn(rtx_insn*) $SRC/gcc/recog.c:2205 0xa3d659 check_rtl $SRC/gcc/lra.c:2156 0xa42258 lra(_IO_FILE*) $SRC/gcc/lra.c:2590 0x9f9298 do_reload $SRC/gcc/ira.c:5465 0x9f9298 execute $SRC/gcc/ira.c:5649 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.