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