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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
So we end up with looking for vcond_mask_VNx4SImode_V4SImode, but at vector
lowering time the LHS was still V4SImode.

It seems that

  _2 = _1 > { 0, 3, 2, -23 };
  _3 = VEC_COND_EXPR <_2, { -1, -1, -1, -1 }, { 0, 0, 0, 0 }>;
  ires_83 = _3;
  vect__4.13_55 = VIEW_CONVERT_EXPR<vector(4) int>(ires_83);

which FRE5 turns into

  _2 = _1 > { 0, 3, 2, -23 };
  vect__4.13_55 = VEC_COND_EXPR <_2, { -1, -1, -1, -1 }, { 0, 0, 0, 0 }>;

isn't compatible, even though it is compatible:

Applying pattern match.pd:6262, gimple-match-7.cc:7607
gimple_simplified to vect__4.13_55 = VEC_COND_EXPR <_2, { -1, -1, -1, -1 }, {
0, 0, 0, 0 }>;

That's

/* Likewise for view_convert of nop_conversions. */
(simplify
 (view_convert (vec_cond:s @0 @1 @2))
 (if (VECTOR_TYPE_P (type) && VECTOR_TYPE_P (TREE_TYPE (@1))
      && known_eq (TYPE_VECTOR_SUBPARTS (type),
                   TYPE_VECTOR_SUBPARTS (TREE_TYPE (@1)))
      && tree_nop_conversion_p (TREE_TYPE (type), TREE_TYPE (TREE_TYPE (@1))))
  (vec_cond @0 (view_convert! @1) (view_convert! @2)))) 

which indeed lacks target support checks.

Reply via email to