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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2020-08-25
   Target Milestone|---                         |11.0
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
I think that eventually vector lowering should lower

 _1 = a == 5;
 _2 = b == 7;
 _3 = _1 | _2;
 _4 = _3 ? -1 : 0;

to

 _31 = _1 ? -1 : 0;
 _32 = _2 ? -1 : 0;
 _33 = _31 | _32;
 _34 = _33 == -1;
 _4 = _34 ? -1 : 0;

or so.  Conditionals are really a mess, GIMPLE and optabs do not match 1:1
(we've rejected the idea of "splitting" VEC_COND_EXPR to
VEC_COND_{EQ,NE,...}_EXPR and making it four-operand).  Forcing
vector compares to produce a bool vector result was the attempt to make
the GIMPLE IL more streamlined, but obviously the above shows that code
generation needs to be "fixed" - in this case it is vector lowering doing
"code generation" (together with the later isel pass).

Reply via email to