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

Hongtao.liu <crazylht at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |crazylht at gmail dot com

--- Comment #5 from Hongtao.liu <crazylht at gmail dot com> ---
(In reply to Marc Glisse from comment #4)
> We now generate for the original testcase
> 
>       vpcmpd  $1, %zmm3, %zmm2, %k1
>       vpcmpd  $1, %zmm1, %zmm0, %k0{%k1}
>       vpmovm2d        %k0, %zmm0
> 
> which looks great.
> 
> However, using | instead of &, we get
> 
>       vpcmpd  $1, %zmm1, %zmm0, %k0
>       vpcmpd  $1, %zmm3, %zmm2, %k1
>       kmovw   %k0, %eax
>       kmovw   %k1, %edx
>       orl     %edx, %eax
>       kmovw   %eax, %k2

Yes, korw %k0, %k1, %k2 should be used
i'll take a look.

>       vpmovm2d        %k2, %zmm0
> 
> Well, at least gimple did what it could, and it is now up to the target to
> handle logical operations on bool vectors / k* registers. There is probably
> already another bug report about that...

Reply via email to