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; } )))))