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).

Reply via email to