* i386.exp: Add ssemmx2 and sse2 tests.
authorJan Hubicka <jh@suse.cz>
Wed, 10 Jan 2001 14:32:32 +0000 (14:32 +0000)
committerJan Hubicka <jh@suse.cz>
Wed, 10 Jan 2001 14:32:32 +0000 (14:32 +0000)
(sse2.d, sse2.s, ssemmx2.d, ssemmx2.s): New tests.

gas/testsuite/ChangeLog
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/sse2.d [new file with mode: 0644]
gas/testsuite/gas/i386/sse2.s [new file with mode: 0644]
gas/testsuite/gas/i386/ssemmx2.d [new file with mode: 0644]
gas/testsuite/gas/i386/ssemmx2.s [new file with mode: 0644]

index 8f90b46..29183b8 100644 (file)
@@ -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
index 3656694..8449661 100644 (file)
@@ -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 (file)
index 0000000..5ea977b
--- /dev/null
@@ -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 (file)
index 0000000..96ae296
--- /dev/null
@@ -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 (file)
index 0000000..1dd7ef5
--- /dev/null
@@ -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 (file)
index 0000000..5e67fc9
--- /dev/null
@@ -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