Hello,
Thanks a lot for all reviews!

On 09 Oct 14:55, Richard Henderson wrote:
> On 10/09/2013 03:28 AM, Kirill Yukhin wrote:
> > +;; CPUID bit AVX512F enables evex encoded scalar and 512-bit fma.  It 
> > doesn't
> > +;; care about FMA bit, so we enable fma for TARGET_AVX512F even when 
> > TARGET_FMA
> > +;; and TARGET_FMA4 are both false.
> 
> How do you force an evex encoding of the instruction?
> 
> Do you really mean that cpuid AVX512F, !FMA will not #OP
> for a vex (but not evex) encoded version of the same insn?
Your concern is correct, but I believe it relates more to Binutils,
since it is GAS who cannot force EVEX encoding for such:
      vfnmsub132ss %xmm1,%xmm2,%xmm3

Currently, from HW point of view, there're no CPUs which
feature AVX-512, but not AVX2. So, I believe we may put
a `TODO` in comment, like this:

+;; CPUID bit AVX512F enables evex encoded scalar and 512-bit fma.  It doesn't
+;; care about FMA bit, so we enable fma for TARGET_AVX512F even when TARGET_FMA
+;; and TARGET_FMA4 are both false.
+;; TODO: if (AVX512F && !FMA && (we don't use regnos in 16..31 range) then for
+;; scalar FMA we'll got VEX encoded variant. We need somewhat improve 
+;; GAS to allow forcing of EVEX encoding and then force it here.

Do you think it is acceptable?

--
Thanks, K

Reply via email to