https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103741

            Bug ID: 103741
           Summary: [12 Regression] ICE in prepare_vec_mask, at
                    tree-vect-stmts.c:1808
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: aarch64-linux-gnu

gcc 12.0.0 alpha20211212 snapshot (g:0b52083ea2c2dd9897031fdc3802a68fd4aa45ef)
ICEs when compiling the following testcase w/ -march=armv8-a+sve -O1:

long int m, n;

int
qux (int z)
{
  return 4 >> z ? z : 0;
}

int
bar (long int y)
{
  return y ? 3 : 2;
}

__attribute__ ((simd)) int
foo (int x)
{
  long int a = x & m;
  int b = bar (x) / n;

  return qux (b) == a;
}

% aarch64-linux-gnu-gcc-12.0.0 -march=armv8-a+sve -O1 -c et9fimir.c
during GIMPLE pass: vect
et9fimir.c: In function 'foo.simdclone.0':
et9fimir.c:16:1: internal compiler error: in prepare_vec_mask, at
tree-vect-stmts.c:1808
   16 | foo (int x)
      | ^~~
0x8b2dd2 prepare_vec_mask
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211212/work/gcc-12-20211212/gcc/tree-vect-stmts.c:1808
0x1c877d0 vectorizable_operation
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211212/work/gcc-12-20211212/gcc/tree-vect-stmts.c:6372
0x1ca0218 vect_transform_stmt(vec_info*, _stmt_vec_info*,
gimple_stmt_iterator*, _slp_tree*, _slp_instance*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211212/work/gcc-12-20211212/gcc/tree-vect-stmts.c:11193
0x11cab9d vect_transform_loop_stmt
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211212/work/gcc-12-20211212/gcc/tree-vect-loop.c:9302
0x11e93b5 vect_transform_loop(_loop_vec_info*, gimple*)
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211212/work/gcc-12-20211212/gcc/tree-vect-loop.c:9738
0x121e6c7 vect_transform_loops
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211212/work/gcc-12-20211212/gcc/tree-vectorizer.c:1003
0x121e6c7 try_vectorize_loop_1
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211212/work/gcc-12-20211212/gcc/tree-vectorizer.c:1133
0x121e6c7 try_vectorize_loop
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211212/work/gcc-12-20211212/gcc/tree-vectorizer.c:1162
0x121ef74 execute
       
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211212/work/gcc-12-20211212/gcc/tree-vectorizer.c:1278

Reply via email to