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.