https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119096
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Gimple level: vect__4.8_45 = MEM <vector(16) int> [(int *)A_15(D)]; vect__10.16_54 = [vec_unpack_lo_expr] vect__4.8_45; vect__10.16_55 = [vec_unpack_hi_expr] vect__4.8_45; mask__5.9_46 = vect__4.8_45 > { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; vect__7.12_49 = MEM <vector(16) int> [(int *)B_16(D)]; mask__8.13_50 = vect__7.12_49 > { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; mask__9.14_51 = mask__5.9_46 & mask__8.13_50; mask_patt_37.15_53 = [vec_unpack_hi_expr] mask__9.14_51; // Only use the upper half vect_patt_36.18_58 = .COND_ADD (mask_patt_37.15_53, vect__10.16_54, vect__10.16_55, vect__10.16_55); _60 = .REDUC_PLUS (vect_patt_36.18_58); [tail call]