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.