aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2021-02-16 11:34:25 +0100
committerJan Beulich <jbeulich@suse.com>2021-02-16 11:34:25 +0100
commit394ae71f026cf62beb30511da42c8198da90d82d (patch)
tree3bfccd52a73aaef6009ab026c4e5182be3fcff0d /gas
parent3d70986f2181a3aa4b9660729a8e1313e5ece4e0 (diff)
downloadgdb-394ae71f026cf62beb30511da42c8198da90d82d.zip
gdb-394ae71f026cf62beb30511da42c8198da90d82d.tar.gz
gdb-394ae71f026cf62beb30511da42c8198da90d82d.tar.bz2
x86: CVTPI2PD has special behavior
CVTPI2PD with a memory operand, unlike CVTPI2PS, doesn't engage MMX logic. Therefore it - has a proper AVX equivalent (CVTDQ2PD) and hence can be subject to SSE2AVX translation and SSE checking, - should not record MMX use in the respective ELF note.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog17
-rw-r--r--gas/testsuite/gas/i386/i386.exp2
-rw-r--r--gas/testsuite/gas/i386/property-cvtpi2pd.d9
-rw-r--r--gas/testsuite/gas/i386/property-cvtpi2pd.s2
-rw-r--r--gas/testsuite/gas/i386/property-cvtpi2ps.d9
-rw-r--r--gas/testsuite/gas/i386/property-cvtpi2ps.s2
-rw-r--r--gas/testsuite/gas/i386/sse-check-error.l91
-rw-r--r--gas/testsuite/gas/i386/sse-check-warn.e17
-rw-r--r--gas/testsuite/gas/i386/sse-check.d2
-rw-r--r--gas/testsuite/gas/i386/sse-check.s4
-rw-r--r--gas/testsuite/gas/i386/sse2avx.d2
-rw-r--r--gas/testsuite/gas/i386/sse2avx.s2
-rw-r--r--gas/testsuite/gas/i386/x86-64-sse-check-error.l94
-rw-r--r--gas/testsuite/gas/i386/x86-64-sse2avx.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-sse2avx.s2
15 files changed, 164 insertions, 93 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 443511f..7978254 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,22 @@
2021-02-16 Jan Beulich <jbeulich@suse.com>
+ * testsuite/gas/i386/sse-check.s,
+ testsuite/gas/i386/sse2avx.s,
+ testsuite/gas/i386/x86-64-sse2avx.s: Add CVTPI2PD cases.
+ * testsuite/gas/i386/sse-check-error.l,
+ testsuite/gas/i386/sse-check-warn.e,
+ testsuite/gas/i386/sse-check.d,
+ testsuite/gas/i386/sse2avx.d,
+ testsuite/gas/i386/x86-64-sse-check-error.l,
+ testsuite/gas/i386/x86-64-sse2avx.d: Adjust expecations.
+ * testsuite/gas/i386/property-cvtpi2pd.s,
+ testsuite/gas/i386/property-cvtpi2pd.d,
+ testsuite/gas/i386/property-cvtpi2ps.s,
+ testsuite/gas/i386/property-cvtpi2ps.d: New.
+ * testsuite/gas/i386/i386.exp: Run new tests.
+
+2021-02-16 Jan Beulich <jbeulich@suse.com>
+
* config/tc-i386.c (md_assemble): Use template rather than
actuals when updating i.xstate.
* testsuite/gas/i386/property-4.d,
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 89f62b3..345b377 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -725,6 +725,8 @@ if {[is_elf_format] || [istarget "*-*-vxworks*"]} then {
run_dump_test "property-11"
run_dump_test "property-12"
run_dump_test "property-13"
+ run_dump_test "property-cvtpi2pd"
+ run_dump_test "property-cvtpi2ps"
run_dump_test "property-ldmxcsr"
run_dump_test "property-vldmxcsr"
run_dump_test "property-vzeroall"
diff --git a/gas/testsuite/gas/i386/property-cvtpi2pd.d b/gas/testsuite/gas/i386/property-cvtpi2pd.d
new file mode 100644
index 0000000..b0d8f44
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-cvtpi2pd.d
@@ -0,0 +1,9 @@
+#name: i386 property cvtpi2pd
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA used: x86-64-baseline
+ x86 feature used: x86, XMM
diff --git a/gas/testsuite/gas/i386/property-cvtpi2pd.s b/gas/testsuite/gas/i386/property-cvtpi2pd.s
new file mode 100644
index 0000000..86f02a14
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-cvtpi2pd.s
@@ -0,0 +1,2 @@
+ .text
+ cvtpi2pd (%eax), %xmm0
diff --git a/gas/testsuite/gas/i386/property-cvtpi2ps.d b/gas/testsuite/gas/i386/property-cvtpi2ps.d
new file mode 100644
index 0000000..8d2d0e2
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-cvtpi2ps.d
@@ -0,0 +1,9 @@
+#name: i386 property cvtpi2ps
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA used: x86-64-baseline
+ x86 feature used: x86, MMX, XMM
diff --git a/gas/testsuite/gas/i386/property-cvtpi2ps.s b/gas/testsuite/gas/i386/property-cvtpi2ps.s
new file mode 100644
index 0000000..c42bdcb
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-cvtpi2ps.s
@@ -0,0 +1,2 @@
+ .text
+ cvtpi2ps (%eax), %xmm0
diff --git a/gas/testsuite/gas/i386/sse-check-error.l b/gas/testsuite/gas/i386/sse-check-error.l
index 782e50b..da22c3b 100644
--- a/gas/testsuite/gas/i386/sse-check-error.l
+++ b/gas/testsuite/gas/i386/sse-check-error.l
@@ -1,14 +1,15 @@
.*: Assembler messages:
.*:7: Error: .*
.*:10: Error: .*
-.*:13: Error: .*
-.*:16: Error: .*
-.*:19: Error: .*
+.*:14: Error: .*
+.*:17: Error: .*
.*:20: Error: .*
-.*:26: Error: .*
-.*:29: Error: .*
-.*:32: Error: .*
-.*:35: Error: .*
+.*:23: Error: .*
+.*:24: Error: .*
+.*:30: Error: .*
+.*:33: Error: .*
+.*:36: Error: .*
+.*:39: Error: .*
GAS LISTING .*
@@ -26,49 +27,55 @@ GAS LISTING .*
[ ]*10[ ]+\?\?\?\? 660F58CA addpd %xmm2,%xmm1
.* Error: SSE instruction `addpd' is used
[ ]*11[ ]+
-[ ]*12[ ]+\# SSE3 instruction
-[ ]*13[ ]+\?\?\?\? 660FD0CA addsubpd %xmm2,%xmm1
+[ ]*[0-9]+[ ]+# special case SSE2 instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660F2ACA cvtpi2pd %mm2,%xmm1
+[ ]*[0-9]+[ ]+\?\?\?\? 660F2A0A cvtpi2pd \(%edx\),%xmm1
+.* Error: SSE instruction `cvtpi2pd' is used
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSE3 instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660FD0CA addsubpd %xmm2,%xmm1
.* Error: SSE instruction `addsubpd' is used
-[ ]*14[ ]+
-[ ]*15[ ]+\# SSSE3 instruction
-[ ]*16[ ]+\?\?\?\? 660F3801 phaddw %xmm2,%xmm1
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSSE3 instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3801 phaddw %xmm2,%xmm1
.* Error: SSE instruction `phaddw' is used
-[ ]*16[ ]+CA
-[ ]*17[ ]+
-[ ]*18[ ]+\# SSE4 instructions
-[ ]*19[ ]+\?\?\?\? 660F3815 blendvpd %xmm0,%xmm1,%xmm0
+[ ]*[0-9]+[ ]+CA
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSE4 instructions
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3815 blendvpd %xmm0,%xmm1,%xmm0
.* Error: SSE instruction `blendvpd' is used
-[ ]*19[ ]+C1
-[ ]*20[ ]+\?\?\?\? 660F3837 pcmpgtq %xmm1,%xmm0
+[ ]*[0-9]+[ ]+C1
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3837 pcmpgtq %xmm1,%xmm0
.* Error: SSE instruction `pcmpgtq' is used
-[ ]*20[ ]+C1
-[ ]*21[ ]+
-[ ]*22[ ]+\# SSE4a instruction.*
-[ ]*23[ ]+\?\?\?\? 660F78C0 extrq \$0, \$0, %xmm0
-[ ]*23[ ]+0000
-[ ]*24[ ]+
-[ ]*25[ ]+\# PCMUL instruction
-[ ]*26[ ]+\?\?\?\? 660F3A44 pclmulqdq \$-1,%xmm1,%xmm2
+[ ]*[0-9]+[ ]+C1
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSE4a instruction.*
+[ ]*[0-9]+[ ]+\?\?\?\? 660F78C0 extrq \$0, \$0, %xmm0
+[ ]*[0-9]+[ ]+0000
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# PCMUL instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3A44 pclmulqdq \$-1,%xmm1,%xmm2
.* Error: SSE instruction `pclmulqdq' is used
-[ ]*26[ ]+D1FF
-[ ]*27[ ]+
-[ ]*28[ ]+\# AES instructions
-[ ]*29[ ]+\?\?\?\? 660F38DE aesdec %xmm1,%xmm2
+[ ]*[0-9]+[ ]+D1FF
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# AES instructions
+[ ]*[0-9]+[ ]+\?\?\?\? 660F38DE aesdec %xmm1,%xmm2
.* Error: SSE instruction `aesdec' is used
-[ ]*29[ ]+D1
-[ ]*30[ ]+
-[ ]*31[ ]+\# SHA instruction
-[ ]*32[ ]+\?\?\?\? 0F38C8C0 sha1nexte %xmm0, %xmm0
+[ ]*[0-9]+[ ]+D1
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SHA instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 0F38C8C0 sha1nexte %xmm0, %xmm0
.* Error: SSE instruction `sha1nexte' is used
-[ ]*33[ ]+
-[ ]*34[ ]+\# GFNI instructions
-[ ]*35[ ]+\?\?\?\? 660F38CF gf2p8mulb %xmm1,%xmm2
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# GFNI instructions
+[ ]*[0-9]+[ ]+\?\?\?\? 660F38CF gf2p8mulb %xmm1,%xmm2
.* Error: SSE instruction `gf2p8mulb' is used
-[ ]*35[ ]+D1
-[ ]*36[ ]+\?\?\?\? 62F27D09 vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\}
-[ ]*36[ ]+CFC0
-[ ]*37[ ]+\?\?\?\? 62F27D48 vgf2p8mulb %zmm0, %zmm0, %zmm0
-[ ]*37[ ]+CFC0
GAS LISTING .*
+[ ]*[0-9]+[ ]+D1
+[ ]*[0-9]+[ ]+\?\?\?\? 62F27D09 vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\}
+[ ]*[0-9]+[ ]+CFC0
+[ ]*[0-9]+[ ]+\?\?\?\? 62F27D48 vgf2p8mulb %zmm0, %zmm0, %zmm0
+[ ]*[0-9]+[ ]+CFC0
+
diff --git a/gas/testsuite/gas/i386/sse-check-warn.e b/gas/testsuite/gas/i386/sse-check-warn.e
index b8dba94..af7f902 100644
--- a/gas/testsuite/gas/i386/sse-check-warn.e
+++ b/gas/testsuite/gas/i386/sse-check-warn.e
@@ -1,11 +1,12 @@
.*: Assembler messages:
.*:7: Warning: SSE instruction `addps' is used
.*:10: Warning: SSE instruction `addpd' is used
-.*:13: Warning: SSE instruction `addsubpd' is used
-.*:16: Warning: SSE instruction `phaddw' is used
-.*:19: Warning: SSE instruction `blendvpd' is used
-.*:20: Warning: SSE instruction `pcmpgtq' is used
-.*:26: Warning: SSE instruction `pclmulqdq' is used
-.*:29: Warning: SSE instruction `aesdec' is used
-.*:32: Warning: SSE instruction `sha1nexte' is used
-.*:35: Warning: SSE instruction `gf2p8mulb' is used
+.*:14: Warning: SSE instruction `cvtpi2pd' is used
+.*:17: Warning: SSE instruction `addsubpd' is used
+.*:20: Warning: SSE instruction `phaddw' is used
+.*:23: Warning: SSE instruction `blendvpd' is used
+.*:24: Warning: SSE instruction `pcmpgtq' is used
+.*:30: Warning: SSE instruction `pclmulqdq' is used
+.*:33: Warning: SSE instruction `aesdec' is used
+.*:36: Warning: SSE instruction `sha1nexte' is used
+.*:39: Warning: SSE instruction `gf2p8mulb' is used
diff --git a/gas/testsuite/gas/i386/sse-check.d b/gas/testsuite/gas/i386/sse-check.d
index dd4d21a..adc0b1f 100644
--- a/gas/testsuite/gas/i386/sse-check.d
+++ b/gas/testsuite/gas/i386/sse-check.d
@@ -9,6 +9,8 @@ Disassembly of section .text:
0+ <_start>:
[ ]*[a-f0-9]+: 0f 58 ca addps %xmm2,%xmm1
[ ]*[a-f0-9]+: 66 0f 58 ca addpd %xmm2,%xmm1
+[ ]*[a-f0-9]+: 66 0f 2a ca cvtpi2pd %mm2,%xmm1
+[ ]*[a-f0-9]+: (67 )?66 0f 2a 0a( )? cvtpi2pd \(%edx\),%xmm1
[ ]*[a-f0-9]+: 66 0f d0 ca addsubpd %xmm2,%xmm1
[ ]*[a-f0-9]+: 66 0f 38 01 ca phaddw %xmm2,%xmm1
[ ]*[a-f0-9]+: 66 0f 38 15 c1 blendvpd %xmm0,%xmm1,%xmm0
diff --git a/gas/testsuite/gas/i386/sse-check.s b/gas/testsuite/gas/i386/sse-check.s
index 43a3514..6536a86 100644
--- a/gas/testsuite/gas/i386/sse-check.s
+++ b/gas/testsuite/gas/i386/sse-check.s
@@ -9,6 +9,10 @@ _start:
# SSE2 instruction
addpd %xmm2,%xmm1
+# special case SSE2 instruction
+ cvtpi2pd %mm2,%xmm1
+ cvtpi2pd (%edx),%xmm1
+
# SSE3 instruction
addsubpd %xmm2,%xmm1
diff --git a/gas/testsuite/gas/i386/sse2avx.d b/gas/testsuite/gas/i386/sse2avx.d
index 366bf76..408fc65 100644
--- a/gas/testsuite/gas/i386/sse2avx.d
+++ b/gas/testsuite/gas/i386/sse2avx.d
@@ -408,6 +408,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: c5 f9 2f 21 vcomisd \(%ecx\),%xmm4
[ ]*[a-f0-9]+: c5 fa e6 f4 vcvtdq2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%ecx\),%xmm4
+[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%ecx\),%xmm4
[ ]*[a-f0-9]+: c5 f8 5a f4 vcvtps2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 f8 5a 21 vcvtps2pd \(%ecx\),%xmm4
[ ]*[a-f0-9]+: c5 fb 12 f4 vmovddup %xmm4,%xmm6
@@ -986,6 +987,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: c5 f9 2f 21 vcomisd \(%ecx\),%xmm4
[ ]*[a-f0-9]+: c5 fa e6 f4 vcvtdq2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%ecx\),%xmm4
+[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%ecx\),%xmm4
[ ]*[a-f0-9]+: c5 f8 5a f4 vcvtps2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 f8 5a 21 vcvtps2pd \(%ecx\),%xmm4
[ ]*[a-f0-9]+: c5 fb 12 f4 vmovddup %xmm4,%xmm6
diff --git a/gas/testsuite/gas/i386/sse2avx.s b/gas/testsuite/gas/i386/sse2avx.s
index 0ad600c..36b754b 100644
--- a/gas/testsuite/gas/i386/sse2avx.s
+++ b/gas/testsuite/gas/i386/sse2avx.s
@@ -425,6 +425,7 @@ _start:
comisd (%ecx),%xmm4
cvtdq2pd %xmm4,%xmm6
cvtdq2pd (%ecx),%xmm4
+ cvtpi2pd (%ecx),%xmm4
cvtps2pd %xmm4,%xmm6
cvtps2pd (%ecx),%xmm4
movddup %xmm4,%xmm6
@@ -1086,6 +1087,7 @@ _start:
comisd xmm4,QWORD PTR [ecx]
cvtdq2pd xmm6,xmm4
cvtdq2pd xmm4,QWORD PTR [ecx]
+ cvtpi2pd xmm4,QWORD PTR [ecx]
cvtps2pd xmm6,xmm4
cvtps2pd xmm4,QWORD PTR [ecx]
movddup xmm6,xmm4
diff --git a/gas/testsuite/gas/i386/x86-64-sse-check-error.l b/gas/testsuite/gas/i386/x86-64-sse-check-error.l
index 782e50b..0b28537 100644
--- a/gas/testsuite/gas/i386/x86-64-sse-check-error.l
+++ b/gas/testsuite/gas/i386/x86-64-sse-check-error.l
@@ -1,14 +1,15 @@
.*: Assembler messages:
.*:7: Error: .*
.*:10: Error: .*
-.*:13: Error: .*
-.*:16: Error: .*
-.*:19: Error: .*
+.*:14: Error: .*
+.*:17: Error: .*
.*:20: Error: .*
-.*:26: Error: .*
-.*:29: Error: .*
-.*:32: Error: .*
-.*:35: Error: .*
+.*:23: Error: .*
+.*:24: Error: .*
+.*:30: Error: .*
+.*:33: Error: .*
+.*:36: Error: .*
+.*:39: Error: .*
GAS LISTING .*
@@ -26,49 +27,56 @@ GAS LISTING .*
[ ]*10[ ]+\?\?\?\? 660F58CA addpd %xmm2,%xmm1
.* Error: SSE instruction `addpd' is used
[ ]*11[ ]+
-[ ]*12[ ]+\# SSE3 instruction
-[ ]*13[ ]+\?\?\?\? 660FD0CA addsubpd %xmm2,%xmm1
+[ ]*[0-9]+[ ]+# special case SSE2 instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660F2ACA cvtpi2pd %mm2,%xmm1
+[ ]*[0-9]+[ ]+\?\?\?\? 67660F2A cvtpi2pd \(%edx\),%xmm1
+.* Error: SSE instruction `cvtpi2pd' is used
+[ ]*[0-9]+[ ]+0A
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSE3 instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660FD0CA addsubpd %xmm2,%xmm1
.* Error: SSE instruction `addsubpd' is used
-[ ]*14[ ]+
-[ ]*15[ ]+\# SSSE3 instruction
-[ ]*16[ ]+\?\?\?\? 660F3801 phaddw %xmm2,%xmm1
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSSE3 instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3801 phaddw %xmm2,%xmm1
.* Error: SSE instruction `phaddw' is used
-[ ]*16[ ]+CA
-[ ]*17[ ]+
-[ ]*18[ ]+\# SSE4 instructions
-[ ]*19[ ]+\?\?\?\? 660F3815 blendvpd %xmm0,%xmm1,%xmm0
+[ ]*[0-9]+[ ]+CA
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSE4 instructions
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3815 blendvpd %xmm0,%xmm1,%xmm0
.* Error: SSE instruction `blendvpd' is used
-[ ]*19[ ]+C1
-[ ]*20[ ]+\?\?\?\? 660F3837 pcmpgtq %xmm1,%xmm0
+[ ]*[0-9]+[ ]+C1
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3837 pcmpgtq %xmm1,%xmm0
.* Error: SSE instruction `pcmpgtq' is used
-[ ]*20[ ]+C1
-[ ]*21[ ]+
-[ ]*22[ ]+\# SSE4a instruction.*
-[ ]*23[ ]+\?\?\?\? 660F78C0 extrq \$0, \$0, %xmm0
-[ ]*23[ ]+0000
-[ ]*24[ ]+
-[ ]*25[ ]+\# PCMUL instruction
-[ ]*26[ ]+\?\?\?\? 660F3A44 pclmulqdq \$-1,%xmm1,%xmm2
+[ ]*[0-9]+[ ]+C1
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSE4a instruction.*
+[ ]*[0-9]+[ ]+\?\?\?\? 660F78C0 extrq \$0, \$0, %xmm0
+[ ]*[0-9]+[ ]+0000
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# PCMUL instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3A44 pclmulqdq \$-1,%xmm1,%xmm2
.* Error: SSE instruction `pclmulqdq' is used
-[ ]*26[ ]+D1FF
-[ ]*27[ ]+
-[ ]*28[ ]+\# AES instructions
-[ ]*29[ ]+\?\?\?\? 660F38DE aesdec %xmm1,%xmm2
+[ ]*[0-9]+[ ]+D1FF
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# AES instructions
+[ ]*[0-9]+[ ]+\?\?\?\? 660F38DE aesdec %xmm1,%xmm2
.* Error: SSE instruction `aesdec' is used
-[ ]*29[ ]+D1
-[ ]*30[ ]+
-[ ]*31[ ]+\# SHA instruction
-[ ]*32[ ]+\?\?\?\? 0F38C8C0 sha1nexte %xmm0, %xmm0
+[ ]*[0-9]+[ ]+D1
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SHA instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 0F38C8C0 sha1nexte %xmm0, %xmm0
.* Error: SSE instruction `sha1nexte' is used
-[ ]*33[ ]+
-[ ]*34[ ]+\# GFNI instructions
-[ ]*35[ ]+\?\?\?\? 660F38CF gf2p8mulb %xmm1,%xmm2
-.* Error: SSE instruction `gf2p8mulb' is used
-[ ]*35[ ]+D1
-[ ]*36[ ]+\?\?\?\? 62F27D09 vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\}
-[ ]*36[ ]+CFC0
-[ ]*37[ ]+\?\?\?\? 62F27D48 vgf2p8mulb %zmm0, %zmm0, %zmm0
-[ ]*37[ ]+CFC0
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# GFNI instructions
+[ ]*[0-9]+[ ]+\?\?\?\? 660F38CF gf2p8mulb %xmm1,%xmm2
GAS LISTING .*
+.* Error: SSE instruction `gf2p8mulb' is used
+[ ]*[0-9]+[ ]+D1
+[ ]*[0-9]+[ ]+\?\?\?\? 62F27D09 vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\}
+[ ]*[0-9]+[ ]+CFC0
+[ ]*[0-9]+[ ]+\?\?\?\? 62F27D48 vgf2p8mulb %zmm0, %zmm0, %zmm0
+[ ]*[0-9]+[ ]+CFC0
+
diff --git a/gas/testsuite/gas/i386/x86-64-sse2avx.d b/gas/testsuite/gas/i386/x86-64-sse2avx.d
index 8eed2db..c904a2b 100644
--- a/gas/testsuite/gas/i386/x86-64-sse2avx.d
+++ b/gas/testsuite/gas/i386/x86-64-sse2avx.d
@@ -474,6 +474,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: c5 f9 2f 21 vcomisd \(%rcx\),%xmm4
[ ]*[a-f0-9]+: c5 fa e6 f4 vcvtdq2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%rcx\),%xmm4
+[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%rcx\),%xmm4
[ ]*[a-f0-9]+: c5 f8 5a f4 vcvtps2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 f8 5a 21 vcvtps2pd \(%rcx\),%xmm4
[ ]*[a-f0-9]+: c5 fb 12 f4 vmovddup %xmm4,%xmm6
@@ -1137,6 +1138,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: c5 f9 2f 21 vcomisd \(%rcx\),%xmm4
[ ]*[a-f0-9]+: c5 fa e6 f4 vcvtdq2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%rcx\),%xmm4
+[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%rcx\),%xmm4
[ ]*[a-f0-9]+: c5 f8 5a f4 vcvtps2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 f8 5a 21 vcvtps2pd \(%rcx\),%xmm4
[ ]*[a-f0-9]+: c5 fb 12 f4 vmovddup %xmm4,%xmm6
diff --git a/gas/testsuite/gas/i386/x86-64-sse2avx.s b/gas/testsuite/gas/i386/x86-64-sse2avx.s
index 1d3cda1..6b25314 100644
--- a/gas/testsuite/gas/i386/x86-64-sse2avx.s
+++ b/gas/testsuite/gas/i386/x86-64-sse2avx.s
@@ -489,6 +489,7 @@ _start:
comisd (%rcx),%xmm4
cvtdq2pd %xmm4,%xmm6
cvtdq2pd (%rcx),%xmm4
+ cvtpi2pd (%rcx),%xmm4
cvtps2pd %xmm4,%xmm6
cvtps2pd (%rcx),%xmm4
movddup %xmm4,%xmm6
@@ -1260,6 +1261,7 @@ _start:
comisd xmm4,QWORD PTR [rcx]
cvtdq2pd xmm6,xmm4
cvtdq2pd xmm4,QWORD PTR [rcx]
+ cvtpi2pd xmm4,QWORD PTR [rcx]
cvtps2pd xmm6,xmm4
cvtps2pd xmm4,QWORD PTR [rcx]
movddup xmm6,xmm4