https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98766
Bug ID: 98766 Summary: SVE: ICE in tree_to_shwi with -O3 --param=avoid-fma-max-bits Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: acoplan at gcc dot gnu.org Target Milestone: --- The following fails: $ cat test.c extern int a[]; void c(short *d) { for (int e = 0; e < 9; e++) a[e] = d[e] * 2; } $ aarch64-elf-gcc -c test.c -march=armv8.2-a+sve -O3 --param=avoid-fma-max-bits=8 during GIMPLE pass: widening_mul test.c: In function 'c': test.c:2:6: internal compiler error: in tree_to_shwi, at tree.c:7448 2 | void c(short *d) { | ^ 0x11684f0 tree_to_shwi(tree_node const*) /home/alecop01/toolchain/src/gcc/gcc/tree.c:7448 0xfd97c1 convert_mult_to_fma /home/alecop01/toolchain/src/gcc/gcc/tree-ssa-math-opts.c:3255 0xfda040 after_dom_children /home/alecop01/toolchain/src/gcc/gcc/tree-ssa-math-opts.c:4619 0x19d3d80 dom_walker::walk(basic_block_def*) /home/alecop01/toolchain/src/gcc/gcc/domwalk.c:352 0xfd3731 execute /home/alecop01/toolchain/src/gcc/gcc/tree-ssa-math-opts.c:4718 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. Removing any one of the options makes the ICE go away. It appears to ICE at any nonzero valid value of the param (although I've not checked this exhaustively).