aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2023-07-04 17:00:35 +0200
committerJan Beulich <jbeulich@suse.com>2023-07-04 17:00:35 +0200
commitac500f1772cfd5b1cf92acfa3ea4e7c43fab4fe3 (patch)
tree7f4a8e63421cf4293e1fc9569434c64342614b33 /gas
parent07d618b91f50816f198abac7df116e83d47ca1be (diff)
downloadfsf-binutils-gdb-ac500f1772cfd5b1cf92acfa3ea4e7c43fab4fe3.zip
fsf-binutils-gdb-ac500f1772cfd5b1cf92acfa3ea4e7c43fab4fe3.tar.gz
fsf-binutils-gdb-ac500f1772cfd5b1cf92acfa3ea4e7c43fab4fe3.tar.bz2
x86: flag EVEX.z set when destination is a mask register
While only zeroing-masking is possible in this case, this still requires EVEX.z to be clear. Introduce a "global" flag right here, to be re-used by checks which need to live in specific operand handlers.
Diffstat (limited to 'gas')
-rw-r--r--gas/testsuite/gas/i386/avx512f-nondef.d1
-rw-r--r--gas/testsuite/gas/i386/avx512f-nondef.s3
2 files changed, 4 insertions, 0 deletions
diff --git a/gas/testsuite/gas/i386/avx512f-nondef.d b/gas/testsuite/gas/i386/avx512f-nondef.d
index 8defd69..efa3f58 100644
--- a/gas/testsuite/gas/i386/avx512f-nondef.d
+++ b/gas/testsuite/gas/i386/avx512f-nondef.d
@@ -20,4 +20,5 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 67 62 f2 7d 4f 92 01 addr16 vgatherdps \(bad\),%zmm0\{%k7\}
[ ]*[a-f0-9]+: 62 f2 7d cf 92 04 08 vgatherdps \(%eax,%zmm1(,1)?\),%zmm0\{%k7\}\{z\}/\(bad\)
[ ]*[a-f0-9]+: 62 f2 7d 48 92 04 08 vgatherdps \(%eax,%zmm1(,1)?\),%zmm0/\(bad\)
+[ ]*[a-f0-9]+: 62 f1 7c cf c2 c0 00 vcmpeqps %zmm0,%zmm0,%k0\{%k7\}\{z\}/\(bad\)
#pass
diff --git a/gas/testsuite/gas/i386/avx512f-nondef.s b/gas/testsuite/gas/i386/avx512f-nondef.s
index a117592..0216003 100644
--- a/gas/testsuite/gas/i386/avx512f-nondef.s
+++ b/gas/testsuite/gas/i386/avx512f-nondef.s
@@ -26,3 +26,6 @@
.insn EVEX.66.0F38.W0 0x92, (%eax,%zmm1), %zmm0{%k7}{z}
# vgatherdps (%eax,%zmm1), %zmm0 # without actual mask register
.insn EVEX.66.0F38.W0 0x92, (%eax,%zmm1), %zmm0
+
+ # vcmpeqps %zmm0, %zmm0, %k0{%k7} with EVEX.z set
+ .insn EVEX.0f 0xc2, $0, %zmm0, %zmm0, %k0{%k7}{z}