https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125947
Bug ID: 125947
Summary: ICE in extract_constrain_insn, at recog.cc:2795 (insn
does not satisfy its constraints:
*aarch64_simd_movv2qi)
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: dhruvc at gcc dot gnu.org
Target Milestone: ---
Target: aarch64
Looks like the same issue as PR125716.
Test case:
===
namespace c
{
template <typename d> void move (d);
struct b
{
char operator[] (int);
};
template <typename d> struct f
{
f () = default;
f (f &);
void
g (d e)
{
move (e);
}
};
} // namespace c
struct a
{
a (char);
a (c::b &);
char m_a, m_z;
c::f<a> h;
};
a::a (char ch) : m_a (ch) {}
a::a (c::b &str)
{
for (int i;;)
h.g (str[i]);
}
===
Compiled with: -mcpu=olympus -muser-provided-CPU=file.json -O3
JSON:
===
{
"metadata": {
"gcc_version": 17
},
"tune_params": {
"regmove_cost": {
"GP2FP": 2
},
"vec_costs": {
"scalar_store_cost": 5
}
}
}
===
Gives the following error:
t.cpp: In constructor ‘a::a(c::b&)’:
t.cpp:34:1: error: insn does not satisfy its constraints:
34 | }
| ^
(insn 54 16 14 3 (set (reg:V2QI 63 v31 [orig:109 _1 ] [109])
(reg:V2QI 3 x3 [orig:109 _1 ] [109])) "t.cpp":20:8 1390
{*aarch64_simd_movv2qi}
(nil))
during RTL pass: reload
t.cpp:34:1: internal compiler error: in extract_constrain_insn, at
recog.cc:2795
0x28764b7 internal_error(char const*, ...)
../../gcc/gcc/diagnostic-global-context.cc:787
0x8a311b fancy_abort(char const*, int, char const*)
../../gcc/gcc/diagnostics/context.cc:1813
0x87e81b _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
../../gcc/gcc/rtl-error.cc:108
0x87e85b _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
../../gcc/gcc/rtl-error.cc:118
0x13b0ce3 extract_constrain_insn(rtx_insn*)
../../gcc/gcc/recog.cc:2795
0x12317e7 check_rtl
../../gcc/gcc/lra.cc:2242
0x12363e7 lra(_IO_FILE*, int)
../../gcc/gcc/lra.cc:2691
0x11e7e1b do_reload
../../gcc/gcc/ira.cc:6094
0x11e7e1b execute
../../gcc/gcc/ira.cc:6282
/proj/grco/gcc/Linux_aarch64/upstream-main/latest/libexec/gcc/aarch64-unknown-linux-gnu/17.0.0/cc1plus
-quiet -imultiarch aarch64-linux-gnu -D_GNU_SOURCE t.cpp
-mno-fix-cortex-a53-835769 -mno-fix-cortex-a53-843419 -quiet -dumpdir a-
-dumpbase t.cpp -dumpbase-ext .cpp -mcpu=olympus -muser-provided-CPU=u.json
-mlittle-endian -mabi=lp64 -O3 -mno-fix-cortex-a53-835769
-mno-fix-cortex-a53-843419 -o /tmp/ccGMZ8s5.s
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.