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

--- Comment #2 from Alex Coplan <acoplan at gcc dot gnu.org> ---
For the related testcase:

int a, c, d, e;
long b;
void f() {
  short g = a;
  for (; c; c++) {
    b &= a == 0 ? 1 : g / a;
    d |= e;
  }
}

with the same options on AArch64, we ICE with a similar (but not identical)
backtrace:

during GIMPLE pass: vect
test.c: In function 'f':
test.c:3:6: internal compiler error: in vect_get_loop_mask, at
tree-vect-loop.c:8868
    3 | void f() {
      |      ^
0x10a45cc vect_get_loop_mask(gimple_stmt_iterator*, auto_vec<rgroup_controls,
0ul>*, unsigned int, tree_node*, unsigned int)
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-loop.c:8867
0x1085843 vectorizable_condition
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-stmts.c:10195
0x109b040 vect_transform_stmt(vec_info*, _stmt_vec_info*,
gimple_stmt_iterator*, _slp_tree*, _slp_instance*)
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-stmts.c:10831
0x10a1eb3 vect_transform_loop_stmt
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-loop.c:9053
0x10bee28 vect_transform_loop(_loop_vec_info*, gimple*)
        /home/alecop01/toolchain/src/gcc/gcc/tree-vect-loop.c:9475
0x10eb324 try_vectorize_loop_1
        /home/alecop01/toolchain/src/gcc/gcc/tree-vectorizer.c:1091
0x10eba51 try_vectorize_loop
        /home/alecop01/toolchain/src/gcc/gcc/tree-vectorizer.c:1148
0x10ebe2b vectorize_loops()
        /home/alecop01/toolchain/src/gcc/gcc/tree-vectorizer.c:1229
0xf7843d execute
        /home/alecop01/toolchain/src/gcc/gcc/tree-ssa-loop.c:414
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.

Reply via email to