x86: Don't check if AVX512 template requires AVX512VL
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 20 Jun 2023 16:32:19 +0000 (09:32 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 20 Jun 2023 16:43:58 +0000 (09:43 -0700)
If the ZMM operand in an AVX12 template also allows XMM or ZMM, this
template must require AVX512VL.  Drop the AVX512VL requirement check
on such AVX512 templates.

* config/tc-i386.c (check_VecOperands): Don't check if AVX512
template requires AVX512VL.

gas/config/tc-i386.c

index de35ee2a2c6952e596e2f5092a22dee5cc54d92c..dcafac0c0cd0ff07f37e1e80d7bfd4aa90e4ad8d 100644 (file)
@@ -6288,11 +6288,10 @@ check_VecOperands (const insn_template *t)
   /* Templates allowing for ZMMword as well as YMMword and/or XMMword for
      any one operand are implicity requiring AVX512VL support if the actual
      operand size is YMMword or XMMword.  Since this function runs after
-     template matching, there's no need to check for YMMword/XMMword in
-     the template.  */
+     template matching, there's no need to check for YMMword/XMMword nor
+     AVX512VL in the template.  */
   cpu = cpu_flags_and (t->cpu_flags, avx512);
   if (!cpu_flags_all_zero (&cpu)
-      && !t->cpu_flags.bitfield.cpuavx512vl
       && !cpu_arch_flags.bitfield.cpuavx512vl)
     {
       for (op = 0; op < t->operands; ++op)