aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2022-08-09 09:18:35 +0200
committerJan Beulich <jbeulich@suse.com>2022-08-09 09:18:35 +0200
commit3fbe5a01086ca3e68475b111e9a274b1df6fc4a7 (patch)
tree025e541905fd92243731d11f2587781b4d8ac701 /gas
parent747f6157e4a166d016efc2b0bba1a7d4a52944f4 (diff)
downloadgdb-3fbe5a01086ca3e68475b111e9a274b1df6fc4a7.zip
gdb-3fbe5a01086ca3e68475b111e9a274b1df6fc4a7.tar.gz
gdb-3fbe5a01086ca3e68475b111e9a274b1df6fc4a7.tar.bz2
x86: allow use of broadcast with X/Y/Z-suffixed AVX512-FP16 insns
While the x/y/z suffix isn't necessary to use in this case, it is still odd that these forms don't support broadcast (unlike their AVX512F / AVX512DQ counterparts). The lack thereof can e.g. make macro-ized programming more difficult.
Diffstat (limited to 'gas')
-rw-r--r--gas/testsuite/gas/i386/avx512_fp16-intel.d1
-rw-r--r--gas/testsuite/gas/i386/avx512_fp16.d1
-rw-r--r--gas/testsuite/gas/i386/avx512_fp16.s1
-rwxr-xr-xgas/testsuite/gas/i386/avx512_fp16_vl-intel.d2
-rwxr-xr-xgas/testsuite/gas/i386/avx512_fp16_vl.d2
-rw-r--r--gas/testsuite/gas/i386/avx512_fp16_vl.s2
6 files changed, 9 insertions, 0 deletions
diff --git a/gas/testsuite/gas/i386/avx512_fp16-intel.d b/gas/testsuite/gas/i386/avx512_fp16-intel.d
index ffa09ac..7dd1b97 100644
--- a/gas/testsuite/gas/i386/avx512_fp16-intel.d
+++ b/gas/testsuite/gas/i386/avx512_fp16-intel.d
@@ -546,6 +546,7 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 f3 7c 58 66 29 7b[ ]*vfpclassph k5,WORD BCST \[ecx\]\{1to32\},0x7b
[ ]*[a-f0-9]+:[ ]*62 f3 7c 48 66 69 7f 7b[ ]*vfpclassph k5,ZMMWORD PTR \[ecx\+0x1fc0\],0x7b
[ ]*[a-f0-9]+:[ ]*62 f3 7c 5f 66 6a 80 7b[ ]*vfpclassph k5\{k7\},WORD BCST \[edx-0x100\]\{1to32\},0x7b
+[ ]*[a-f0-9]+:[ ]*62 f3 7c 58 66 69 01 7b[ ]*vfpclassph k5,WORD BCST \[ecx\+0x2\]\{1to32\},0x7b
[ ]*[a-f0-9]+:[ ]*62 f3 7c 08 67 ee 7b[ ]*vfpclasssh k5,xmm6,0x7b
[ ]*[a-f0-9]+:[ ]*62 f3 7c 0f 67 ee 7b[ ]*vfpclasssh k5\{k7\},xmm6,0x7b
[ ]*[a-f0-9]+:[ ]*62 f3 7c 0f 67 ac f4 00 00 00 10 7b[ ]*vfpclasssh k5\{k7\},WORD PTR \[esp\+esi\*8\+0x10000000\],0x7b
diff --git a/gas/testsuite/gas/i386/avx512_fp16.d b/gas/testsuite/gas/i386/avx512_fp16.d
index 19860d5..027d47f 100644
--- a/gas/testsuite/gas/i386/avx512_fp16.d
+++ b/gas/testsuite/gas/i386/avx512_fp16.d
@@ -546,6 +546,7 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 f3 7c 58 66 29 7b[ ]*vfpclassph \$0x7b,\(%ecx\)\{1to32\},%k5
[ ]*[a-f0-9]+:[ ]*62 f3 7c 48 66 69 7f 7b[ ]*vfpclassphz \$0x7b,0x1fc0\(%ecx\),%k5
[ ]*[a-f0-9]+:[ ]*62 f3 7c 5f 66 6a 80 7b[ ]*vfpclassph \$0x7b,-0x100\(%edx\)\{1to32\},%k5\{%k7\}
+[ ]*[a-f0-9]+:[ ]*62 f3 7c 58 66 69 01 7b[ ]*vfpclassph \$0x7b,0x2\(%ecx\)\{1to32\},%k5
[ ]*[a-f0-9]+:[ ]*62 f3 7c 08 67 ee 7b[ ]*vfpclasssh \$0x7b,%xmm6,%k5
[ ]*[a-f0-9]+:[ ]*62 f3 7c 0f 67 ee 7b[ ]*vfpclasssh \$0x7b,%xmm6,%k5\{%k7\}
[ ]*[a-f0-9]+:[ ]*62 f3 7c 0f 67 ac f4 00 00 00 10 7b[ ]*vfpclasssh \$0x7b,0x10000000\(%esp,%esi,8\),%k5\{%k7\}
diff --git a/gas/testsuite/gas/i386/avx512_fp16.s b/gas/testsuite/gas/i386/avx512_fp16.s
index e9fa46c..1e8f6dc 100644
--- a/gas/testsuite/gas/i386/avx512_fp16.s
+++ b/gas/testsuite/gas/i386/avx512_fp16.s
@@ -541,6 +541,7 @@ _start:
vfpclassph $123, (%ecx){1to32}, %k5 #AVX512-FP16 BROADCAST_EN
vfpclassphz $123, 8128(%ecx), %k5 #AVX512-FP16 Disp8(7f)
vfpclassph $123, -256(%edx){1to32}, %k5{%k7} #AVX512-FP16 BROADCAST_EN Disp8(80) MASK_ENABLING
+ vfpclassphz $123, 2(%ecx){1to32}, %k5 #AVX512-FP16 BROADCAST_EN
vfpclasssh $123, %xmm6, %k5 #AVX512-FP16
vfpclasssh $123, %xmm6, %k5{%k7} #AVX512-FP16 MASK_ENABLING
vfpclasssh $123, 0x10000000(%esp, %esi, 8), %k5{%k7} #AVX512-FP16 MASK_ENABLING
diff --git a/gas/testsuite/gas/i386/avx512_fp16_vl-intel.d b/gas/testsuite/gas/i386/avx512_fp16_vl-intel.d
index 76a2952..b1f7502 100755
--- a/gas/testsuite/gas/i386/avx512_fp16_vl-intel.d
+++ b/gas/testsuite/gas/i386/avx512_fp16_vl-intel.d
@@ -574,9 +574,11 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 f3 7c 18 66 29 7b[ ]*vfpclassph k5,WORD BCST \[ecx\]\{1to8\},0x7b
[ ]*[a-f0-9]+:[ ]*62 f3 7c 08 66 69 7f 7b[ ]*vfpclassph k5,XMMWORD PTR \[ecx\+0x7f0\],0x7b
[ ]*[a-f0-9]+:[ ]*62 f3 7c 1f 66 6a 80 7b[ ]*vfpclassph k5\{k7\},WORD BCST \[edx-0x100\]\{1to8\},0x7b
+[ ]*[a-f0-9]+:[ ]*62 f3 7c 18 66 69 01 7b[ ]*vfpclassph k5,WORD BCST \[ecx\+0x2\]\{1to8\},0x7b
[ ]*[a-f0-9]+:[ ]*62 f3 7c 38 66 29 7b[ ]*vfpclassph k5,WORD BCST \[ecx\]\{1to16\},0x7b
[ ]*[a-f0-9]+:[ ]*62 f3 7c 28 66 69 7f 7b[ ]*vfpclassph k5,YMMWORD PTR \[ecx\+0xfe0\],0x7b
[ ]*[a-f0-9]+:[ ]*62 f3 7c 3f 66 6a 80 7b[ ]*vfpclassph k5\{k7\},WORD BCST \[edx-0x100\]\{1to16\},0x7b
+[ ]*[a-f0-9]+:[ ]*62 f3 7c 38 66 69 01 7b[ ]*vfpclassph k5,WORD BCST \[ecx\+0x2\]\{1to16\},0x7b
[ ]*[a-f0-9]+:[ ]*62 f6 7d 08 42 f5[ ]*vgetexpph xmm6,xmm5
[ ]*[a-f0-9]+:[ ]*62 f6 7d 8f 42 f5[ ]*vgetexpph xmm6\{k7\}\{z\},xmm5
[ ]*[a-f0-9]+:[ ]*62 f6 7d 28 42 f5[ ]*vgetexpph ymm6,ymm5
diff --git a/gas/testsuite/gas/i386/avx512_fp16_vl.d b/gas/testsuite/gas/i386/avx512_fp16_vl.d
index ee8353c..f923c54 100755
--- a/gas/testsuite/gas/i386/avx512_fp16_vl.d
+++ b/gas/testsuite/gas/i386/avx512_fp16_vl.d
@@ -574,9 +574,11 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 f3 7c 18 66 29 7b[ ]*vfpclassph \$0x7b,\(%ecx\)\{1to8\},%k5
[ ]*[a-f0-9]+:[ ]*62 f3 7c 08 66 69 7f 7b[ ]*vfpclassphx \$0x7b,0x7f0\(%ecx\),%k5
[ ]*[a-f0-9]+:[ ]*62 f3 7c 1f 66 6a 80 7b[ ]*vfpclassph \$0x7b,-0x100\(%edx\)\{1to8\},%k5\{%k7\}
+[ ]*[a-f0-9]+:[ ]*62 f3 7c 18 66 69 01 7b[ ]*vfpclassph \$0x7b,0x2\(%ecx\)\{1to8\},%k5
[ ]*[a-f0-9]+:[ ]*62 f3 7c 38 66 29 7b[ ]*vfpclassph \$0x7b,\(%ecx\)\{1to16\},%k5
[ ]*[a-f0-9]+:[ ]*62 f3 7c 28 66 69 7f 7b[ ]*vfpclassphy \$0x7b,0xfe0\(%ecx\),%k5
[ ]*[a-f0-9]+:[ ]*62 f3 7c 3f 66 6a 80 7b[ ]*vfpclassph \$0x7b,-0x100\(%edx\)\{1to16\},%k5\{%k7\}
+[ ]*[a-f0-9]+:[ ]*62 f3 7c 38 66 69 01 7b[ ]*vfpclassph \$0x7b,0x2\(%ecx\)\{1to16\},%k5
[ ]*[a-f0-9]+:[ ]*62 f6 7d 08 42 f5[ ]*vgetexpph %xmm5,%xmm6
[ ]*[a-f0-9]+:[ ]*62 f6 7d 8f 42 f5[ ]*vgetexpph %xmm5,%xmm6\{%k7\}\{z\}
[ ]*[a-f0-9]+:[ ]*62 f6 7d 28 42 f5[ ]*vgetexpph %ymm5,%ymm6
diff --git a/gas/testsuite/gas/i386/avx512_fp16_vl.s b/gas/testsuite/gas/i386/avx512_fp16_vl.s
index 6818727..b00739c 100644
--- a/gas/testsuite/gas/i386/avx512_fp16_vl.s
+++ b/gas/testsuite/gas/i386/avx512_fp16_vl.s
@@ -569,9 +569,11 @@ _start:
vfpclassph $123, (%ecx){1to8}, %k5 #AVX512-FP16,AVX512VL BROADCAST_EN
vfpclassphx $123, 2032(%ecx), %k5 #AVX512-FP16,AVX512VL Disp8(7f)
vfpclassph $123, -256(%edx){1to8}, %k5{%k7} #AVX512-FP16,AVX512VL BROADCAST_EN Disp8(80) MASK_ENABLING
+ vfpclassphx $123, 2(%ecx){1to8}, %k5 #AVX512-FP16,AVX512VL BROADCAST_EN
vfpclassph $123, (%ecx){1to16}, %k5 #AVX512-FP16,AVX512VL BROADCAST_EN
vfpclassphy $123, 4064(%ecx), %k5 #AVX512-FP16,AVX512VL Disp8(7f)
vfpclassph $123, -256(%edx){1to16}, %k5{%k7} #AVX512-FP16,AVX512VL BROADCAST_EN Disp8(80) MASK_ENABLING
+ vfpclassphy $123, 2(%ecx){1to16}, %k5 #AVX512-FP16,AVX512VL BROADCAST_EN
vgetexpph %xmm5, %xmm6 #AVX512-FP16,AVX512VL
vgetexpph %xmm5, %xmm6{%k7}{z} #AVX512-FP16,AVX512VL MASK_ENABLING ZEROCTL
vgetexpph %ymm5, %ymm6 #AVX512-FP16,AVX512VL