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

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #3)
> On a slightly different subject, I wish VCOND would print out the tree code
> symbolically rather than just a number. It would be easier to understand
> what the condition exec is really.

Feel free to add a // comment after it ;)

Btw, forwprop1 sees

  <bb 2> :
  _12 = VIEW_CONVERT_EXPR<vector(4) int>(value_3(D));
  _13 = VIEW_CONVERT_EXPR<vector(4) int>(input_4(D));
  _14 = _12 < _13;
  _15 = VEC_COND_EXPR <_14, { -1, -1, -1, -1 }, { 0, 0, 0, 0 }>;
  _16 = VIEW_CONVERT_EXPR<__m128i>(_15);
  _6 = VIEW_CONVERT_EXPR<vector(16) char>(_15);
  _5 = VIEW_CONVERT_EXPR<vector(16) char>(value_3(D));
  _8 = VIEW_CONVERT_EXPR<vector(16) char>(input_4(D));
  _9 = _6 < { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  _10 = VEC_COND_EXPR <_9, _5, _8>;
  _11 = VIEW_CONVERT_EXPR<__m128i>(_10);
  return _11;

the difficulty #1 is the v16qi mode blend vs. the v4si mode compare so
we'd have to pattern match the blend to be done on v4si based on the
_15 value range.

Reply via email to