https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99252
Bug ID: 99252 Summary: SVE: ICE in maybe_legitimize_operand with LTO Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: acoplan at gcc dot gnu.org Target Milestone: --- Presumably related to PR99216 since we fail to compile a simpler call to svaddv with LTO there (although we're ICEing in a different place). $ cat test.cc #include <arm_sve.h> int main() { return svaddv(svptrue_b8(), svadd_z(svptrue_b8(), svdup_s64(0), svdup_s64(0))); } $ aarch64-linux-gnu-gcc -march=armv8.2-a+sve -flto test.cc during RTL pass: expand test.cc: In function ‘main’: test.cc:3:16: internal compiler error: in maybe_legitimize_operand, at optabs.c:7622 3 | return svaddv(svptrue_b8(), svadd_z(svptrue_b8(), svdup_s64(0), svdup_s64(0))); | ^ 0xb855b3 maybe_legitimize_operand /home/alecop01/toolchain/src/gcc/gcc/optabs.c:7621 0xb855b3 maybe_legitimize_operands(insn_code, unsigned int, unsigned int, expand_operand*) /home/alecop01/toolchain/src/gcc/gcc/optabs.c:7758 0xb85926 maybe_gen_insn(insn_code, unsigned int, expand_operand*) /home/alecop01/toolchain/src/gcc/gcc/optabs.c:7777 0xb85b42 maybe_expand_insn(insn_code, unsigned int, expand_operand*) /home/alecop01/toolchain/src/gcc/gcc/optabs.c:7820 0xb850d9 expand_insn(insn_code, unsigned int, expand_operand*) /home/alecop01/toolchain/src/gcc/gcc/optabs.c:7851 0x1194a47 aarch64_sve::function_expander::generate_insn(insn_code) /home/alecop01/toolchain/src/gcc/gcc/config/aarch64/aarch64-sve-builtins.cc:2883 0x11953e1 aarch64_sve::function_expander::use_exact_insn(insn_code) /home/alecop01/toolchain/src/gcc/gcc/config/aarch64/aarch64-sve-builtins.cc:3031 0x1196101 aarch64_sve::function_expander::expand() /home/alecop01/toolchain/src/gcc/gcc/config/aarch64/aarch64-sve-builtins.cc:3318 0x1197242 aarch64_sve::expand_builtin(unsigned int, tree_node*, rtx_def*) /home/alecop01/toolchain/src/gcc/gcc/config/aarch64/aarch64-sve-builtins.cc:3607 0x10f62eb aarch64_expand_builtin /home/alecop01/toolchain/src/gcc/gcc/config/aarch64/aarch64.c:13568 0x74b79a expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int) /home/alecop01/toolchain/src/gcc/gcc/builtins.c:9518 0x8c51cc expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/alecop01/toolchain/src/gcc/gcc/expr.c:11276 0x8c6779 expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/alecop01/toolchain/src/gcc/gcc/expr.c:8513 0x8cfc1c store_expr(tree_node*, rtx_def*, int, bool, bool) /home/alecop01/toolchain/src/gcc/gcc/expr.c:5886 0x8d1927 expand_assignment(tree_node*, tree_node*, bool) /home/alecop01/toolchain/src/gcc/gcc/expr.c:5622 0x780d7c expand_call_stmt /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.c:2838 0x780d7c expand_gimple_stmt_1 /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.c:3844 0x780d7c expand_gimple_stmt /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.c:4008 0x78a5a7 expand_gimple_basic_block /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.c:6045 0x78bc61 execute /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.c:6729 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. lto-wrapper: fatal error: aarch64-linux-gnu-gcc returned 1 exit status compilation terminated. /home/alecop01/toolchain/build-aarch64-linux-gnu/install/bin/../lib/gcc/aarch64-linux-gnu/11.0.0/../../../../aarch64-linux-gnu/bin/ld: error: lto-wrapper failed collect2: error: ld returned 1 exit status