|
From: <sv...@va...> - 2005-05-10 02:49:18
|
Author: sewardj
Date: 2005-05-10 03:49:11 +0100 (Tue, 10 May 2005)
New Revision: 3649
Added:
trunk/none/tests/amd64/insn_sse.def
Modified:
trunk/none/tests/amd64/gen_insn_test.pl
Log:
* test cases for amd64 SSE
* modify gen_insn_test to handle them
Modified: trunk/none/tests/amd64/gen_insn_test.pl
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/amd64/gen_insn_test.pl 2005-05-10 02:47:21 UTC (rev =
3648)
+++ trunk/none/tests/amd64/gen_insn_test.pl 2005-05-10 02:49:11 UTC (rev =
3649)
@@ -144,7 +144,7 @@
__attribute__((unused))
static int eq_float(float f1, float f2)
{
- return f1 =3D=3D f2 || fabsf(f1 - f2) < fabsf(f1) * 1.5 * pow(2,-12);
+ return f1 =3D=3D f2 || fabsf(f1 - f2) < fabsf(f1) * 1.5 * powf(2,-12)=
;
}
=20
__attribute__((unused))
@@ -663,8 +663,8 @@
}
elsif ($arg->{type} eq "xmm")
{
- print qq| \"movlps 0%$arg->{argnum}, %%$arg->{regist=
er}\\n\"\n|;
- print qq| \"movhps 8%$arg->{argnum}, %%$arg->{regist=
er}\\n\"\n|;
+ print qq| \"movlps 0+%$arg->{argnum}, %%$arg->{regis=
ter}\\n\"\n|;
+ print qq| \"movhps 8+%$arg->{argnum}, %%$arg->{regis=
ter}\\n\"\n|;
}
elsif ($arg->{type} eq "st")
{
@@ -693,20 +693,21 @@
=20
if (defined($eflagsmask) || defined($eflagsset))
{
- print qq| \"pushfl\\n\"\n|;
- print qq| \"andl \$$eflagsmask, (%%esp)\\n\"\n| if defin=
ed($eflagsmask);
- print qq| \"orl \$$eflagsset, (%%esp)\\n\"\n| if defined=
($eflagsset);
- print qq| \"popfl\\n\"\n|;
+ print qq| \"pushfq\\n\"\n|;
+ print qq| \"andl \$$eflagsmask, (%%rsp)\\n\"\n| if defin=
ed($eflagsmask);
+ print qq| \"andl \$0, 8(%%rsp)\\n\"\n| if defined($eflag=
smask);
+ print qq| \"orq \$$eflagsset, (%%rsp)\\n\"\n| if defined=
($eflagsset);
+ print qq| \"popfq\\n\"\n|;
}
=20
if (defined($fpucwmask) || defined($fpucwset))
{
- print qq| \"subl \$2, %%esp\\n\"\n|;
- print qq| \"fstcw (%%esp)\\n\"\n|;
- print qq| \"andw \$$fpucwmask, (%%esp)\\n\"\n| if define=
d($fpucwmask);
- print qq| \"orw \$$fpucwset, (%%esp)\\n\"\n| if defined(=
$fpucwset);
- print qq| \"fldcw (%%esp)\\n\"\n|;
- print qq| \"addl \$2, %%esp\\n\"\n|;
+ print qq| \"subl \$2, %%rsp\\n\"\n|;
+ print qq| \"fstcw (%%rsp)\\n\"\n|;
+ print qq| \"andw \$$fpucwmask, (%%rsp)\\n\"\n| if define=
d($fpucwmask);
+ print qq| \"orw \$$fpucwset, (%%rsp)\\n\"\n| if defined(=
$fpucwset);
+ print qq| \"fldcw (%%rsp)\\n\"\n|;
+ print qq| \"addl \$2, %%rsp\\n\"\n|;
}
=20
print qq| \"$insn|;
@@ -776,8 +777,8 @@
}
elsif ($result->{type} eq "xmm")
{
- print qq| \"movlps %%$result->{register}, 0%$result-=
>{argnum}\\n\"\n|;
- print qq| \"movhps %%$result->{register}, 8%$result-=
>{argnum}\\n\"\n|;
+ print qq| \"movlps %%$result->{register}, 0+%$result=
->{argnum}\\n\"\n|;
+ print qq| \"movhps %%$result->{register}, 8+%$result=
->{argnum}\\n\"\n|;
}
elsif ($result->{type} eq "st")
{
@@ -785,8 +786,8 @@
}
elsif ($result->{type} eq "eflags")
{
- print qq| \"pushfl\\n\"\n|;
- print qq| \"popl %$result->{argnum}\\n\"\n|;
+ print qq| \"pushfq\\n\"\n|;
+ print qq| \"popq %$result->{argnum}\\n\"\n|;
}
elsif ($result->{type} eq "fpucw")
{
Added: trunk/none/tests/amd64/insn_sse.def
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/amd64/insn_sse.def 2005-05-10 02:47:21 UTC (rev 3648=
)
+++ trunk/none/tests/amd64/insn_sse.def 2005-05-10 02:49:11 UTC (rev 3649=
)
@@ -0,0 +1,146 @@
+addps xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[44.44,33.33,22.22,11.11] =3D=
> 1.ps[56.78,90.11,65.43,98.76]
+addps m128.ps[12.34,56.78,43.21,87.65] xmm.ps[44.44,33.33,22.22,11.11] =3D=
> 1.ps[56.78,90.11,65.43,98.76]
+addss xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[44.44,33.33,22.22,11.11] =3D=
> 1.ps[56.78,33.33,22.22,11.11]
+addss m128.ps[12.34,56.78,43.21,87.65] xmm.ps[44.44,33.33,22.22,11.11] =3D=
> 1.ps[56.78,33.33,22.22,11.11]
+andnps xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789=
abcdef,0xfdb97531eca86420] =3D> 1.uq[0xfc98301064002000,0x00020046010389c=
f]
+andnps m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x012345678=
9abcdef,0xfdb97531eca86420] =3D> 1.uq[0xfc98301064002000,0x00020046010389=
cf]
+andps xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789a=
bcdef,0xfdb97531eca86420] =3D> 1.uq[0x0121452188a84420,0x0121452188a84420=
]
+andps m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789=
abcdef,0xfdb97531eca86420] =3D> 1.uq[0x0121452188a84420,0x0121452188a8442=
0]
+cmpeqps xmm.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5678,234.=
5679,234.5678,234.5679] =3D> 1.ud[0xffffffff,0x00000000,0xffffffff,0x0000=
0000]
+cmpeqps m128.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5678,234=
.5679,234.5678,234.5679] =3D> 1.ud[0xffffffff,0x00000000,0xffffffff,0x000=
00000]
+cmpeqss xmm.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5678,0.0,0.0,0.0] =3D>=
1.ud[0xffffffff,0,0,0]
+cmpeqss m128.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5679,0.0,0.0,0.0] =3D=
> 1.ud[0x00000000,0,0,0]
+cmpleps xmm.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5678,234.=
5679,234.5678,234.5679] =3D> 1.ud[0xffffffff,0x00000000,0xffffffff,0x0000=
0000]
+cmpleps m128.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5678,234=
.5679,234.5678,234.5679] =3D> 1.ud[0xffffffff,0x00000000,0xffffffff,0x000=
00000]
+cmpless xmm.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5678,0.0,0.0,0.0] =3D>=
1.ud[0xffffffff,0,0,0]
+cmpless m128.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5679,0.0,0.0,0.0] =3D=
> 1.ud[0x00000000,0,0,0]
+cmpltps xmm.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5677,234.=
5679,234.5677,234.5679] =3D> 1.ud[0xffffffff,0x00000000,0xffffffff,0x0000=
0000]
+cmpltps m128.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5677,234=
.5679,234.5677,234.5679] =3D> 1.ud[0xffffffff,0x00000000,0xffffffff,0x000=
00000]
+cmpltss xmm.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5676,0.0,0.0,0.0] =3D>=
1.ud[0xffffffff,0,0,0]
+cmpltss m128.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5679,0.0,0.0,0.0] =3D=
> 1.ud[0x00000000,0,0,0]
+cmpneqps xmm.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5679,234=
.5678,234.5679,234.5678] =3D> 1.ud[0xffffffff,0x00000000,0xffffffff,0x000=
00000]
+cmpneqps m128.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5679,23=
4.5678,234.5679,234.5678] =3D> 1.ud[0xffffffff,0x00000000,0xffffffff,0x00=
000000]
+cmpneqss xmm.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5679,0.0,0.0,0.0] =3D=
> 1.ud[0xffffffff,0,0,0]
+cmpneqss m128.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5678,0.0,0.0,0.0] =3D=
> 1.ud[0x00000000,0,0,0]
+cmpnleps xmm.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5679,234=
.5678,234.5679,234.5678] =3D> 1.ud[0xffffffff,0x00000000,0xffffffff,0x000=
00000]
+cmpnleps m128.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5679,23=
4.5678,234.5679,234.5678] =3D> 1.ud[0xffffffff,0x00000000,0xffffffff,0x00=
000000]
+cmpnless xmm.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5679,0.0,0.0,0.0] =3D=
> 1.ud[0xffffffff,0,0,0]
+cmpnless m128.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5678,0.0,0.0,0.0] =3D=
> 1.ud[0x00000000,0,0,0]
+cmpnltps xmm.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5679,234=
.5677,234.5679,234.5677] =3D> 1.ud[0xffffffff,0x00000000,0xffffffff,0x000=
00000]
+cmpnltps m128.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5679,23=
4.5677,234.5679,234.5677] =3D> 1.ud[0xffffffff,0x00000000,0xffffffff,0x00=
000000]
+cmpnltss xmm.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5679,0.0,0.0,0.0] =3D=
> 1.ud[0xffffffff,0,0,0]
+cmpnltss m128.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5676,0.0,0.0,0.0] =3D=
> 1.ud[0x00000000,0,0,0]
+comiss xmm.ps[234.5678,0.0] xmm.ps[234.5679,0.0] =3D> eflags[0x8d5,0x000=
]
+comiss m32.ps[234.5678] xmm.ps[234.5679,0.0] =3D> eflags[0x8d5,0x000]
+comiss xmm.ps[234.5678,0.0] xmm.ps[234.5677,0.0] =3D> eflags[0x8d5,0x001=
]
+comiss m32.ps[234.5678] xmm.ps[234.5677,0.0] =3D> eflags[0x8d5,0x001]
+comiss xmm.ps[234.5678,0.0] xmm.ps[234.5678,0.0] =3D> eflags[0x8d5,0x040=
]
+comiss m32.ps[234.5678] xmm.ps[234.5678,0.0] =3D> eflags[0x8d5,0x040]
+cvtpi2ps mm.sd[1234,5678] xmm.ps[1.1,2.2,3.3,4.4] =3D> 1.ps[1234.0,5678.=
0,3.3,4.4]
+cvtpi2ps m64.sd[1234,5678] xmm.ps[1.1,2.2,3.3,4.4] =3D> 1.ps[1234.0,5678=
.0,3.3,4.4]
+cvtps2pi xmm.ps[12.34,56.78,1.11,2.22] mm.sd[1,2] =3D> 1.sd[12,57]
+cvtps2pi m128.ps[12.34,56.78,1.11,2.22] mm.sd[1,2] =3D> 1.sd[12,57]
+cvtsi2ss r32.sd[12] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.ps[12.0,2.22,3.33=
,4.44]
+cvtsi2ss m32.sd[12] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.ps[12.0,2.22,3.33=
,4.44]
+cvtss2si xmm.ps[12.34,56.78,43.21,87.65] r32.sd[99] =3D> 1.sd[12]
+cvtss2si m128.ps[56.78,12.34,87.65,43.21] r32.sd[99] =3D> 1.sd[57]
+cvttps2pi xmm.ps[12.34,56.78,1.11,2.22] mm.sd[1,2] =3D> 1.sd[12,56]
+cvttps2pi m128.ps[12.34,56.78,1.11,2.22] mm.sd[1,2] =3D> 1.sd[12,56]
+cvttss2si xmm.ps[12.34,56.78,43.21,87.65] r32.sd[99] =3D> 1.sd[12]
+cvttss2si m128.ps[56.78,12.34,87.65,43.21] r32.sd[99] =3D> 1.sd[56]
+divps xmm.ps[2.0,3.0,4.0,5.0] xmm.ps[24.68,3.69,48.48,55.55] =3D> 1.ps[1=
2.34,1.23,12.12,11.11]
+divps m128.ps[2.0,3.0,4.0,5.0] xmm.ps[24.68,3.69,48.48,55.55] =3D> 1.ps[=
12.34,1.23,12.12,11.11]
+divss xmm.ps[2.0,3.0,4.0,5.0] xmm.ps[24.68,3.69,48.48,55.55] =3D> 1.ps[1=
2.34,3.69,48.48,55.55]
+divss m128.ps[2.0,3.0,4.0,5.0] xmm.ps[24.68,3.69,48.48,55.55] =3D> 1.ps[=
12.34,3.69,48.48,55.55]
+maxps xmm.ps[2.22,4.44,6.66,8.88] xmm.ps[7.77,5.55,3.33,1.11] =3D> 1.ps[=
7.77,5.55,6.66,8.88]
+maxps m128.ps[2.22,4.44,6.66,8.88] xmm.ps[7.77,5.55,3.33,1.11] =3D> 1.ps=
[7.77,5.55,6.66,8.88]
+maxss xmm.ps[2.22,4.44,6.66,8.88] xmm.ps[7.77,5.55,3.33,1.11] =3D> 1.ps[=
7.77,5.55,3.33,1.11]
+maxss m128.ps[8.88,6.66,4.44,2.22] xmm.ps[1.11,3.33,5.55,7.77] =3D> 1.ps=
[8.88,3.33,5.55,7.77]
+minps xmm.ps[2.22,4.44,6.66,8.88] xmm.ps[7.77,5.55,3.33,1.11] =3D> 1.ps[=
2.22,4.44,3.33,1.11]
+minps m128.ps[2.22,4.44,6.66,8.88] xmm.ps[7.77,5.55,3.33,1.11] =3D> 1.ps=
[2.22,4.44,3.33,1.11]
+minss xmm.ps[2.22,4.44,6.66,8.88] xmm.ps[7.77,5.55,3.33,1.11] =3D> 1.ps[=
2.22,5.55,3.33,1.11]
+minss m128.ps[8.88,6.66,4.44,2.22] xmm.ps[1.11,3.33,5.55,7.77] =3D> 1.ps=
[1.11,3.33,5.55,7.77]
+movaps xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[11.11,22.22,33.33,44.44] =3D=
> 1.ps[12.34,56.78,43.21,87.65]
+movaps m128.ps[12.34,56.78,43.21,87.65] xmm.ps[11.11,22.22,33.33,44.44] =
=3D> 1.ps[12.34,56.78,43.21,87.65]
+movhlps xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[11.11,22.22,33.33,44.44] =
=3D> 1.ps[43.21,87.65,33.33,44.44]
+movhps m64.ps[12.34,56.78] xmm.ps[11.11,22.22,33.33,44.44] =3D> 1.ps[11.=
11,22.22,12.34,56.78]
+movhps xmm.ps[12.34,56.78,43.21,87.65] m64.ps[11.11,22.22] =3D> 1.ps[43.=
21,87.65]
+movlhps xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[11.11,22.22,33.33,44.44] =
=3D> 1.ps[11.11,22.22,12.34,56.78]
+movlps m64.ps[12.34,56.78] xmm.ps[11.11,22.22,33.33,44.44] =3D> 1.ps[12.=
34,56.78,33.33,44.44]
+movlps xmm.ps[12.34,56.78,43.21,87.65] m64.ps[11.11,22.22] =3D> 1.ps[12.=
34,56.78]
+movmskps xmm.ps[12.34,-56.78,43.21,-87.65] r32.sd[0] =3D> 1.sd[10]
+movntps xmm.ps[12.34,56.78,43.21,87.65] m128.ps[11.11,22.22,33.33,44.44]=
=3D> 1.ps[12.34,56.78,43.21,87.65]
+movntq mm.uq[0x0123456789abcdef] m64.uq[0x1212121234343434] =3D> 1.uq[0x=
0123456789abcdef]
+movss xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[11.11,22.22,33.33,44.44] =3D=
> 1.ps[12.34,22.22,33.33,44.44]
+movss m32.ps[12.34] xmm.ps[11.11,22.22,33.33,44.44] =3D> 1.ps[12.34,0.0,=
0.0,0.0]
+movss xmm.ps[12.34,56.78,43.21,87.65] m32.ps[11.11] =3D> 1.ps[12.34]
+movups xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[11.11,22.22,33.33,44.44] =3D=
> 1.ps[12.34,56.78,43.21,87.65]
+movups m128.ps[12.34,56.78,43.21,87.65] xmm.ps[11.11,22.22,33.33,44.44] =
=3D> 1.ps[12.34,56.78,43.21,87.65]
+mulps xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[5.0,4.0,3.0,2.0] =3D> 1.ps[=
61.70,227.12,129.63,175.30]
+mulps m128.ps[12.34,56.78,43.21,87.65] xmm.ps[5.0,4.0,3.0,2.0] =3D> 1.ps=
[61.70,227.12,129.63,175.30]
+mulss xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[5.0,4.0,3.0,2.0] =3D> 1.ps[=
61.70,4.0,3.0,2.0]
+mulss m128.ps[12.34,56.78,43.21,87.65] xmm.ps[5.0,4.0,3.0,2.0] =3D> 1.ps=
[61.70,4.0,3.0,2.0]
+orps xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789ab=
cdef,0xfdb97531eca86420] =3D> 1.uq[0xfdbb7577edabedef,0xfdbb7577edabedef]
+orps m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789a=
bcdef,0xfdb97531eca86420] =3D> 1.uq[0xfdbb7577edabedef,0xfdbb7577edabedef=
]
+pavgb mm.ub[11,22,33,44,55,66,77,88] mm.ub[15,25,35,45,55,65,75,85] =3D>=
1.ub[13,24,34,45,55,66,76,87]
+pavgb m64.ub[11,22,33,44,55,66,77,88] mm.ub[15,25,35,45,55,65,75,85] =3D=
> 1.ub[13,24,34,45,55,66,76,87]
+pavgw mm.uw[1122,3344,5566,7788] mm.uw[1525,3545,5565,7585] =3D> 1.uw[13=
24,3445,5566,7687]
+pavgw m64.uw[1122,3344,5566,7788] mm.uw[1525,3545,5565,7585] =3D> 1.uw[1=
324,3445,5566,7687]
+pextrw imm8[0] mm.uw[1234,5678,4321,8765] r32.ud[0xffffffff] =3D> 2.ud[1=
234]
+pextrw imm8[1] mm.uw[1234,5678,4321,8765] r32.ud[0xffffffff] =3D> 2.ud[5=
678]
+pextrw imm8[2] mm.uw[1234,5678,4321,8765] r32.ud[0xffffffff] =3D> 2.ud[4=
321]
+pextrw imm8[3] mm.uw[1234,5678,4321,8765] r32.ud[0xffffffff] =3D> 2.ud[8=
765]
+pinsrw imm8[0] r32.ud[0xffffffff] mm.uw[1234,5678,4321,8765] =3D> 2.uw[6=
5535,5678,4321,8765]
+pinsrw imm8[1] r32.ud[0xffffffff] mm.uw[1234,5678,4321,8765] =3D> 2.uw[1=
234,65535,4321,8765]
+pinsrw imm8[2] r32.ud[0xffffffff] mm.uw[1234,5678,4321,8765] =3D> 2.uw[1=
234,5678,65535,8765]
+pinsrw imm8[3] r32.ud[0xffffffff] mm.uw[1234,5678,4321,8765] =3D> 2.uw[1=
234,5678,4321,65535]
+pinsrw imm8[0] m16.uw[0xffff] mm.uw[1234,5678,4321,8765] =3D> 2.uw[65535=
,5678,4321,8765]
+pinsrw imm8[1] m16.uw[0xffff] mm.uw[1234,5678,4321,8765] =3D> 2.uw[1234,=
65535,4321,8765]
+pinsrw imm8[2] m16.uw[0xffff] mm.uw[1234,5678,4321,8765] =3D> 2.uw[1234,=
5678,65535,8765]
+pinsrw imm8[3] m16.uw[0xffff] mm.uw[1234,5678,4321,8765] =3D> 2.uw[1234,=
5678,4321,65535]
+pmaxsw mm.sw[-1,2,-3,4] mm.sw[2,-3,4,-5] =3D> 1.sw[2,2,4,4]
+pmaxsw m64.sw[-1,2,-3,4] mm.sw[2,-3,4,-5] =3D> 1.sw[2,2,4,4]
+pmaxub mm.ub[1,2,3,4,5,6,7,8] mm.ub[8,7,6,5,4,3,2,1] =3D> 1.ub[8,7,6,5,5=
,6,7,8]
+pmaxub m64.ub[1,2,3,4,5,6,7,8] mm.ub[8,7,6,5,4,3,2,1] =3D> 1.ub[8,7,6,5,=
5,6,7,8]
+pminsw mm.sw[-1,2,-3,4] mm.sw[2,-3,4,-5] =3D> 1.sw[-1,-3,-3,-5]
+pminsw m64.sw[-1,2,-3,4] mm.sw[2,-3,4,-5] =3D> 1.sw[-1,-3,-3,-5]
+pminub mm.ub[1,2,3,4,5,6,7,8] mm.ub[8,7,6,5,4,3,2,1] =3D> 1.ub[1,2,3,4,4=
,3,2,1]
+pminub m64.ub[1,2,3,4,5,6,7,8] mm.ub[8,7,6,5,4,3,2,1] =3D> 1.ub[1,2,3,4,=
4,3,2,1]
+pmovmskb mm.uq[0x8000000080008088] r32.ud[0] =3D> 1.ud[0x8b]
+pmulhuw mm.uw[1111,2222,3333,4444] mm.uw[5555,6666,7777,8888] =3D> 1.uw[=
0x005e,0x00e2,0x018b,0x025a]
+pmulhuw m64.uw[1111,2222,3333,4444] mm.uw[5555,6666,7777,8888] =3D> 1.uw=
[0x005e,0x00e2,0x018b,0x025a]
+psadbw mm.ub[1,2,3,4,5,6,7,8] mm.ub[8,7,6,5,4,3,2,1] =3D> 1.sw[32,0,0,0]
+psadbw m64.ub[1,2,3,4,5,6,7,8] mm.ub[8,7,6,5,4,3,2,1] =3D> 1.sw[32,0,0,0=
]
+pshufw imm8[0x1b] mm.sw[11,22,33,44] mm.sw[0,0,0,0] =3D> 2.sw[44,33,22,1=
1]
+pshufw imm8[0x1b] m64.sw[11,22,33,44] mm.sw[0,0,0,0] =3D> 2.sw[44,33,22,=
11]
+rcpps xmm.ps[2.0,4.0,0.5,0.25] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.ps[0.5=
,0.25,2.0,4.0]
+rcpps m128.ps[2.0,4.0,0.5,0.25] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.ps[0.=
5,0.25,2.0,4.0]
+rcpss xmm.ps[2.0,4.0,0.5,0.25] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.ps[0.5=
,2.22,3.33,4.44]
+rcpss m128.ps[2.0,4.0,0.5,0.25] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.ps[0.=
5,2.22,3.33,4.44]
+rsqrtps xmm.ps[4.0,16.0,25.0,64.0] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.ps=
[0.499878,0.249939,0.199982,0.124969]
+rsqrtps m128.ps[4.0,16.0,25.0,64.0] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.p=
s[0.499878,0.249939,0.199982,0.124969]
+rsqrtss xmm.ps[16.0,5.55,6.66,7.77] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.p=
s[0.249939,2.22,3.33,4.44]
+rsqrtss m128.ps[16.0,5.55,6.66,7.77] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.=
ps[0.249939,2.22,3.33,4.44]
+sfence
+shufps imm8[0xe4] xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[12.34,56.78,43.=
21,87.65] =3D> 2.ps[12.34,56.78,43.21,87.65]
+shufps imm8[0xb1] m128.ps[12.34,56.78,43.21,87.65] xmm.ps[12.34,56.78,43=
.21,87.65] =3D> 2.ps[56.78,12.34,87.65,43.21]
+sqrtps xmm.ps[16.0,25.0,36.0,49.0] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.ps=
[4.0,5.0,6.0,7.0]
+sqrtps m128.ps[16.0,25.0,36.0,49.0] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.p=
s[4.0,5.0,6.0,7.0]
+sqrtss xmm.ps[16.0,5.55,6.66,7.77] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.ps=
[4.0,2.22,3.33,4.44]
+sqrtss m128.ps[16.0,5.55,6.66,7.77] xmm.ps[1.11,2.22,3.33,4.44] =3D> 1.p=
s[4.0,2.22,3.33,4.44]
+subps xmm.ps[12.34,56.77,43.21,87.65] xmm.ps[44.0,33.0,22.0,11.0] =3D> 1=
.ps[31.66,-23.77,-21.21,-76.65]
+subps m128.ps[12.34,56.77,43.21,87.65] xmm.ps[44.0,33.0,22.0,11.0] =3D> =
1.ps[31.66,-23.77,-21.21,-76.65]
+subss xmm.ps[12.34,56.77,43.21,87.65] xmm.ps[44.0,33.0,22.0,11.0] =3D> 1=
.ps[31.66,33.0,22.0,11.0]
+subss m128.ps[12.34,56.77,43.21,87.65] xmm.ps[44.0,33.0,22.0,11.0] =3D> =
1.ps[31.66,33.0,22.0,11.0]
+ucomiss xmm.ps[234.5678,0.0] xmm.ps[234.5679,0.0] =3D> eflags[0x8d5,0x00=
0]
+ucomiss m32.ps[234.5678] xmm.ps[234.5679,0.0] =3D> eflags[0x8d5,0x000]
+ucomiss xmm.ps[234.5678,0.0] xmm.ps[234.5677,0.0] =3D> eflags[0x8d5,0x00=
1]
+ucomiss m32.ps[234.5678] xmm.ps[234.5677,0.0] =3D> eflags[0x8d5,0x001]
+ucomiss xmm.ps[234.5678,0.0] xmm.ps[234.5678,0.0] =3D> eflags[0x8d5,0x04=
0]
+ucomiss m32.ps[234.5678] xmm.ps[234.5678,0.0] =3D> eflags[0x8d5,0x040]
+unpckhps xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[11.22,33.44,55.66,77.88]=
=3D> 1.ps[55.66,43.21,77.88,87.65]
+unpckhps m128.ps[12.34,56.78,43.21,87.65] xmm.ps[11.22,33.44,55.66,77.88=
] =3D> 1.ps[55.66,43.21,77.88,87.65]
+unpcklps xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[11.22,33.44,55.66,77.88]=
=3D> 1.ps[11.22,12.34,33.44,56.78]
+unpcklps m128.ps[12.34,56.78,43.21,87.65] xmm.ps[11.22,33.44,55.66,77.88=
] =3D> 1.ps[11.22,12.34,33.44,56.78]
+xorps xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789a=
bcdef,0xfdb97531eca86420] =3D> 1.uq[0xfc9a30566503a9cf,0xfc9a30566503a9cf=
]
+xorps m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789=
abcdef,0xfdb97531eca86420] =3D> 1.uq[0xfc9a30566503a9cf,0xfc9a30566503a9c=
f]
|