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

Reply via email to