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

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Yeah, that doesn't fix the SHL_INSERT.

@@ -3628,17 +3628,17 @@
 t.c:14:21: note:  ------>vectorizing phi: i_12 = PHI <i_7(5), 0(12)>
 t.c:14:21: note:  ------>vectorizing phi: ivtmp_14 = PHI <ivtmp_13(5),
32000(12)>
 t.c:14:21: note:  ------>vectorizing phi: vectp_in.6_30 = PHI
<vectp_in.6_31(5), &in(12)>
-t.c:14:21: note:  ------>vectorizing phi: vect_res_10.13_43 = PHI
<vect_res_6.14_47(5), { 0, ... }(12)>
-t.c:14:21: note:  ------>vectorizing phi: vect_res_10.13_44 = PHI
<vect_res_6.14_48(5), { 0, ... }(12)>
+t.c:14:21: note:  ------>vectorizing phi: vect_res_10.13_44 = PHI
<vect_res_6.14_48(5), _43(12)>
 t.c:14:21: note:  ------>vectorizing phi: vect_res_10.13_45 = PHI
<vect_res_6.14_49(5), { 0, ... }(12)>
 t.c:14:21: note:  ------>vectorizing phi: vect_res_10.13_46 = PHI
<vect_res_6.14_50(5), { 0, ... }(12)>
+t.c:14:21: note:  ------>vectorizing phi: vect_res_10.13_47 = PHI
<vect_res_6.14_51(5), { 0, ... }(12)>

so the SHL_INSERT happens in get_initial_defs_for_reduction where we
fail to optimize the case of the neutral op being equal to all elts.

But it's going to be interesting to find that other == or != compare of
types which is certainly there somewhere triggering another path
(the dump difference doesn't give a hint).

Reply via email to