aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-01-10 14:32:32 +0000
committerJan Hubicka <jh@suse.cz>2001-01-10 14:32:32 +0000
commitde9d65b5dc1cb19594d17e7f9e6915aa511c4a79 (patch)
treed4981238d6c2d36848d89d37dd33ecf506b695a7 /gas
parent7c2b079e2704d0e7bd6352217a5963f32160a92a (diff)
downloadfsf-binutils-gdb-de9d65b5dc1cb19594d17e7f9e6915aa511c4a79.zip
fsf-binutils-gdb-de9d65b5dc1cb19594d17e7f9e6915aa511c4a79.tar.gz
fsf-binutils-gdb-de9d65b5dc1cb19594d17e7f9e6915aa511c4a79.tar.bz2
* i386.exp: Add ssemmx2 and sse2 tests.
(sse2.d, sse2.s, ssemmx2.d, ssemmx2.s): New tests.
Diffstat (limited to 'gas')
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/i386/i386.exp2
-rw-r--r--gas/testsuite/gas/i386/sse2.d156
-rw-r--r--gas/testsuite/gas/i386/sse2.s147
-rw-r--r--gas/testsuite/gas/i386/ssemmx2.d88
-rw-r--r--gas/testsuite/gas/i386/ssemmx2.s80
6 files changed, 478 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 8f90b46..29183b8 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jan 10 15:14:54 MET 2001 Jan Hubicka <jh@suse.cz>
+
+ * i386.exp: Add ssemmx2 and sse2 tests.
+ (sse2.d, sse2.s, ssemmx2.d, ssemmx2.s): New tests.
+
2001-01-09 Nick Clifton <nickc@redhat.com>
* gas/arm/pic.d: Fix patterns to match new behaviour of
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 3656694..8449661 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -49,6 +49,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
run_dump_test "amd"
run_dump_test "katmai"
run_dump_test "jump"
+ run_dump_test "ssemmx2"
+ run_dump_test "sse2"
# These tests require support for 8 and 16 bit relocs,
# so we only run them for ELF and COFF targets.
diff --git a/gas/testsuite/gas/i386/sse2.d b/gas/testsuite/gas/i386/sse2.d
new file mode 100644
index 0000000..5ea977b
--- /dev/null
+++ b/gas/testsuite/gas/i386/sse2.d
@@ -0,0 +1,156 @@
+#as: -J
+#objdump: -dw
+#name: i386 sse2
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+[ ]+0: 0f c3 00[ ]+movnti %eax,\(%eax\)
+[ ]+3: 0f ae f8[ ]+sfence
+[ ]+6: 0f ae e8[ ]+lfence
+[ ]+9: 0f ae f0[ ]+mfence
+[ ]+c: 66 0f 58 01[ ]+addpd[ ]+\(%ecx\),%xmm0
+[ ]+10: 66 0f 58 ca[ ]+addpd[ ]+%xmm2,%xmm1
+[ ]+14: f2 0f 58 13[ ]+addsd[ ]+\(%ebx\),%xmm2
+[ ]+18: f2 0f 58 dc[ ]+addsd[ ]+%xmm4,%xmm3
+[ ]+1c: 66 0f 55 65 00[ ]+andnpd 0x0\(%ebp\),%xmm4
+[ ]+21: 66 0f 55 ee[ ]+andnpd %xmm6,%xmm5
+[ ]+25: 66 0f 54 37[ ]+andpd[ ]+\(%edi\),%xmm6
+[ ]+29: 66 0f 54 f8[ ]+andpd[ ]+%xmm0,%xmm7
+[ ]+2d: 66 0f c2 c1 02[ ]+cmplepd %xmm1,%xmm0
+[ ]+32: 66 0f c2 0a 03[ ]+cmpunordpd \(%edx\),%xmm1
+[ ]+37: f2 0f c2 d2 04[ ]+cmpneqsd %xmm2,%xmm2
+[ ]+3c: f2 0f c2 1c 24 05[ ]+cmpnltsd \(%esp,1\),%xmm3
+[ ]+42: 66 0f c2 e5 06[ ]+cmpnlepd %xmm5,%xmm4
+[ ]+47: 66 0f c2 2e 07[ ]+cmpordpd \(%esi\),%xmm5
+[ ]+4c: f2 0f c2 f7 00[ ]+cmpeqsd %xmm7,%xmm6
+[ ]+51: f2 0f c2 38 01[ ]+cmpltsd \(%eax\),%xmm7
+[ ]+56: 66 0f c2 c1 00[ ]+cmpeqpd %xmm1,%xmm0
+[ ]+5b: 66 0f c2 0a 00[ ]+cmpeqpd \(%edx\),%xmm1
+[ ]+60: f2 0f c2 d2 00[ ]+cmpeqsd %xmm2,%xmm2
+[ ]+65: f2 0f c2 1c 24 00[ ]+cmpeqsd \(%esp,1\),%xmm3
+[ ]+6b: 66 0f c2 e5 01[ ]+cmpltpd %xmm5,%xmm4
+[ ]+70: 66 0f c2 2e 01[ ]+cmpltpd \(%esi\),%xmm5
+[ ]+75: f2 0f c2 f7 01[ ]+cmpltsd %xmm7,%xmm6
+[ ]+7a: f2 0f c2 38 01[ ]+cmpltsd \(%eax\),%xmm7
+[ ]+7f: 66 0f c2 01 02[ ]+cmplepd \(%ecx\),%xmm0
+[ ]+84: 66 0f c2 ca 02[ ]+cmplepd %xmm2,%xmm1
+[ ]+89: f2 0f c2 13 02[ ]+cmplesd \(%ebx\),%xmm2
+[ ]+8e: f2 0f c2 dc 02[ ]+cmplesd %xmm4,%xmm3
+[ ]+93: 66 0f c2 65 00 03[ ]+cmpunordpd 0x0\(%ebp\),%xmm4
+[ ]+99: 66 0f c2 ee 03[ ]+cmpunordpd %xmm6,%xmm5
+[ ]+9e: f2 0f c2 37 03[ ]+cmpunordsd \(%edi\),%xmm6
+[ ]+a3: f2 0f c2 f8 03[ ]+cmpunordsd %xmm0,%xmm7
+[ ]+a8: 66 0f c2 c1 04[ ]+cmpneqpd %xmm1,%xmm0
+[ ]+ad: 66 0f c2 0a 04[ ]+cmpneqpd \(%edx\),%xmm1
+[ ]+b2: f2 0f c2 d2 04[ ]+cmpneqsd %xmm2,%xmm2
+[ ]+b7: f2 0f c2 1c 24 04[ ]+cmpneqsd \(%esp,1\),%xmm3
+[ ]+bd: 66 0f c2 e5 05[ ]+cmpnltpd %xmm5,%xmm4
+[ ]+c2: 66 0f c2 2e 05[ ]+cmpnltpd \(%esi\),%xmm5
+[ ]+c7: f2 0f c2 f7 05[ ]+cmpnltsd %xmm7,%xmm6
+[ ]+cc: f2 0f c2 38 05[ ]+cmpnltsd \(%eax\),%xmm7
+[ ]+d1: 66 0f c2 01 06[ ]+cmpnlepd \(%ecx\),%xmm0
+[ ]+d6: 66 0f c2 ca 06[ ]+cmpnlepd %xmm2,%xmm1
+[ ]+db: f2 0f c2 13 06[ ]+cmpnlesd \(%ebx\),%xmm2
+[ ]+e0: f2 0f c2 dc 06[ ]+cmpnlesd %xmm4,%xmm3
+[ ]+e5: 66 0f c2 65 00 07[ ]+cmpordpd 0x0\(%ebp\),%xmm4
+[ ]+eb: 66 0f c2 ee 07[ ]+cmpordpd %xmm6,%xmm5
+[ ]+f0: f2 0f c2 37 07[ ]+cmpordsd \(%edi\),%xmm6
+[ ]+f5: f2 0f c2 f8 07[ ]+cmpordsd %xmm0,%xmm7
+[ ]+fa: 66 0f 2f c1[ ]+comisd %xmm1,%xmm0
+[ ]+fe: 66 0f 2f 0a[ ]+comisd \(%edx\),%xmm1
+ 102: 66 0f 2a d3[ ]+cvtpi2pd %xmm3,%xmm2
+ 106: 66 0f 2a 1c 24[ ]+cvtpi2pd \(%esp,1\),%xmm3
+ 10b: f2 0f 2a e5[ ]+cvtsi2sd %ebp,%xmm4
+ 10f: f2 0f 2a 2e[ ]+cvtsi2sd \(%esi\),%xmm5
+ 113: 66 0f 2d f7[ ]+cvtpd2pi %xmm7,%xmm6
+ 117: 66 0f 2d 38[ ]+cvtpd2pi \(%eax\),%xmm7
+ 11b: f2 0f 2d 01[ ]+cvtsd2si \(%ecx\),%eax
+ 11f: f2 0f 2d ca[ ]+cvtsd2si %xmm2,%ecx
+ 123: 66 0f 2c 13[ ]+cvttpd2pi \(%ebx\),%xmm2
+ 127: 66 0f 2c dc[ ]+cvttpd2pi %xmm4,%xmm3
+ 12b: f2 0f 2c 65 00[ ]+cvttsd2si 0x0\(%ebp\),%esp
+ 130: f2 0f 2c ee[ ]+cvttsd2si %xmm6,%ebp
+ 134: 66 0f 5e c1[ ]+divpd[ ]+%xmm1,%xmm0
+ 138: 66 0f 5e 0a[ ]+divpd[ ]+\(%edx\),%xmm1
+ 13c: f2 0f 5e d3[ ]+divsd[ ]+%xmm3,%xmm2
+ 140: f2 0f 5e 1c 24[ ]+divsd[ ]+\(%esp,1\),%xmm3
+ 145: 0f ae 55 00[ ]+ldmxcsr 0x0\(%ebp\)
+ 149: 0f ae 1e[ ]+stmxcsr \(%esi\)
+ 14c: 0f ae f8[ ]+sfence
+ 14f: 66 0f 5f c1[ ]+maxpd[ ]+%xmm1,%xmm0
+ 153: 66 0f 5f 0a[ ]+maxpd[ ]+\(%edx\),%xmm1
+ 157: f2 0f 5f d3[ ]+maxsd[ ]+%xmm3,%xmm2
+ 15b: f2 0f 5f 1c 24[ ]+maxsd[ ]+\(%esp,1\),%xmm3
+ 160: 66 0f 5d e5[ ]+minpd[ ]+%xmm5,%xmm4
+ 164: 66 0f 5d 2e[ ]+minpd[ ]+\(%esi\),%xmm5
+ 168: f2 0f 5d f7[ ]+minsd[ ]+%xmm7,%xmm6
+ 16c: f2 0f 5d 38[ ]+minsd[ ]+\(%eax\),%xmm7
+ 170: 66 0f 28 c1[ ]+movapd %xmm1,%xmm0
+ 174: 66 0f 29 11[ ]+movapd %xmm2,\(%ecx\)
+ 178: 66 0f 28 12[ ]+movapd \(%edx\),%xmm2
+ 17c: 66 0f 17 2c 24[ ]+movhpd %xmm5,\(%esp,1\)
+ 181: 66 0f 16 2e[ ]+movhpd \(%esi\),%xmm5
+ 185: 66 0f 13 07[ ]+movlpd %xmm0,\(%edi\)
+ 189: 66 0f 12 00[ ]+movlpd \(%eax\),%xmm0
+ 18d: 66 0f 50 ca[ ]+movmskpd %xmm2,%cx
+ 191: 66 0f 10 d3[ ]+movupd %xmm3,%xmm2
+ 195: 66 0f 11 22[ ]+movupd %xmm4,\(%edx\)
+ 199: 66 0f 10 65 00[ ]+movupd 0x0\(%ebp\),%xmm4
+ 19e: f2 0f 10 ee[ ]+movsd[ ]+%xmm6,%xmm5
+ 1a2: f2 0f 11 3e[ ]+movsd[ ]+%xmm7,\(%esi\)
+ 1a6: f2 0f 10 38[ ]+movsd[ ]+\(%eax\),%xmm7
+ 1aa: 66 0f 59 c1[ ]+mulpd[ ]+%xmm1,%xmm0
+ 1ae: 66 0f 59 0a[ ]+mulpd[ ]+\(%edx\),%xmm1
+ 1b2: f2 0f 59 d2[ ]+mulsd[ ]+%xmm2,%xmm2
+ 1b6: f2 0f 59 1c 24[ ]+mulsd[ ]+\(%esp,1\),%xmm3
+ 1bb: 66 0f 56 e5[ ]+orpd[ ]+%xmm5,%xmm4
+ 1bf: 66 0f 56 2e[ ]+orpd[ ]+\(%esi\),%xmm5
+ 1c3: 66 0f c6 37 02[ ]+shufpd \$0x2,\(%edi\),%xmm6
+ 1c8: 66 0f c6 f8 03[ ]+shufpd \$0x3,%xmm0,%xmm7
+ 1cd: 66 0f 51 c1[ ]+sqrtpd %xmm1,%xmm0
+ 1d1: 66 0f 51 0a[ ]+sqrtpd \(%edx\),%xmm1
+ 1d5: f2 0f 51 d2[ ]+sqrtsd %xmm2,%xmm2
+ 1d9: f2 0f 51 1c 24[ ]+sqrtsd \(%esp,1\),%xmm3
+ 1de: 66 0f 5c e5[ ]+subpd[ ]+%xmm5,%xmm4
+ 1e2: 66 0f 5c 2e[ ]+subpd[ ]+\(%esi\),%xmm5
+ 1e6: f2 0f 5c f7[ ]+subsd[ ]+%xmm7,%xmm6
+ 1ea: f2 0f 5c 38[ ]+subsd[ ]+\(%eax\),%xmm7
+ 1ee: 66 0f 2e 01[ ]+ucomisd \(%ecx\),%xmm0
+ 1f2: 66 0f 2e ca[ ]+ucomisd %xmm2,%xmm1
+ 1f6: 66 0f 15 13[ ]+unpckhpd \(%ebx\),%xmm2
+ 1fa: 66 0f 15 dc[ ]+unpckhpd %xmm4,%xmm3
+ 1fe: 66 0f 14 65 00[ ]+unpcklpd 0x0\(%ebp\),%xmm4
+ 203: 66 0f 14 ee[ ]+unpcklpd %xmm6,%xmm5
+ 207: 66 0f 57 37[ ]+xorpd[ ]+\(%edi\),%xmm6
+ 20b: 66 0f 57 f8[ ]+xorpd[ ]+%xmm0,%xmm7
+ 20f: 66 0f 2b 33[ ]+movntpd %xmm6,\(%ebx\)
+ 213: 66 0f 57 c8[ ]+xorpd[ ]+%xmm0,%xmm1
+ 217: f3 0f e6 c8[ ]+cvtdq2pd %xmm0,%xmm1
+ 21b: f2 0f e6 c8[ ]+cvtpd2dq %xmm0,%xmm1
+ 21f: 0f 5b c8[ ]+cvtdq2ps %xmm0,%xmm1
+ 222: 66 0f 5a c8[ ]+cvtpd2ps %xmm0,%xmm1
+ 226: 0f 5a c8[ ]+cvtps2pd %xmm0,%xmm1
+ 229: 66 0f 5b c8[ ]+cvtps2dq %xmm0,%xmm1
+ 22d: f2 0f 5a c8[ ]+cvtsd2ss %xmm0,%xmm1
+ 231: f3 0f 5a c8[ ]+cvtss2sd %xmm0,%xmm1
+ 235: 66 0f e6 c8[ ]+cvttpd2dq %xmm0,%xmm1
+ 239: f3 0f 5b c8[ ]+cvttps2dq %xmm0,%xmm1
+ 23d: 66 0f f7 c8[ ]+maskmovdqu %xmm0,%xmm1
+ 241: 66 0f 6f c8[ ]+movdqa %xmm0,%xmm1
+ 245: 66 0f 6f c8[ ]+movdqa %xmm0,%xmm1
+ 249: f3 0f 6f c8[ ]+movdqu %xmm0,%xmm1
+ 24d: f3 0f 6f c8[ ]+movdqu %xmm0,%xmm1
+ 251: f2 0f d6 c8[ ]+movdq2q %mm1,%mm0
+ 255: f3 0f d6 c8 66[ ]+movq2dq %mm0,%xmm0
+ 25a: 0f f4 c8[ ]+pmuludq %mm0,%mm1
+ 25d: 66 0f f4 c8[ ]+pmuludq %xmm0,%xmm1
+ 261: 66 0f 70 c8 01[ ]+pshufd \$0x1,%xmm0,%xmm1
+ 266: f3 0f 70 c8 01[ ]+pshufhw \$0x1,%xmm0,%xmm1
+ 26b: f2 0f 70 c8 01[ ]+pshuflw \$0x1,%xmm0,%xmm1
+ 270: 66 0f 73 f8 01[ ]+pslldq \$0x1,%xmm0
+ 275: 66 0f 73 d8 01[ ]+psrldq \$0x1,%xmm0
+ 27a: 66 0f 6d c8[ ]+punpckhqdq %xmm0,%xmm3
+ 27e: 89 f6[ ]+mov[ ]+%esi,%esi
diff --git a/gas/testsuite/gas/i386/sse2.s b/gas/testsuite/gas/i386/sse2.s
new file mode 100644
index 0000000..96ae296
--- /dev/null
+++ b/gas/testsuite/gas/i386/sse2.s
@@ -0,0 +1,147 @@
+movnti %eax, (%eax)
+sfence
+lfence
+mfence
+addpd (%ecx),%xmm0
+addpd %xmm2,%xmm1
+addsd (%ebx),%xmm2
+addsd %xmm4,%xmm3
+andnpd 0x0(%ebp),%xmm4
+andnpd %xmm6,%xmm5
+andpd (%edi),%xmm6
+andpd %xmm0,%xmm7
+cmppd $0x2,%xmm1,%xmm0
+cmppd $0x3,(%edx),%xmm1
+cmpsd $0x4,%xmm2,%xmm2
+cmpsd $0x5,(%esp,1),%xmm3
+cmppd $0x6,%xmm5,%xmm4
+cmppd $0x7,(%esi),%xmm5
+cmpsd $0x0,%xmm7,%xmm6
+cmpsd $0x1,(%eax),%xmm7
+cmpeqpd %xmm1,%xmm0
+cmpeqpd (%edx),%xmm1
+cmpeqsd %xmm2,%xmm2
+cmpeqsd (%esp,1),%xmm3
+cmpltpd %xmm5,%xmm4
+cmpltpd (%esi),%xmm5
+cmpltsd %xmm7,%xmm6
+cmpltsd (%eax),%xmm7
+cmplepd (%ecx),%xmm0
+cmplepd %xmm2,%xmm1
+cmplesd (%ebx),%xmm2
+cmplesd %xmm4,%xmm3
+cmpunordpd 0x0(%ebp),%xmm4
+cmpunordpd %xmm6,%xmm5
+cmpunordsd (%edi),%xmm6
+cmpunordsd %xmm0,%xmm7
+cmpneqpd %xmm1,%xmm0
+cmpneqpd (%edx),%xmm1
+cmpneqsd %xmm2,%xmm2
+cmpneqsd (%esp,1),%xmm3
+cmpnltpd %xmm5,%xmm4
+cmpnltpd (%esi),%xmm5
+cmpnltsd %xmm7,%xmm6
+cmpnltsd (%eax),%xmm7
+cmpnlepd (%ecx),%xmm0
+cmpnlepd %xmm2,%xmm1
+cmpnlesd (%ebx),%xmm2
+cmpnlesd %xmm4,%xmm3
+cmpordpd 0x0(%ebp),%xmm4
+cmpordpd %xmm6,%xmm5
+cmpordsd (%edi),%xmm6
+cmpordsd %xmm0,%xmm7
+comisd %xmm1,%xmm0
+comisd (%edx),%xmm1
+cvtpi2pd %mm3,%xmm2
+cvtpi2pd (%esp,1),%xmm3
+cvtsi2sd %ebp,%xmm4
+cvtsi2sd (%esi),%xmm5
+cvtpd2pi %xmm7,%mm6
+cvtpd2pi (%eax),%mm7
+cvtsd2si (%ecx),%eax
+cvtsd2si %xmm2,%ecx
+cvttpd2pi (%ebx),%mm2
+cvttpd2pi %xmm4,%mm3
+cvttsd2si 0x0(%ebp),%esp
+cvttsd2si %xmm6,%ebp
+divpd %xmm1,%xmm0
+divpd (%edx),%xmm1
+divsd %xmm3,%xmm2
+divsd (%esp,1),%xmm3
+ldmxcsr 0x0(%ebp)
+stmxcsr (%esi)
+sfence
+maxpd %xmm1,%xmm0
+maxpd (%edx),%xmm1
+maxsd %xmm3,%xmm2
+maxsd (%esp,1),%xmm3
+minpd %xmm5,%xmm4
+minpd (%esi),%xmm5
+minsd %xmm7,%xmm6
+minsd (%eax),%xmm7
+movapd %xmm1,%xmm0
+movapd %xmm2,(%ecx)
+movapd (%edx),%xmm2
+movhpd %xmm5,(%esp,1)
+movhpd (%esi),%xmm5
+movlpd %xmm0,(%edi)
+movlpd (%eax),%xmm0
+movmskpd %xmm2,%ecx
+movupd %xmm3,%xmm2
+movupd %xmm4,(%edx)
+movupd 0x0(%ebp),%xmm4
+movsd %xmm6,%xmm5
+movsd %xmm7,(%esi)
+movsd (%eax),%xmm7
+mulpd %xmm1,%xmm0
+mulpd (%edx),%xmm1
+mulsd %xmm2,%xmm2
+mulsd (%esp,1),%xmm3
+orpd %xmm5,%xmm4
+orpd (%esi),%xmm5
+shufpd $0x2,(%edi),%xmm6
+shufpd $0x3,%xmm0,%xmm7
+sqrtpd %xmm1,%xmm0
+sqrtpd (%edx),%xmm1
+sqrtsd %xmm2,%xmm2
+sqrtsd (%esp,1),%xmm3
+subpd %xmm5,%xmm4
+subpd (%esi),%xmm5
+subsd %xmm7,%xmm6
+subsd (%eax),%xmm7
+ucomisd (%ecx),%xmm0
+ucomisd %xmm2,%xmm1
+unpckhpd (%ebx),%xmm2
+unpckhpd %xmm4,%xmm3
+unpcklpd 0x0(%ebp),%xmm4
+unpcklpd %xmm6,%xmm5
+xorpd (%edi),%xmm6
+xorpd %xmm0,%xmm7
+movntpd %xmm6,(%ebx)
+xorpd %xmm0, %xmm1
+cvtdq2pd %xmm0, %xmm1
+cvtpd2dq %xmm0, %xmm1
+cvtdq2ps %xmm0, %xmm1
+cvtpd2ps %xmm0, %xmm1
+cvtps2pd %xmm0, %xmm1
+cvtps2dq %xmm0, %mm1
+cvtsd2ss %xmm0, %xmm1
+cvtss2sd %xmm0, %xmm1
+cvttpd2dq %xmm0, %xmm1
+cvttps2dq %xmm0, %xmm1
+maskmovdqu %xmm0, %xmm1
+movdqa %xmm0, %xmm1
+movdqa %xmm0, %xmm1
+movdqu %xmm0, %xmm1
+movdqu %xmm0, %xmm1
+movdq2q %mm0, %xmm1
+movq2dq %xmm0, %mm1
+pmuludq %xmm0, %xmm1
+pmuludq %xmm0, %xmm1
+pshufd $1, %xmm0, %xmm1
+pshufhw $1, %xmm0, %xmm1
+pshuflw $1, %xmm0, %xmm1
+pslldq $1, %xmm0
+psrldq $1, %xmm0
+punpckhqdq %xmm0, %xmm1
+.p2align 4
diff --git a/gas/testsuite/gas/i386/ssemmx2.d b/gas/testsuite/gas/i386/ssemmx2.d
new file mode 100644
index 0000000..1dd7ef5
--- /dev/null
+++ b/gas/testsuite/gas/i386/ssemmx2.d
@@ -0,0 +1,88 @@
+#as: -J
+#objdump: -dw
+#name: i386 ssemmx2
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+[ ]+0: 66 0f e0 c1[ ]+pavgb[ ]+%xmm1,%xmm0
+[ ]+4: 66 0f e0 0a[ ]+pavgb[ ]+\(%edx\),%xmm1
+[ ]+8: 66 0f e3 d3[ ]+pavgw[ ]+%xmm3,%xmm2
+[ ]+c: 66 0f e3 1c 24[ ]+pavgw[ ]+\(%esp,1\),%xmm3
+[ ]+11: 66 0f c5 c8 00[ ]+pextrw \$0x0,%xmm1,%ax
+[ ]+16: 66 0f c4 09 01[ ]+pinsrw \$0x1,\(%ecx\),%xmm1
+[ ]+1b: 66 0f c4 d2 02[ ]+pinsrw \$0x2,%dx,%xmm2
+[ ]+20: 66 0f ee c1[ ]+pmaxsw %xmm1,%xmm0
+[ ]+24: 66 0f ee 0a[ ]+pmaxsw \(%edx\),%xmm1
+[ ]+28: 66 0f de d2[ ]+pmaxub %xmm2,%xmm2
+[ ]+2c: 66 0f de 1c 24[ ]+pmaxub \(%esp,1\),%xmm3
+[ ]+31: 66 0f ea e5[ ]+pminsw %xmm5,%xmm4
+[ ]+35: 66 0f ea 2e[ ]+pminsw \(%esi\),%xmm5
+[ ]+39: 66 0f da f7[ ]+pminub %xmm7,%xmm6
+[ ]+3d: 66 0f da 38[ ]+pminub \(%eax\),%xmm7
+[ ]+41: 66 0f d7 e8[ ]+pmovmskb %xmm5,%ax
+[ ]+45: 66 0f e4 e5[ ]+pmulhuw %xmm5,%xmm4
+[ ]+49: 66 0f e4 2e[ ]+pmulhuw \(%esi\),%xmm5
+[ ]+4d: 66 0f f6 f7[ ]+psadbw %xmm7,%xmm6
+[ ]+51: 66 0f f6 38[ ]+psadbw \(%eax\),%xmm7
+[ ]+55: 66 0f 70 da 01[ ]+pshufd \$0x1,%xmm2,%xmm3
+[ ]+5a: 66 0f 70 75 00 04[ ]+pshufd \$0x4,0x0\(%ebp\),%xmm6
+[ ]+60: f3 0f 70 da 01[ ]+pshufhw \$0x1,%xmm2,%xmm3
+[ ]+65: f3 0f 70 75 00 04[ ]+pshufhw \$0x4,0x0\(%ebp\),%xmm6
+[ ]+6b: f2 0f 70 da 01[ ]+pshuflw \$0x1,%xmm2,%xmm3
+[ ]+70: f2 0f 70 75 00 04[ ]+pshuflw \$0x4,0x0\(%ebp\),%xmm6
+[ ]+76: 66 0f e7 10[ ]+movntq %xmm2,\(%eax\)
+[ ]+7a: 66 0f 60 90 90 90 90 90 punpcklbw 0x90909090\(%eax\),%xmm2
+[ ]+82: 66 0f 61 90 90 90 90 90 punpcklwd 0x90909090\(%eax\),%xmm2
+[ ]+8a: 66 0f 62 90 90 90 90 90 punpckldq 0x90909090\(%eax\),%xmm2
+[ ]+92: 66 0f 63 90 90 90 90 90 packsswb 0x90909090\(%eax\),%xmm2
+[ ]+9a: 66 0f 64 90 90 90 90 90 pcmpgtb 0x90909090\(%eax\),%xmm2
+[ ]+a2: 66 0f 65 90 90 90 90 90 pcmpgtw 0x90909090\(%eax\),%xmm2
+[ ]+aa: 66 0f 66 90 90 90 90 90 pcmpgtd 0x90909090\(%eax\),%xmm2
+[ ]+b2: 66 0f 67 90 90 90 90 90 packuswb 0x90909090\(%eax\),%xmm2
+[ ]+ba: 66 0f 68 90 90 90 90 90 punpckhbw 0x90909090\(%eax\),%xmm2
+[ ]+c2: 66 0f 69 90 90 90 90 90 punpckhwd 0x90909090\(%eax\),%xmm2
+[ ]+ca: 66 0f 6a 90 90 90 90 90 punpckhdq 0x90909090\(%eax\),%xmm2
+[ ]+d2: 66 0f 6b 90 90 90 90 90 packssdw 0x90909090\(%eax\),%xmm2
+[ ]+da: 66 0f 6e 90 90 90 90 90 movd[ ]+0x90909090\(%eax\),%xmm2
+[ ]+e2: f3 0f 7e 90 90 90 90 90 movq[ ]+%xmm2,0x90909090\(%eax\)
+[ ]+ea: 66 0f 71 d0 90[ ]+psrlw[ ]+\$0x90,%xmm0
+[ ]+ef: 66 0f 72 d0 90[ ]+psrld[ ]+\$0x90,%xmm0
+[ ]+f4: 66 0f 73 d0 90[ ]+psrlq[ ]+\$0x90,%xmm0
+[ ]+f9: 66 0f 74 90 90 90 90 90 pcmpeqb 0x90909090\(%eax\),%xmm2
+ 101: 66 0f 75 90 90 90 90 90 pcmpeqw 0x90909090\(%eax\),%xmm2
+ 109: 66 0f 76 90 90 90 90 90 pcmpeqd 0x90909090\(%eax\),%xmm2
+ 111: 66 0f 7e 90 90 90 90 90 movd[ ]+%xmm2,0x90909090\(%eax\)
+ 119: 66 0f d6 90 90 90 90 90 movq[ ]+%xmm2,0x90909090\(%eax\)
+ 121: 66 0f d1 90 90 90 90 90 psrlw[ ]+0x90909090\(%eax\),%xmm2
+ 129: 66 0f d2 90 90 90 90 90 psrld[ ]+0x90909090\(%eax\),%xmm2
+ 131: 66 0f d3 90 90 90 90 90 psrlq[ ]+0x90909090\(%eax\),%xmm2
+ 139: 66 0f d5 90 90 90 90 90 pmullw 0x90909090\(%eax\),%xmm2
+ 141: 66 0f d8 90 90 90 90 90 psubusb 0x90909090\(%eax\),%xmm2
+ 149: 66 0f d9 90 90 90 90 90 psubusw 0x90909090\(%eax\),%xmm2
+ 151: 66 0f db 90 90 90 90 90 pand[ ]+0x90909090\(%eax\),%xmm2
+ 159: 66 0f dc 90 90 90 90 90 paddusb 0x90909090\(%eax\),%xmm2
+ 161: 66 0f dd 90 90 90 90 90 paddusw 0x90909090\(%eax\),%xmm2
+ 169: 66 0f df 90 90 90 90 90 pandn[ ]+0x90909090\(%eax\),%xmm2
+ 171: 66 0f e1 90 90 90 90 90 psraw[ ]+0x90909090\(%eax\),%xmm2
+ 179: 66 0f e2 90 90 90 90 90 psrad[ ]+0x90909090\(%eax\),%xmm2
+ 181: 66 0f e5 90 90 90 90 90 pmulhw 0x90909090\(%eax\),%xmm2
+ 189: 66 0f e8 90 90 90 90 90 psubsb 0x90909090\(%eax\),%xmm2
+ 191: 66 0f e9 90 90 90 90 90 psubsw 0x90909090\(%eax\),%xmm2
+ 199: 66 0f eb 90 90 90 90 90 por[ ]+0x90909090\(%eax\),%xmm2
+ 1a1: 66 0f ec 90 90 90 90 90 paddsb 0x90909090\(%eax\),%xmm2
+ 1a9: 66 0f ed 90 90 90 90 90 paddsw 0x90909090\(%eax\),%xmm2
+ 1b1: 66 0f ef 90 90 90 90 90 pxor[ ]+0x90909090\(%eax\),%xmm2
+ 1b9: 66 0f f1 90 90 90 90 90 psllw[ ]+0x90909090\(%eax\),%xmm2
+ 1c1: 66 0f f2 90 90 90 90 90 pslld[ ]+0x90909090\(%eax\),%xmm2
+ 1c9: 66 0f f3 90 90 90 90 90 psllq[ ]+0x90909090\(%eax\),%xmm2
+ 1d1: 66 0f f5 90 90 90 90 90 pmaddwd 0x90909090\(%eax\),%xmm2
+ 1d9: 66 0f f8 90 90 90 90 90 psubb[ ]+0x90909090\(%eax\),%xmm2
+ 1e1: 66 0f f9 90 90 90 90 90 psubw[ ]+0x90909090\(%eax\),%xmm2
+ 1e9: 66 0f fa 90 90 90 90 90 psubd[ ]+0x90909090\(%eax\),%xmm2
+ 1f1: 66 0f fc 90 90 90 90 90 paddb[ ]+0x90909090\(%eax\),%xmm2
+ 1f9: 66 0f fd 90 90 90 90 90 paddw[ ]+0x90909090\(%eax\),%xmm2
+ 201: 66 0f fe 90 90 90 90 90 paddd[ ]+0x90909090\(%eax\),%xmm2
+ 209: 8d b4 26 00 00 00 00 lea[ ]+0x0\(%esi,1\),%esi
diff --git a/gas/testsuite/gas/i386/ssemmx2.s b/gas/testsuite/gas/i386/ssemmx2.s
new file mode 100644
index 0000000..5e67fc9
--- /dev/null
+++ b/gas/testsuite/gas/i386/ssemmx2.s
@@ -0,0 +1,80 @@
+.code32
+pavgb %xmm1,%xmm0
+pavgb (%edx),%xmm1
+pavgw %xmm3,%xmm2
+pavgw (%esp,1),%xmm3
+pextrw $0x0,%xmm1,%eax
+pinsrw $0x1,(%ecx),%xmm1
+pinsrw $0x2,%edx,%xmm2
+pmaxsw %xmm1,%xmm0
+pmaxsw (%edx),%xmm1
+pmaxub %xmm2,%xmm2
+pmaxub (%esp,1),%xmm3
+pminsw %xmm5,%xmm4
+pminsw (%esi),%xmm5
+pminub %xmm7,%xmm6
+pminub (%eax),%xmm7
+pmovmskb %xmm5,%eax
+pmulhuw %xmm5,%xmm4
+pmulhuw (%esi),%xmm5
+psadbw %xmm7,%xmm6
+psadbw (%eax),%xmm7
+pshufd $0x1,%xmm2,%xmm3
+pshufd $0x4,0x0(%ebp),%xmm6
+pshufhw $0x1,%xmm2,%xmm3
+pshufhw $0x4,0x0(%ebp),%xmm6
+pshuflw $0x1,%xmm2,%xmm3
+pshuflw $0x4,0x0(%ebp),%xmm6
+movntq %xmm2,(%eax)
+punpcklbw 0x90909090(%eax),%xmm2
+punpcklwd 0x90909090(%eax),%xmm2
+punpckldq 0x90909090(%eax),%xmm2
+packsswb 0x90909090(%eax),%xmm2
+pcmpgtb 0x90909090(%eax),%xmm2
+pcmpgtw 0x90909090(%eax),%xmm2
+pcmpgtd 0x90909090(%eax),%xmm2
+packuswb 0x90909090(%eax),%xmm2
+punpckhbw 0x90909090(%eax),%xmm2
+punpckhwd 0x90909090(%eax),%xmm2
+punpckhdq 0x90909090(%eax),%xmm2
+packssdw 0x90909090(%eax),%xmm2
+movd 0x90909090(%eax),%xmm2
+movq 0x90909090(%eax),%xmm2
+psrlw $0x90,%xmm0
+psrld $0x90,%xmm0
+psrlq $0x90,%xmm0
+pcmpeqb 0x90909090(%eax),%xmm2
+pcmpeqw 0x90909090(%eax),%xmm2
+pcmpeqd 0x90909090(%eax),%xmm2
+movd %xmm2,0x90909090(%eax)
+movq %xmm2,0x90909090(%eax)
+psrlw 0x90909090(%eax),%xmm2
+psrld 0x90909090(%eax),%xmm2
+psrlq 0x90909090(%eax),%xmm2
+pmullw 0x90909090(%eax),%xmm2
+psubusb 0x90909090(%eax),%xmm2
+psubusw 0x90909090(%eax),%xmm2
+pand 0x90909090(%eax),%xmm2
+paddusb 0x90909090(%eax),%xmm2
+paddusw 0x90909090(%eax),%xmm2
+pandn 0x90909090(%eax),%xmm2
+psraw 0x90909090(%eax),%xmm2
+psrad 0x90909090(%eax),%xmm2
+pmulhw 0x90909090(%eax),%xmm2
+psubsb 0x90909090(%eax),%xmm2
+psubsw 0x90909090(%eax),%xmm2
+por 0x90909090(%eax),%xmm2
+paddsb 0x90909090(%eax),%xmm2
+paddsw 0x90909090(%eax),%xmm2
+pxor 0x90909090(%eax),%xmm2
+psllw 0x90909090(%eax),%xmm2
+pslld 0x90909090(%eax),%xmm2
+psllq 0x90909090(%eax),%xmm2
+pmaddwd 0x90909090(%eax),%xmm2
+psubb 0x90909090(%eax),%xmm2
+psubw 0x90909090(%eax),%xmm2
+psubd 0x90909090(%eax),%xmm2
+paddb 0x90909090(%eax),%xmm2
+paddw 0x90909090(%eax),%xmm2
+paddd 0x90909090(%eax),%xmm2
+.p2align 4