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...