https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110625
Tamar Christina <tnfchris at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tnfchris at gcc dot gnu.org --- Comment #13 from Tamar Christina <tnfchris at gcc dot gnu.org> --- Hi, This patch is causing several ICEs: For instance in x264, during GIMPLE pass: vect x264_src/common/pixel.c: In function 'x264_pixel_satd_8x4.constprop': x264_src/common/pixel.c:234:21: internal compiler error: in info_for_reduction, at tree-vect-loop.cc:5473 234 | static NOINLINE int x264_pixel_satd_8x4( uint8_t *pix1, int i_pix1, uint8_t *pix2, int i_pix2 ) | ^ 0xe45e23 info_for_reduction(vec_info*, _stmt_vec_info*) /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/tree-vect-loop.cc:5473 0xf1e317 aarch64_force_single_cycle /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/config/aarch64/aarch64.cc:16782 0xf1e317 aarch64_vector_costs::count_ops(unsigned int, vect_cost_for_stmt, _stmt_vec_info*, aarch64_vec_op_count*) /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/config/aarch64/aarch64.cc:16807 0xf31fbb aarch64_vector_costs::add_stmt_cost(int, vect_cost_for_stmt, _stmt_vec_info*, _slp_tree*, tree_node*, int, vect_cost_model_location) /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/config/aarch64/aarch64.cc:17074 0xe59edb add_stmt_cost(vector_costs*, int, vect_cost_for_stmt, _stmt_vec_info*, _slp_tree*, tree_node*, int, vect_cost_model_location) /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/tree-vectorizer.h:1823 0xe59edb add_stmt_costs(vector_costs*, vec<stmt_info_for_cost, va_heap, vl_ptr>*) /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/tree-vectorizer.h:1870 0xe59edb vect_compute_single_scalar_iteration_cost /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/tree-vect-loop.cc:1624 0xe59edb vect_analyze_loop_2 /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/tree-vect-loop.cc:2710 0xe5bb07 vect_analyze_loop_1 /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/tree-vect-loop.cc:3329 0xe5c1cb vect_analyze_loop(loop*, vec_info_shared*) /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/tree-vect-loop.cc:3483 0xe90797 try_vectorize_loop_1 /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/tree-vectorizer.cc:1064 0xe90797 try_vectorize_loop /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/tree-vectorizer.cc:1180 0xe90cb3 execute /opt/buildAgent/work/5c94c4ced6ebfcd0/gcc/tree-vectorizer.cc:1296 This seems to be caused because in aarch64_force_single_cycle is unconditionally calling info_for_reduction without checking to see if this stmt is actually a reduction. You'll want to check STMT_VINFO_REDUC_DEF or STMT_VINFO_DEF_TYPE before calling this.