diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index c26b654eb72..b8e3c24c25d 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -6287,6 +6287,11 @@ check_VecOperands (const insn_template *t) return 1; } } + else if (t->opcode_modifier.sae) + { + i.error = unsupported_syntax; + return 1; + } /* Check the special Imm4 cases; must be the first operand. */ if (t->cpu_flags.bitfield.cpuxop && t->operands == 5) diff --git a/gas/testsuite/gas/i386/inval-avx512f.l b/gas/testsuite/gas/i386/inval-avx512f.l index c47ac7db90c..d45ae250ba0 100644 --- a/gas/testsuite/gas/i386/inval-avx512f.l +++ b/gas/testsuite/gas/i386/inval-avx512f.l @@ -218,6 +218,8 @@ .*:313: Error: .*unsupported broadcast for `vcvtneps2bf16' .*:316: Error: .*unsupported broadcast for `vcvtneps2bf16' .*:319: Error: .*unsupported broadcast for `vcvtneps2bf16' +.*:321: Error: .*vaddps.* +.*:322: Error: .*vcmpss.* GAS LISTING .* @@ -569,6 +571,7 @@ GAS LISTING .* [ ]*318 \?\?\?\? 62F27E38[ ]+vcvtneps2bf16 \(%eax\)\{1to8\}, %xmm1 [ ]*318[ ]+7208 [ ]*319[ ]+vcvtneps2bf16 \(%eax\)\{1to16\}, %xmm1 -[ ]*320[ ]+\?\?\?\? 8DB42600 \.p2align 4 -[ ]*320[ ]+0000008D -[ ]*320[ ]+7600 +[ ]*320[ ]* +[ ]*321[ ]+vaddps \$0xcc, %zmm0, %zmm0, %zmm0 +[ ]*322[ ]+vcmpss \$0, \$0xcc, %xmm0, %xmm0, %k0 +#pass diff --git a/gas/testsuite/gas/i386/inval-avx512f.s b/gas/testsuite/gas/i386/inval-avx512f.s index 7cca7ef854c..841992bbd79 100644 --- a/gas/testsuite/gas/i386/inval-avx512f.s +++ b/gas/testsuite/gas/i386/inval-avx512f.s @@ -317,4 +317,8 @@ _start: vcvtneps2bf16 (%eax){1to4}, %xmm1 vcvtneps2bf16 (%eax){1to8}, %xmm1 vcvtneps2bf16 (%eax){1to16}, %xmm1 + + vaddps $0xcc, %zmm0, %zmm0, %zmm0 + vcmpss $0, $0xcc, %xmm0, %xmm0, %k0 + .p2align 4