https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110986
--- Comment #14 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The next and final part for cond_unary_5.c:
(for unpack (vec_unpack_lo vec_unpack_hi)
(simplify
(negate (unpack (vec_cond @0 uniform_integer_cst_p@1
uniform_integer_cst_p@2)))
(with {
tree outer_mask_type = truth_type_for (type);
tree allones = build_minus_one_cst (type);
tree zeros = build_zero_cst (type);
}
(if (integer_onep (@1) && integer_zerop (@2))
(vec_cond (unpack:outer_mask_type @0) { allones; } { zeros; } )
(if (integer_onep (@2) && integer_zerop (@1))
(vec_cond (unpack:outer_mask_type @0) { zeros; } { allones; } ))))))
(simplify
(negate
(vec_pack_trunc
(vec_cond @0 uniform_integer_cst_p@1 uniform_integer_cst_p@2)
(vec_cond @3 @1 @2)))
(with {
tree outer_mask_type = truth_type_for (type);
tree allones = build_minus_one_cst (type);
tree zeros = build_zero_cst (type);
}
(if (integer_onep (@1) && integer_zerop (@2))
(vec_cond (vec_pack_trunc:outer_mask_type @0 @3) { allones; } { zeros; } )
(if (integer_onep (@2) && integer_zerop (@1))
(vec_cond (vec_pack_trunc:outer_mask_type @0 @3) { zeros; } { allones; }
)))))