Adding files from Tom Hughes' SSE-completion patch, which I forgot yesterday.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2209 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/none/tests/gen_insn_test.pl b/none/tests/gen_insn_test.pl
new file mode 100644
index 0000000..42f902b
--- /dev/null
+++ b/none/tests/gen_insn_test.pl
@@ -0,0 +1,431 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+our %ArgTypes = (
+                 r => "reg_t",
+                 mm => "mm_reg_t",
+                 xmm => "xmm_reg_t",
+                 m32 => "reg_t",
+                 m64 => "mm_reg_t",
+                 m128 => "xmm_reg_t",
+                 eflags => "reg_t"
+                 );
+
+our %SubTypeFormats = (
+                       sb => "%d",
+                       ub => "%u",
+                       sw => "%d",
+                       uw => "%u",
+                       sd => "%ld",
+                       ud => "%lu",
+                       sq => "%lld",
+                       uq => "%llu",
+                       ps => "%.16g",
+                       pd => "%.16g"
+                       );
+
+our %SubTypeSuffixes = (
+                        sb => "",
+                        ub => "U",
+                        sw => "",
+                        uw => "",
+                        sd => "L",
+                        ud => "UL",
+                        sq => "LL",
+                        uq => "ULL",
+                        ps => "F",
+                        pd => ""
+                        );
+
+our @IntRegs = ( "eax", "ebx", "ecx", "edx" );
+
+print <<EOF;
+#include <math.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+typedef union {
+  long int sd[1];
+  unsigned long int ud[1];
+  float ps[1];
+} reg_t;
+
+typedef union {
+  char sb[8];
+  unsigned char ub[8];
+  short sw[4];
+  unsigned short uw[4];
+  long int sd[2];
+  unsigned long int ud[2];
+  long long int sq[1];
+  unsigned long long int uq[1];
+  float ps[2];
+  double pd[1];
+} mm_reg_t __attribute__ ((aligned (8)));
+
+typedef union {
+  char sb[16];
+  unsigned char ub[16];
+  short sw[8];
+  unsigned short uw[8];
+  long int sd[4];
+  unsigned long int ud[4];
+  long long int sq[2];
+  unsigned long long int uq[2];
+  float ps[4];
+  double pd[2];
+} xmm_reg_t __attribute__ ((aligned (16)));
+
+static sigjmp_buf catchpoint;
+
+static void handle_sigill(int signum)
+{
+   siglongjmp(catchpoint, 1);
+}
+
+static int eq_float(float f1, float f2)
+{
+   return f1 == f2 || fabsf(f1 - f2) < fabsf(f1) * 1.5 * pow(2,-12);
+}
+
+static int eq_double(double d1, double d2)
+{
+   return d1 == d2 || fabs(d1 - d2) < fabs(d1) * 1.5 * pow(2,-12);
+}
+
+EOF
+
+my %tests;
+my @tests;
+
+while (<>)
+{
+    next if /^#/;
+
+    my @args = split(/\s+/, $_);
+    my $insn = shift @args;
+    my $result = pop @args;
+    
+    $tests{$insn}++;
+    
+    my $test = "${insn}_$tests{$insn}";
+    
+    push @tests, $test;
+    
+    print qq|static void $test(void)\n|;
+    print qq|\{\n|;
+
+    my $argc = 0;
+    my @argtypes;
+    my @argsubtypes;
+    my @argindexes;
+    my @argvalues;
+    
+    foreach my $arg (@args)
+    {
+        if ($arg =~ /^(r|mm|xmm|m32|m64|m128)\.(sb|ub|sw|uw|sd|ud|sq|uq|ps|pd)\[([^\]]+)\]$/)
+        {
+            my $type = $1;
+            my $subtype = $2;
+            my @values = split(/,/, $3);
+            
+            push @argtypes, $type;
+            push @argsubtypes, $subtype;
+            push @argvalues, undef;
+
+            print qq|   $ArgTypes{$type} arg$argc = \{|;
+            
+            my $valuec = 0;
+            
+            foreach my $value (@values)
+            {
+                print qq|,| if $valuec > 0;
+                print qq| .$subtype\[$valuec\] = $value$SubTypeSuffixes{$subtype}|;
+                $valuec++;
+            }
+
+            print qq| \};\n|;
+        }
+        elsif ($arg =~ /^(imm8)\[([^\]]+)\]$/)
+        {
+            my $type = $1;
+            my $value = $2;
+            
+            push @argtypes, $type;
+            push @argsubtypes, undef;
+            push @argvalues, $value;
+        }
+        else
+        {
+            die "Can't parse argument $arg";
+        }
+
+        $argc++;
+    }
+    
+    my $resultarg;
+    my $resulttype;
+    my $resultsubtype;
+    my @resultvalues;
+    
+    if ($result =~ /^(\d+)\.(sb|ub|sw|uw|sd|ud|sq|uq|ps|pd)\[([^\]]+)\]$/)
+    {
+        $resultarg = $1;
+        $resulttype = $argtypes[$resultarg];
+        $resultsubtype = $2;
+        @resultvalues = split(/,/, $3);
+    }
+    elsif ($result =~ /^eflags\[([^\]]+)\]$/)
+    {
+        $resultarg = -1;
+        $resulttype = "eflags";
+        $resultsubtype = "ud";
+        @resultvalues = split(/,/, $1);
+    }
+    else
+    {
+        die "Can't parse result $result";
+    }
+    
+    print qq|   $ArgTypes{$resulttype} result;\n|;
+    print qq|   char state\[108\];\n|;
+    print qq|\n|;
+    print qq|   if (sigsetjmp(catchpoint, 1) == 0)\n|;
+    print qq|   \{\n|;
+    print qq|      asm\(\n|;
+    print qq|         \"fsave %\[state\]\\n\"\n|;
+    
+    foreach my $arg (0 .. $#args)
+    {
+        if ($argtypes[$arg] eq "r")
+        {
+            print qq|         \"movl %\[arg$arg\], %%$IntRegs[$arg]\\n\"\n|;
+        }
+        elsif ($argtypes[$arg] eq "mm")
+        {
+            print qq|         \"movq %\[arg$arg\], %%mm$arg\\n\"\n|;
+        }
+        elsif ($argtypes[$arg] eq "xmm")
+        {
+            print qq|         \"movlps 0%\[arg$arg\], %%xmm$arg\\n\"\n|;
+            print qq|         \"movhps 8%\[arg$arg\], %%xmm$arg\\n\"\n|;
+        }
+    }
+    
+    if ($resulttype eq "m32")
+    {
+        print qq|         \"movl %\[arg$resultarg\], %%$IntRegs[$resultarg]\\n\"\n|;
+        print qq|         \"movl %%$IntRegs[$resultarg], %\[result\]\\n\"\n|;
+    }
+    elsif ($resulttype eq "m64")
+    {
+        print qq|         \"movq %\[arg$resultarg\], %%mm$resultarg\\n\"\n|;
+        print qq|         \"movq %%mm$resultarg, %\[result\]\\n\"\n|;
+    }
+    elsif ($resulttype eq "m128")
+    {
+        print qq|         \"movlps 0%\[arg$resultarg\], %%xmm$resultarg\\n\"\n|;
+        print qq|         \"movhps 8%\[arg$resultarg\], %%xmm$resultarg\\n\"\n|;
+        print qq|         \"movlps %%xmm$resultarg, 0%\[result\]\\n\"\n|;
+        print qq|         \"movhps %%xmm$resultarg, 8%\[result\]\\n\"\n|;
+    }
+
+    print qq|         \"$insn|;
+    
+    my $prefix = " ";
+    
+    foreach my $arg (0 .. $#args)
+    {
+        if ($argtypes[$arg] eq "r")
+        {
+            print qq|$prefix%%$IntRegs[$arg]|;
+        }
+        elsif ($argtypes[$arg] eq "mm")
+        {
+            print qq|$prefix%%mm$arg|;
+        }
+        elsif ($argtypes[$arg] eq "xmm")
+        {
+            print qq|$prefix%%xmm$arg|;
+        }
+        elsif ($argtypes[$arg] eq "m32" || $argtypes[$arg] eq "m64" || $argtypes[$arg] eq "m128")
+        {
+            if ($arg == $resultarg)
+            {
+                print qq|$prefix%\[result\]|;
+            }
+            else
+            {
+                print qq|$prefix%\[arg$arg\]|;
+            }
+        }
+        elsif ($argtypes[$arg] eq "imm8")
+        {
+            print qq|$prefix\$$argvalues[$arg]|;
+        }
+
+        $prefix = ", ";
+    }
+
+    print qq|\\n\"\n|;
+
+    if ($resulttype eq "r")
+    {
+        print qq|         \"movl %%$IntRegs[$resultarg], %\[result\]\\n\"\n|;
+    }
+    elsif ($resulttype eq "mm")
+    {
+        print qq|         \"movq %%mm$resultarg, %\[result\]\\n\"\n|;
+    }
+    elsif ($resulttype eq "xmm")
+    {
+        print qq|         \"movlps %%xmm$resultarg, 0%\[result\]\\n\"\n|;
+        print qq|         \"movhps %%xmm$resultarg, 8%\[result\]\\n\"\n|;
+    }
+    elsif ($resulttype eq "eflags")
+    {
+        print qq|         \"pushfl\\n\"\n|;
+        print qq|         \"popl %\[result\]\\n\"\n|;
+    }
+
+    print qq|         \"emms\\n\"\n|;
+    print qq|         \"frstor %\[state\]\\n\"\n|;
+
+    print qq|         :|;
+
+    if ($resulttype eq "m32" || $resulttype eq "m64" || 
+        $resulttype eq "m128" || $resulttype eq "eflags")
+    {
+        print qq| \[result\] \"=m\" \(result\)|;
+    }
+
+    print qq|\n|;
+    
+    $prefix = "         : ";
+    
+    foreach my $arg (0 .. $#args)
+    {
+        if (!defined($argvalues[$arg]))
+        {
+            print qq|$prefix\[arg$arg\] \"m\" \(arg$arg\)|;
+            $prefix = ", ";
+        }
+    }
+    
+    if ($resulttype eq "r" || $resulttype eq "mm" ||
+        $resulttype eq "xmm" || $resulttype eq "elags")
+    {
+        print qq|$prefix\[result\] \"m\" \(result\)|;
+    }
+
+    print qq|, \[state\] \"m\" \(state[0]\)\n|;
+
+    $prefix = "         : ";
+
+    foreach my $arg (0 .. $#args)
+    {
+        if ($argtypes[$arg] eq "r" ||
+            ($arg == $resultarg && $argtypes[$arg] eq "m32"))
+        {
+            print qq|$prefix\"$IntRegs[$arg]\"|;
+            $prefix = ", ";
+        }
+        elsif ($argtypes[$arg] eq "mm" ||
+               ($arg == $resultarg && $argtypes[$arg] eq "m64"))
+        {
+            print qq|$prefix\"mm$arg\"|;
+            $prefix = ", ";
+        }
+        elsif ($argtypes[$arg] eq "xmm" ||
+               ($arg == $resultarg && $argtypes[$arg] eq "m128"))
+        {
+            print qq|$prefix\"xmm$arg\"|;
+            $prefix = ", ";
+        }
+    }
+
+    print qq|\n|;
+    
+    print qq|      \);\n|;                          
+    print qq|\n|;
+    
+    print qq|      if \(|;
+    
+    if ($resulttype eq "eflags")
+    {
+        print qq|\(result.ud[0] & $resultvalues[0]UL\) == $resultvalues[1]UL|;
+    }
+    else
+    {
+        $prefix = " ";
+    
+        foreach my $value (0 .. $#resultvalues)
+        {
+            if ($resultsubtype eq "ps")
+            {
+                print qq|${prefix}eq_float(result.$resultsubtype\[$value\], $resultvalues[$value]$SubTypeSuffixes{$resultsubtype})|;
+            }
+            elsif ($resultsubtype eq "pd")
+            {
+                print qq|${prefix}eq_double(result.$resultsubtype\[$value\], $resultvalues[$value]$SubTypeSuffixes{$resultsubtype})|;
+            }
+            else
+            {
+                print qq|${prefix}result.$resultsubtype\[$value\] == $resultvalues[$value]$SubTypeSuffixes{$resultsubtype}|;
+            }
+
+            $prefix = " && ";
+        }
+    }
+    
+    print qq| \)\n|;
+    print qq|      \{\n|;
+    print qq|         printf("$test ... ok\\n");\n|;
+    print qq|      \}\n|;
+    print qq|      else\n|;
+    print qq|      \{\n|;
+    print qq|         printf("$test ... not ok\\n");\n|;
+    
+    if ($resulttype eq "eflags")
+    {
+        print qq|         printf("  eflags & 0x%lx = 0x%lx (expected 0x%lx)\\n", $resultvalues[0]UL, result.ud\[0\] & $resultvalues[0]UL, $resultvalues[1]UL);\n|;
+    }
+    else
+    {
+        foreach my $value (0 .. $#resultvalues)
+        {
+            print qq|         printf("  $resultsubtype\[$value\] = $SubTypeFormats{$resultsubtype} (expected $SubTypeFormats{$resultsubtype})\\n", result.$resultsubtype\[$value\], $resultvalues[$value]$SubTypeSuffixes{$resultsubtype});\n|;
+        }
+    }
+
+    print qq|      \}\n|;
+    print qq|   \}\n|;
+    print qq|   else\n|;
+    print qq|   \{\n|;
+    print qq|      printf("$test ... failed\\n");\n|;
+    print qq|   \}\n|;
+    print qq|\n|;
+    print qq|   return;\n|;
+    print qq|\}\n|;
+    print qq|\n|;
+}
+
+print qq|int main(int argc, char **argv)\n|;
+print qq|\{\n|;
+print qq|   signal(SIGILL, handle_sigill);\n|;
+print qq|\n|;
+
+foreach my $test (@tests)
+{
+    print qq|   $test();\n|;
+}
+
+print qq|\n|;
+print qq|   exit(0);\n|;
+print qq|\}\n|;
+
+exit 0;
diff --git a/none/tests/insn_mmx.def b/none/tests/insn_mmx.def
new file mode 100644
index 0000000..a0b1c4a
--- /dev/null
+++ b/none/tests/insn_mmx.def
@@ -0,0 +1,103 @@
+movd r.sd[1234] mm.sd[1111,2222] 1.sd[1234,0]
+movd m32.sd[1234] mm.sd[1111,2222] 1.sd[1234,0]
+movd mm.sd[1234,2222] r.sd[1111] 1.sd[1234]
+movd mm.sd[1234,2222] m32.sd[1111] 1.sd[1234]
+movq mm.uq[0x012345678abcdef] mm.uq[0x1212121234343434] 1.uq[0x012345678abcdef]
+movq m64.uq[0x012345678abcdef] mm.uq[0x1212121234343434] 1.uq[0x012345678abcdef]
+movq mm.uq[0x012345678abcdef] m64.uq[0x1212121234343434] 1.uq[0x012345678abcdef]
+packssdw mm.sd[12345,123456] mm.sd[-12345,-123456] 1.sw[-12345,-32768,12345,32767]
+packssdw m64.sd[12345,123456] mm.sd[-12345,-123456] 1.sw[-12345,-32768,12345,32767]
+packsswb mm.sw[123,-123,1234,-1234] mm.sw[21,-21,321,-321] 1.sb[21,-21,127,-128,123,-123,127,-128]
+packsswb m64.sw[123,-123,1234,-1234] mm.sw[21,-21,321,-321] 1.sb[21,-21,127,-128,123,-123,127,-128]
+packuswb mm.sw[123,-123,1234,-1234] mm.sw[21,-21,321,-321] 1.ub[21,0,255,0,123,0,255,0]
+packuswb m64.sw[123,-123,1234,-1234] mm.sw[21,-21,321,-321] 1.ub[21,0,255,0,123,0,255,0]
+paddb mm.sb[12,34,56,78,21,43,65,87] mm.sb[8,7,6,5,4,3,2,1] 1.sb[20,41,62,83,25,46,67,88]
+paddb m64.sb[12,34,56,78,21,43,65,87] mm.sb[8,7,6,5,4,3,2,1] 1.sb[20,41,62,83,25,46,67,88]
+paddd mm.sd[12345678,87654321] mm.sd[8765,4321] 1.sd[12354443,87658642]
+paddd m64.sd[12345678,87654321] mm.sd[8765,4321] 1.sd[12354443,87658642]
+paddsb mm.sb[25,-25,50,-50,100,-100,125,-125] mm.sb[40,-40,30,-30,20,-20,10,-10] 1.sb[65,-65,80,-80,120,-120,127,-128]
+paddsb m64.sb[25,-25,50,-50,100,-100,125,-125] mm.sb[40,-40,30,-30,20,-20,10,-10] 1.sb[65,-65,80,-80,120,-120,127,-128]
+paddsw mm.sw[12345,-12345,32145,-32145] mm.sw[32145,-32145,-12345,12345] 1.sw[32767,-32768,19800,-19800]
+paddsw m64.sw[12345,-12345,32145,-32145] mm.sw[32145,-32145,-12345,12345] 1.sw[32767,-32768,19800,-19800]
+paddusb mm.ub[25,50,75,100,125,150,175,200] mm.ub[10,20,30,40,50,60,70,80] 1.ub[35,70,105,140,175,210,245,255]
+paddusb m64.ub[25,50,75,100,125,150,175,200] mm.ub[10,20,30,40,50,60,70,80] 1.ub[35,70,105,140,175,210,245,255]
+paddusw mm.uw[22222,33333,44444,55555] mm.uw[6666,7777,8888,9999] 1.uw[28888,41110,53332,65535]
+paddusw m64.uw[22222,33333,44444,55555] mm.uw[6666,7777,8888,9999] 1.uw[28888,41110,53332,65535]
+paddw mm.sw[1234,5678,4321,8765] mm.sw[87,65,43,21] 1.sw[1321,5743,4364,8786]
+paddw m64.sw[1234,5678,4321,8765] mm.sw[87,65,43,21] 1.sw[1321,5743,4364,8786]
+pand mm.uq[0xfdb97531eca86420] mm.uq[0x0123456789abcdef] 1.uq[0x0121452188a84420]
+pand m64.uq[0xfdb97531eca86420] mm.uq[0x0123456789abcdef] 1.uq[0x0121452188a84420]
+pandn mm.uq[0xfdb97531eca86420] mm.uq[0x0123456789abcdef] 1.uq[0xfc98301064002000]
+pandn m64.uq[0xfdb97531eca86420] mm.uq[0x0123456789abcdef] 1.uq[0xfc98301064002000]
+pcmpeqb mm.ub[11,22,33,44,55,66,77,88] mm.ub[11,11,33,33,55,55,77,77] 1.ub[0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00]
+pcmpeqb m64.ub[11,22,33,44,55,66,77,88] mm.ub[11,11,33,33,55,55,77,77] 1.ub[0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00]
+pcmpeqd mm.ud[11223344,55667788] mm.ud[11223344,11223344] 1.ud[0xffffffff,0x00000000]
+pcmpeqd m64.ud[11223344,55667788] mm.ud[11223344,11223344] 1.ud[0xffffffff,0x00000000]
+pcmpeqw mm.uw[1122,3344,5566,7788] mm.uw[1122,1122,5566,5566] 1.uw[0xffff,0x0000,0xffff,0x0000]
+pcmpeqw m64.uw[1122,3344,5566,7788] mm.uw[1122,1122,5566,5566] 1.uw[0xffff,0x0000,0xffff,0x0000]
+pcmpgtb mm.sb[-77,-55,-33,-11,11,33,55,77] mm.sb[77,55,33,11,-11,-33,-55,-77] 1.ub[0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00]
+pcmpgtb m64.sb[-77,-55,-33,-11,11,33,55,77] mm.sb[77,55,33,11,-11,-33,-55,-77] 1.ub[0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00]
+pcmpgtd mm.sd[-11111111,11111111] mm.sd[11111111,-11111111] 1.ud[0xffffffff,0x00000000]
+pcmpgtd m64.sd[-11111111,11111111] mm.sd[11111111,-11111111] 1.ud[0xffffffff,0x00000000]
+pcmpgtw mm.sw[-3333,-1111,1111,3333] mm.sw[3333,1111,-1111,-3333] 1.uw[0xffff,0xffff,0x0000,0x0000]
+pcmpgtw m64.sw[-3333,-1111,1111,3333] mm.sw[3333,1111,-1111,-3333] 1.uw[0xffff,0xffff,0x0000,0x0000]
+pmaddwd mm.sw[1234,5678,-4321,-8765] mm.sw[1111,-2222,3333,-4444] 1.sd[-11245542,24549767]
+pmaddwd m64.sw[1234,5678,-4321,-8765] mm.sw[1111,-2222,3333,-4444] 1.sd[-11245542,24549767]
+pmulhw mm.sw[1111,2222,-1111,-2222] mm.sw[3333,-4444,3333,-4444] 1.uw[0x0038,0xff69,0xffc7,0x0096]
+pmulhw m64.sw[1111,2222,-1111,-2222] mm.sw[3333,-4444,3333,-4444] 1.uw[0x0038,0xff69,0xffc7,0x0096]
+pmullw mm.sw[1111,2222,-1111,-2222] mm.sw[3333,-4444,3333,-4444] 1.uw[0x80b3,0x5378,0x7f4d,0xac88]
+pmullw m64.sw[1111,2222,-1111,-2222] mm.sw[3333,-4444,3333,-4444] 1.uw[0x80b3,0x5378,0x7f4d,0xac88]
+por mm.uq[0xfdb97531eca86420] mm.uq[0x0123456789abcdef] 1.uq[0xfdbb7577edabedef]
+por m64.uq[0xfdb97531eca86420] mm.uq[0x0123456789abcdef] 1.uq[0xfdbb7577edabedef]
+pslld imm8[4] mm.ud[0x01234567,0x89abcdef] 1.ud[0x12345670,0x9abcdef0]
+pslld mm.uq[4] mm.ud[0x01234567,0x89abcdef] 1.ud[0x12345670,0x9abcdef0]
+pslld m64.uq[4] mm.ud[0x01234567,0x89abcdef] 1.ud[0x12345670,0x9abcdef0]
+psllq imm8[4] mm.uq[0x0123456789abcdef] 1.uq[0x123456789abcdef0]
+psllq mm.uq[4] mm.uq[0x0123456789abcdef] 1.uq[0x123456789abcdef0]
+psllq m64.uq[4] mm.uq[0x0123456789abcdef] 1.uq[0x123456789abcdef0]
+psllw imm8[4] mm.uw[0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x1230,0x5670,0x9ab0,0xdef0]
+psllw mm.uq[4] mm.uw[0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x1230,0x5670,0x9ab0,0xdef0]
+psllw m64.uq[4] mm.uw[0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x1230,0x5670,0x9ab0,0xdef0]
+psrad imm8[4] mm.ud[0x01234567,0x89abcdef] 1.ud[0x00123456,0xf89abcde]
+psrad mm.uq[4] mm.ud[0x01234567,0x89abcdef] 1.ud[0x00123456,0xf89abcde]
+psrad m64.uq[4] mm.ud[0x01234567,0x89abcdef] 1.ud[0x00123456,0xf89abcde]
+psraw imm8[4] mm.uw[0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x0012,0x0456,0xf89a,0xfcde]
+psraw mm.uq[4] mm.uw[0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x0012,0x0456,0xf89a,0xfcde]
+psraw m64.uq[4] mm.uw[0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x0012,0x0456,0xf89a,0xfcde]
+psrld imm8[4] mm.ud[0x01234567,0x89abcdef] 1.ud[0x00123456,0x089abcde]
+psrld mm.uq[4] mm.ud[0x01234567,0x89abcdef] 1.ud[0x00123456,0x089abcde]
+psrld m64.uq[4] mm.ud[0x01234567,0x89abcdef] 1.ud[0x00123456,0x089abcde]
+psrlq imm8[4] mm.uq[0x0123456789abcdef] 1.uq[0x00123456789abcde]
+psrlq mm.uq[4] mm.uq[0x0123456789abcdef] 1.uq[0x00123456789abcde]
+psrlq m64.uq[4] mm.uq[0x0123456789abcdef] 1.uq[0x00123456789abcde]
+psrlw imm8[4] mm.uw[0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x0012,0x0456,0x089a,0x0cde]
+psrlw mm.uq[4] mm.uw[0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x0012,0x0456,0x089a,0x0cde]
+psrlw m64.uq[4] mm.uw[0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x0012,0x0456,0x089a,0x0cde]
+psubb mm.sb[8,7,6,5,4,3,2,1] mm.sb[12,34,56,78,21,43,65,87] 1.sb[4,27,50,73,17,40,63,86]
+psubb m64.sb[8,7,6,5,4,3,2,1] mm.sb[12,34,56,78,21,43,65,87] 1.sb[4,27,50,73,17,40,63,86]
+psubd mm.sd[8765,4321] mm.sd[12345678,87654321] 1.sd[12336913,87650000]
+psubd m64.sd[8765,4321] mm.sd[12345678,87654321] 1.sd[12336913,87650000]
+psubsb mm.sb[-50,50,-40,40,-30,30,-20,20] mm.sb[25,-25,50,-50,100,-100,125,-125] 1.sb[75,-75,90,-90,127,-128,127,-128]
+psubsb m64.sb[-50,50,-40,40,-30,30,-20,20] mm.sb[25,-25,50,-50,100,-100,125,-125] 1.sb[75,-75,90,-90,127,-128,127,-128]
+psubsw mm.sw[-32145,32145,12345,-12345] mm.sw[12345,-12345,32145,-32145] 1.sw[32767,-32768,19800,-19800]
+psubsw m64.sw[-32145,32145,12345,-12345] mm.sw[12345,-12345,32145,-32145] 1.sw[32767,-32768,19800,-19800]
+psubusb mm.ub[11,22,33,44,55,66,77,88] mm.ub[88,77,66,55,44,33,22,11] 1.ub[77,55,33,11,0,0,0,0]
+psubusb m64.ub[11,22,33,44,55,66,77,88] mm.ub[88,77,66,55,44,33,22,11] 1.ub[77,55,33,11,0,0,0,0]
+psubusw mm.uw[1122,3344,5566,7788] mm.uw[8877,6655,4433,2211] 1.uw[7755,3311,0,0]
+psubusw m64.uw[1122,3344,5566,7788] mm.uw[8877,6655,4433,2211] 1.uw[7755,3311,0,0]
+psubw mm.sw[87,65,43,21] mm.sw[1234,5678,4321,8765] 1.sw[1147,5613,4278,8744]
+psubw m64.sw[87,65,43,21] mm.sw[1234,5678,4321,8765] 1.sw[1147,5613,4278,8744]
+punpckhbw mm.ub[12,34,56,78,21,43,65,87] mm.ub[11,22,33,44,55,66,77,88] 1.ub[55,21,66,43,77,65,88,87]
+punpckhbw m64.ub[12,34,56,78,21,43,65,87] mm.ub[11,22,33,44,55,66,77,88] 1.ub[55,21,66,43,77,65,88,87]
+punpckhdq mm.ud[12345678,21436587] mm.ud[11223344,55667788] 1.ud[55667788,21436587]
+punpckhdq m64.ud[12345678,21436587] mm.ud[11223344,55667788] 1.ud[55667788,21436587]
+punpckhwd mm.uw[1234,5678,2143,6587] mm.uw[1122,3344,5566,7788] 1.uw[5566,2143,7788,6587]
+punpckhwd m64.uw[1234,5678,2143,6587] mm.uw[1122,3344,5566,7788] 1.uw[5566,2143,7788,6587]
+punpcklbw mm.ub[12,34,56,78,21,43,65,87] mm.ub[11,22,33,44,55,66,77,88] 1.ub[11,12,22,34,33,56,44,78]
+punpcklbw m64.ub[12,34,56,78,21,43,65,87] mm.ub[11,22,33,44,55,66,77,88] 1.ub[11,12,22,34,33,56,44,78]
+punpckldq mm.ud[12345678,21436587] mm.ud[11223344,55667788] 1.ud[11223344,12345678]
+punpckldq m64.ud[12345678,21436587] mm.ud[11223344,55667788] 1.ud[11223344,12345678]
+punpcklwd mm.uw[1234,5678,2143,6587] mm.uw[1122,3344,5566,7788] 1.uw[1122,1234,3344,5678]
+punpcklwd m64.uw[1234,5678,2143,6587] mm.uw[1122,3344,5566,7788] 1.uw[1122,1234,3344,5678]
+pxor mm.uq[0xfdb97531eca86420] mm.uq[0x0123456789abcdef] 1.uq[0xfc9a30566503a9cf]
+pxor m64.uq[0xfdb97531eca86420] mm.uq[0x0123456789abcdef] 1.uq[0xfc9a30566503a9cf]
diff --git a/none/tests/insn_mmx.stderr.exp b/none/tests/insn_mmx.stderr.exp
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/none/tests/insn_mmx.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/insn_mmx.stdout.exp b/none/tests/insn_mmx.stdout.exp
new file mode 100644
index 0000000..95cbae1
--- /dev/null
+++ b/none/tests/insn_mmx.stdout.exp
@@ -0,0 +1,103 @@
+movd_1 ... ok
+movd_2 ... ok
+movd_3 ... ok
+movd_4 ... ok
+movq_1 ... ok
+movq_2 ... ok
+movq_3 ... ok
+packssdw_1 ... ok
+packssdw_2 ... ok
+packsswb_1 ... ok
+packsswb_2 ... ok
+packuswb_1 ... ok
+packuswb_2 ... ok
+paddb_1 ... ok
+paddb_2 ... ok
+paddd_1 ... ok
+paddd_2 ... ok
+paddsb_1 ... ok
+paddsb_2 ... ok
+paddsw_1 ... ok
+paddsw_2 ... ok
+paddusb_1 ... ok
+paddusb_2 ... ok
+paddusw_1 ... ok
+paddusw_2 ... ok
+paddw_1 ... ok
+paddw_2 ... ok
+pand_1 ... ok
+pand_2 ... ok
+pandn_1 ... ok
+pandn_2 ... ok
+pcmpeqb_1 ... ok
+pcmpeqb_2 ... ok
+pcmpeqd_1 ... ok
+pcmpeqd_2 ... ok
+pcmpeqw_1 ... ok
+pcmpeqw_2 ... ok
+pcmpgtb_1 ... ok
+pcmpgtb_2 ... ok
+pcmpgtd_1 ... ok
+pcmpgtd_2 ... ok
+pcmpgtw_1 ... ok
+pcmpgtw_2 ... ok
+pmaddwd_1 ... ok
+pmaddwd_2 ... ok
+pmulhw_1 ... ok
+pmulhw_2 ... ok
+pmullw_1 ... ok
+pmullw_2 ... ok
+por_1 ... ok
+por_2 ... ok
+pslld_1 ... ok
+pslld_2 ... ok
+pslld_3 ... ok
+psllq_1 ... ok
+psllq_2 ... ok
+psllq_3 ... ok
+psllw_1 ... ok
+psllw_2 ... ok
+psllw_3 ... ok
+psrad_1 ... ok
+psrad_2 ... ok
+psrad_3 ... ok
+psraw_1 ... ok
+psraw_2 ... ok
+psraw_3 ... ok
+psrld_1 ... ok
+psrld_2 ... ok
+psrld_3 ... ok
+psrlq_1 ... ok
+psrlq_2 ... ok
+psrlq_3 ... ok
+psrlw_1 ... ok
+psrlw_2 ... ok
+psrlw_3 ... ok
+psubb_1 ... ok
+psubb_2 ... ok
+psubd_1 ... ok
+psubd_2 ... ok
+psubsb_1 ... ok
+psubsb_2 ... ok
+psubsw_1 ... ok
+psubsw_2 ... ok
+psubusb_1 ... ok
+psubusb_2 ... ok
+psubusw_1 ... ok
+psubusw_2 ... ok
+psubw_1 ... ok
+psubw_2 ... ok
+punpckhbw_1 ... ok
+punpckhbw_2 ... ok
+punpckhdq_1 ... ok
+punpckhdq_2 ... ok
+punpckhwd_1 ... ok
+punpckhwd_2 ... ok
+punpcklbw_1 ... ok
+punpcklbw_2 ... ok
+punpckldq_1 ... ok
+punpckldq_2 ... ok
+punpcklwd_1 ... ok
+punpcklwd_2 ... ok
+pxor_1 ... ok
+pxor_2 ... ok
diff --git a/none/tests/insn_mmx.vgtest b/none/tests/insn_mmx.vgtest
new file mode 100644
index 0000000..3bef03f
--- /dev/null
+++ b/none/tests/insn_mmx.vgtest
@@ -0,0 +1,2 @@
+prog: insn_mmx
+cpu_test: mmx
diff --git a/none/tests/insn_sse.def b/none/tests/insn_sse.def
new file mode 100644
index 0000000..b237410
--- /dev/null
+++ b/none/tests/insn_sse.def
@@ -0,0 +1,141 @@
+addps xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[44.44,33.33,22.22,11.11] 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] 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] 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] 1.ps[56.78,33.33,22.22,11.11]
+andnps xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfc98301064002000,0x00020046010389cf]
+andnps m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfc98301064002000,0x00020046010389cf]
+andps xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0x0121452188a84420,0x0121452188a84420]
+andps m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0x0121452188a84420,0x0121452188a84420]
+cmpeqps xmm.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5678,234.5679,234.5678,234.5679] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+cmpeqps m128.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5678,234.5679,234.5678,234.5679] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+cmpeqss xmm.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5678,0.0,0.0,0.0] 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] 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] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+cmpleps m128.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5678,234.5679,234.5678,234.5679] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+cmpless xmm.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5678,0.0,0.0,0.0] 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] 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] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+cmpltps m128.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5677,234.5679,234.5677,234.5679] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+cmpltss xmm.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5676,0.0,0.0,0.0] 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] 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] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+cmpneqps m128.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5679,234.5678,234.5679,234.5678] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+cmpneqss xmm.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5679,0.0,0.0,0.0] 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] 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] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+cmpnleps m128.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5679,234.5678,234.5679,234.5678] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+cmpnless xmm.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5679,0.0,0.0,0.0] 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] 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] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+cmpnltps m128.ps[234.5678,234.5678,234.5678,234.5678] xmm.ps[234.5679,234.5677,234.5679,234.5677] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+cmpnltss xmm.ps[1234.5678,0.0,0.0,0.0] xmm.ps[1234.5679,0.0,0.0,0.0] 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] 1.ud[0x00000000,0,0,0]
+comiss xmm.ps[234.5678,0.0] xmm.ps[234.5679,0.0] eflags[0x8d5,0x000]
+comiss m32.ps[234.5678] xmm.ps[234.5679,0.0] eflags[0x8d5,0x000]
+comiss xmm.ps[234.5678,0.0] xmm.ps[234.5677,0.0] eflags[0x8d5,0x001]
+comiss m32.ps[234.5678] xmm.ps[234.5677,0.0] eflags[0x8d5,0x001]
+comiss xmm.ps[234.5678,0.0] xmm.ps[234.5678,0.0] eflags[0x8d5,0x040]
+comiss m32.ps[234.5678] xmm.ps[234.5678,0.0] eflags[0x8d5,0x040]
+cvtpi2ps mm.sd[1234,5678] xmm.ps[1.1,2.2,3.3,4.4] 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] 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] 1.sd[12,57]
+cvtps2pi m128.ps[12.34,56.78,1.11,2.22] mm.sd[1,2] 1.sd[12,57]
+cvtsi2ss r.sd[12] xmm.ps[1.11,2.22,3.33,4.44] 1.ps[12.0,2.22,3.33,4.44]
+cvtsi2ss m32.sd[12] xmm.ps[1.11,2.22,3.33,4.44] 1.ps[12.0,2.22,3.33,4.44]
+cvtss2si xmm.ps[12.34,56.78,43.21,87.65] r.sd[99] 1.sd[12]
+cvtss2si m128.ps[56.78,12.34,87.65,43.21] r.sd[99] 1.sd[57]
+cvttps2pi xmm.ps[12.34,56.78,1.11,2.22] mm.sd[1,2] 1.sd[12,56]
+cvttps2pi m128.ps[12.34,56.78,1.11,2.22] mm.sd[1,2] 1.sd[12,56]
+cvttss2si xmm.ps[12.34,56.78,43.21,87.65] r.sd[99] 1.sd[12]
+cvttss2si m128.ps[56.78,12.34,87.65,43.21] r.sd[99] 1.sd[56]
+divps xmm.ps[2.0,3.0,4.0,5.0] xmm.ps[24.68,3.69,48.48,55.55] 1.ps[12.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] 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] 1.ps[12.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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 1.ps[12.34,56.78]
+movmskps xmm.ps[12.34,-56.78,43.21,-87.65] r.sd[0] 1.sd[10]
+movntps xmm.ps[12.34,56.78,43.21,87.65] m128.ps[11.11,22.22,33.33,44.44] 1.ps[12.34,56.78,43.21,87.65]
+movntq mm.uq[0x0123456789abcdef] m64.uq[0x1212121234343434] 1.uq[0x0123456789abcdef]
+movss xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[11.11,22.22,33.33,44.44] 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] 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] 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] 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] 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] 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] 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] 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] 1.ps[61.70,4.0,3.0,2.0]
+orps xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfdbb7577edabedef,0xfdbb7577edabedef]
+orps m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 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] 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] 1.ub[13,24,34,45,55,66,76,87]
+pavgw mm.uw[1122,3344,5566,7788] mm.uw[1525,3545,5565,7585] 1.uw[1324,3445,5566,7687]
+pavgw m64.uw[1122,3344,5566,7788] mm.uw[1525,3545,5565,7585] 1.uw[1324,3445,5566,7687]
+pextrw imm8[0] mm.uw[1234,5678,4321,8765] r.ud[0xffffffff] 2.ud[1234]
+pextrw imm8[1] mm.uw[1234,5678,4321,8765] r.ud[0xffffffff] 2.ud[5678]
+pextrw imm8[2] mm.uw[1234,5678,4321,8765] r.ud[0xffffffff] 2.ud[4321]
+pextrw imm8[3] mm.uw[1234,5678,4321,8765] r.ud[0xffffffff] 2.ud[8765]
+pinsrw imm8[0] r.ud[0xffffffff] mm.uw[1234,5678,4321,8765] 2.uw[65535,5678,4321,8765]
+pinsrw imm8[1] r.ud[0xffffffff] mm.uw[1234,5678,4321,8765] 2.uw[1234,65535,4321,8765]
+pinsrw imm8[2] r.ud[0xffffffff] mm.uw[1234,5678,4321,8765] 2.uw[1234,5678,65535,8765]
+pinsrw imm8[3] r.ud[0xffffffff] mm.uw[1234,5678,4321,8765] 2.uw[1234,5678,4321,65535]
+pmaxsw mm.sw[-1,2,-3,4] mm.sw[2,-3,4,-5] 1.sw[2,2,4,4]
+pmaxsw m64.sw[-1,2,-3,4] mm.sw[2,-3,4,-5] 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] 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] 1.ub[8,7,6,5,5,6,7,8]
+pminsw mm.sw[-1,2,-3,4] mm.sw[2,-3,4,-5] 1.sw[-1,-3,-3,-5]
+pminsw m64.sw[-1,2,-3,4] mm.sw[2,-3,4,-5] 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] 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] 1.ub[1,2,3,4,4,3,2,1]
+pmovmskb mm.uq[0x8000000080008088] r.ud[0] 1.ud[0x8b]
+pmulhuw mm.uw[1111,2222,3333,4444] mm.uw[5555,6666,7777,8888] 1.uw[0x005e,0x00e2,0x018b,0x025a]
+pmulhuw m64.uw[1111,2222,3333,4444] mm.uw[5555,6666,7777,8888] 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] 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] 1.sw[32,0,0,0]
+pshufw imm8[0x1b] mm.sw[11,22,33,44] mm.sw[0,0,0,0] 2.sw[44,33,22,11]
+pshufw imm8[0x1b] m64.sw[11,22,33,44] mm.sw[0,0,0,0] 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] 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] 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] 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] 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] 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] 1.ps[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] 1.ps[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] 1.ps[0.249939,2.22,3.33,4.44]
+shufps imm8[0xe4] xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[12.34,56.78,43.21,87.65] 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] 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] 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] 1.ps[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] 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] 1.ps[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] 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] 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] 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] 1.ps[31.66,33.0,22.0,11.0]
+ucomiss xmm.ps[234.5678,0.0] xmm.ps[234.5679,0.0] eflags[0x8d5,0x000]
+ucomiss m32.ps[234.5678] xmm.ps[234.5679,0.0] eflags[0x8d5,0x000]
+ucomiss xmm.ps[234.5678,0.0] xmm.ps[234.5677,0.0] eflags[0x8d5,0x001]
+ucomiss m32.ps[234.5678] xmm.ps[234.5677,0.0] eflags[0x8d5,0x001]
+ucomiss xmm.ps[234.5678,0.0] xmm.ps[234.5678,0.0] eflags[0x8d5,0x040]
+ucomiss m32.ps[234.5678] xmm.ps[234.5678,0.0] eflags[0x8d5,0x040]
+unpckhps xmm.ps[12.34,56.78,43.21,87.65] xmm.ps[11.22,33.44,55.66,77.88] 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] 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] 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] 1.ps[11.22,12.34,33.44,56.78]
+xorps xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfc9a30566503a9cf,0xfc9a30566503a9cf]
+xorps m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfc9a30566503a9cf,0xfc9a30566503a9cf]
diff --git a/none/tests/insn_sse.stderr.exp b/none/tests/insn_sse.stderr.exp
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/none/tests/insn_sse.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/insn_sse.stdout.exp b/none/tests/insn_sse.stdout.exp
new file mode 100644
index 0000000..c9ae0f1
--- /dev/null
+++ b/none/tests/insn_sse.stdout.exp
@@ -0,0 +1,141 @@
+addps_1 ... ok
+addps_2 ... ok
+addss_1 ... ok
+addss_2 ... ok
+andnps_1 ... ok
+andnps_2 ... ok
+andps_1 ... ok
+andps_2 ... ok
+cmpeqps_1 ... ok
+cmpeqps_2 ... ok
+cmpeqss_1 ... ok
+cmpeqss_2 ... ok
+cmpleps_1 ... ok
+cmpleps_2 ... ok
+cmpless_1 ... ok
+cmpless_2 ... ok
+cmpltps_1 ... ok
+cmpltps_2 ... ok
+cmpltss_1 ... ok
+cmpltss_2 ... ok
+cmpneqps_1 ... ok
+cmpneqps_2 ... ok
+cmpneqss_1 ... ok
+cmpneqss_2 ... ok
+cmpnleps_1 ... ok
+cmpnleps_2 ... ok
+cmpnless_1 ... ok
+cmpnless_2 ... ok
+cmpnltps_1 ... ok
+cmpnltps_2 ... ok
+cmpnltss_1 ... ok
+cmpnltss_2 ... ok
+comiss_1 ... ok
+comiss_2 ... ok
+comiss_3 ... ok
+comiss_4 ... ok
+comiss_5 ... ok
+comiss_6 ... ok
+cvtpi2ps_1 ... ok
+cvtpi2ps_2 ... ok
+cvtps2pi_1 ... ok
+cvtps2pi_2 ... ok
+cvtsi2ss_1 ... ok
+cvtsi2ss_2 ... ok
+cvtss2si_1 ... ok
+cvtss2si_2 ... ok
+cvttps2pi_1 ... ok
+cvttps2pi_2 ... ok
+cvttss2si_1 ... ok
+cvttss2si_2 ... ok
+divps_1 ... ok
+divps_2 ... ok
+divss_1 ... ok
+divss_2 ... ok
+maxps_1 ... ok
+maxps_2 ... ok
+maxss_1 ... ok
+maxss_2 ... ok
+minps_1 ... ok
+minps_2 ... ok
+minss_1 ... ok
+minss_2 ... ok
+movaps_1 ... ok
+movaps_2 ... ok
+movhlps_1 ... ok
+movhps_1 ... ok
+movhps_2 ... ok
+movlhps_1 ... ok
+movlps_1 ... ok
+movlps_2 ... ok
+movmskps_1 ... ok
+movntps_1 ... ok
+movntq_1 ... ok
+movss_1 ... ok
+movss_2 ... ok
+movss_3 ... ok
+movups_1 ... ok
+movups_2 ... ok
+mulps_1 ... ok
+mulps_2 ... ok
+mulss_1 ... ok
+mulss_2 ... ok
+orps_1 ... ok
+orps_2 ... ok
+pavgb_1 ... ok
+pavgb_2 ... ok
+pavgw_1 ... ok
+pavgw_2 ... ok
+pextrw_1 ... ok
+pextrw_2 ... ok
+pextrw_3 ... ok
+pextrw_4 ... ok
+pinsrw_1 ... ok
+pinsrw_2 ... ok
+pinsrw_3 ... ok
+pinsrw_4 ... ok
+pmaxsw_1 ... ok
+pmaxsw_2 ... ok
+pmaxub_1 ... ok
+pmaxub_2 ... ok
+pminsw_1 ... ok
+pminsw_2 ... ok
+pminub_1 ... ok
+pminub_2 ... ok
+pmovmskb_1 ... ok
+pmulhuw_1 ... ok
+pmulhuw_2 ... ok
+psadbw_1 ... ok
+psadbw_2 ... ok
+pshufw_1 ... ok
+pshufw_2 ... ok
+rcpps_1 ... ok
+rcpps_2 ... ok
+rcpss_1 ... ok
+rcpss_2 ... ok
+rsqrtps_1 ... ok
+rsqrtps_2 ... ok
+rsqrtss_1 ... ok
+rsqrtss_2 ... ok
+shufps_1 ... ok
+shufps_2 ... ok
+sqrtps_1 ... ok
+sqrtps_2 ... ok
+sqrtss_1 ... ok
+sqrtss_2 ... ok
+subps_1 ... ok
+subps_2 ... ok
+subss_1 ... ok
+subss_2 ... ok
+ucomiss_1 ... ok
+ucomiss_2 ... ok
+ucomiss_3 ... ok
+ucomiss_4 ... ok
+ucomiss_5 ... ok
+ucomiss_6 ... ok
+unpckhps_1 ... ok
+unpckhps_2 ... ok
+unpcklps_1 ... ok
+unpcklps_2 ... ok
+xorps_1 ... ok
+xorps_2 ... ok
diff --git a/none/tests/insn_sse.vgtest b/none/tests/insn_sse.vgtest
new file mode 100644
index 0000000..cf44a74
--- /dev/null
+++ b/none/tests/insn_sse.vgtest
@@ -0,0 +1,2 @@
+prog: insn_sse
+cpu_test: sse
diff --git a/none/tests/insn_sse2.def b/none/tests/insn_sse2.def
new file mode 100644
index 0000000..4aa6d7f
--- /dev/null
+++ b/none/tests/insn_sse2.def
@@ -0,0 +1,292 @@
+addpd xmm.pd[1234.5678,8765.4321] xmm.pd[2222.2222,1111.1111] 1.pd[3456.79,9876.5432]
+addpd m128.pd[1234.5678,8765.4321] xmm.pd[2222.2222,1111.1111] 1.pd[3456.79,9876.5432]
+addsd xmm.pd[1234.5678,8765.4321] xmm.pd[2222.2222,1111.1111] 1.pd[3456.79,1111.1111]
+addsd m128.pd[1234.5678,8765.4321] xmm.pd[2222.2222,1111.1111] 1.pd[3456.79,1111.1111]
+andpd xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0x0121452188a84420,0x0121452188a84420]
+andpd m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0x0121452188a84420,0x0121452188a84420]
+andnpd xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfc98301064002000,0x00020046010389cf]
+andnpd m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfc98301064002000,0x00020046010389cf]
+cmpeqpd xmm.pd[1234.5678,1234.5678] xmm.pd[1234.5678,1234.5679] 1.uq[0xffffffffffffffff,0x0000000000000000]
+cmpeqpd m128.pd[1234.5678,1234.5678] xmm.pd[1234.5678,1234.5679] 1.uq[0xffffffffffffffff,0x0000000000000000]
+cmpltpd xmm.pd[1234.5678,1234.5678] xmm.pd[1234.5677,1234.5679] 1.uq[0xffffffffffffffff,0x0000000000000000]
+cmpltpd m128.pd[1234.5678,1234.5678] xmm.pd[1234.5677,1234.5679] 1.uq[0xffffffffffffffff,0x0000000000000000]
+cmplepd xmm.pd[1234.5678,1234.5678] xmm.pd[1234.5678,1234.5679] 1.uq[0xffffffffffffffff,0x0000000000000000]
+cmplepd m128.pd[1234.5678,1234.5678] xmm.pd[1234.5678,1234.5679] 1.uq[0xffffffffffffffff,0x0000000000000000]
+cmpneqpd xmm.pd[1234.5678,1234.5678] xmm.pd[1234.5679,1234.5678] 1.uq[0xffffffffffffffff,0x0000000000000000]
+cmpneqpd m128.pd[1234.5678,1234.5678] xmm.pd[1234.5679,1234.5678] 1.uq[0xffffffffffffffff,0x0000000000000000]
+cmpnltpd xmm.pd[1234.5678,1234.5678] xmm.pd[1234.5679,1234.5677] 1.uq[0xffffffffffffffff,0x0000000000000000]
+cmpnltpd m128.pd[1234.5678,1234.5678] xmm.pd[1234.5679,1234.5677] 1.uq[0xffffffffffffffff,0x0000000000000000]
+cmpnlepd xmm.pd[1234.5678,1234.5678] xmm.pd[1234.5679,1234.5678] 1.uq[0xffffffffffffffff,0x0000000000000000]
+cmpnlepd m128.pd[1234.5678,1234.5678] xmm.pd[1234.5679,1234.5678] 1.uq[0xffffffffffffffff,0x0000000000000000]
+cmpeqsd xmm.pd[1234.5678,0.0] xmm.pd[1234.5678,0.0] 1.uq[0xffffffffffffffff,0]
+cmpeqsd m128.pd[1234.5678,0.0] xmm.pd[1234.5679,0.0] 1.uq[0x0000000000000000,0]
+cmpltsd xmm.pd[1234.5678,0.0] xmm.pd[1234.5677,0.0] 1.uq[0xffffffffffffffff,0]
+cmpltsd m128.pd[1234.5678,0.0] xmm.pd[1234.5679,0.0] 1.uq[0x0000000000000000,0]
+cmplesd xmm.pd[1234.5678,0.0] xmm.pd[1234.5678,0.0] 1.uq[0xffffffffffffffff,0]
+cmplesd m128.pd[1234.5678,0.0] xmm.pd[1234.5679,0.0] 1.uq[0x0000000000000000,0]
+cmpneqsd xmm.pd[1234.5678,0.0] xmm.pd[1234.5679,0.0] 1.uq[0xffffffffffffffff,0]
+cmpneqsd m128.pd[1234.5678,0.0] xmm.pd[1234.5678,0.0] 1.uq[0x0000000000000000,0]
+cmpnltsd xmm.pd[1234.5678,0.0] xmm.pd[1234.5679,0.0] 1.uq[0xffffffffffffffff,0]
+cmpnltsd m128.pd[1234.5678,0.0] xmm.pd[1234.5677,0.0] 1.uq[0x0000000000000000,0]
+cmpnlesd xmm.pd[1234.5678,0.0] xmm.pd[1234.5679,0.0] 1.uq[0xffffffffffffffff,0]
+cmpnlesd m128.pd[1234.5678,0.0] xmm.pd[1234.5678,0.0] 1.uq[0x0000000000000000,0]
+comisd xmm.pd[1234.5678,0.0] xmm.pd[1234.5679,0.0] eflags[0x8d5,0x000]
+comisd xmm.pd[1234.5678,0.0] xmm.pd[1234.5677,0.0] eflags[0x8d5,0x001]
+comisd xmm.pd[1234.5678,0.0] xmm.pd[1234.5678,0.0] eflags[0x8d5,0x040]
+comisd m64.pd[1234.5678] xmm.pd[1234.5679,0.0] eflags[0x8d5,0x000]
+comisd m64.pd[1234.5678] xmm.pd[1234.5677,0.0] eflags[0x8d5,0x001]
+comisd m64.pd[1234.5678] xmm.pd[1234.5678,0.0] eflags[0x8d5,0x040]
+cvtdq2pd xmm.sd[1234,5678,0,0] xmm.pd[0.0,0.0] 1.pd[1234.0,5678.0]
+cvtdq2pd m128.sd[1234,5678,0,0] xmm.pd[0.0,0.0] 1.pd[1234.0,5678.0]
+cvtdq2ps xmm.sd[1234,5678,-1234,-5678] xmm.ps[0.0,0.0,0.0,0.0] 1.ps[1234.0,5678.0,-1234.0,-5678.0]
+cvtdq2ps m128.sd[1234,5678,-1234,-5678] xmm.ps[0.0,0.0,0.0,0.0] 1.ps[1234.0,5678.0,-1234.0,-5678.0]
+cvtpd2dq xmm.pd[12.34,56.78] xmm.sd[1,2,3,4] 1.sd[12,57,0,0]
+cvtpd2dq m128.pd[12.34,56.78] xmm.sd[1,2,3,4] 1.sd[12,57,0,0]
+cvtpd2pi xmm.pd[12.34,56.78] mm.sd[1,2] 1.sd[12,57]
+cvtpd2pi m128.pd[12.34,56.78] mm.sd[1,2] 1.sd[12,57]
+cvtpd2ps xmm.pd[12.34,56.78] xmm.ps[1.1,2.2,3.3,4.4] 1.ps[12.34,56.78,0.0,0.0]
+cvtpd2ps m128.pd[12.34,56.78] xmm.ps[1.1,2.2,3.3,4.4] 1.ps[12.34,56.78,0.0,0.0]
+cvtpi2pd mm.sd[1234,5678] xmm.pd[1.1,2.2] 1.pd[1234.0,5678.0]
+cvtpi2pd m64.sd[1234,5678] xmm.pd[1.1,2.2] 1.pd[1234.0,5678.0]
+cvtps2dq xmm.ps[12.34,56.78,43.21,87.65] xmm.sd[1,2,3,4] 1.sd[12,57,43,88]
+cvtps2dq m128.ps[12.34,56.78,43.21,87.65] xmm.sd[1,2,3,4] 1.sd[12,57,43,88]
+cvtps2pd xmm.ps[12.34,56.78,1.1,2.2] xmm.pd[3.3,4.4] 1.pd[12.34,56.78]
+cvtps2pd m128.ps[12.34,56.78,1.1,2.2] xmm.pd[3.3,4.4] 1.pd[12.34,56.78]
+cvtsd2si xmm.pd[12.34,56.78] r.sd[99] 1.sd[12]
+cvtsd2si m128.pd[56.78,12.34] r.sd[99] 1.sd[57]
+cvtsd2ss xmm.pd[12.34,56.78] xmm.ps[1.11,2.22,3.33,4.44] 1.ps[12.34,2.22,3.33,4.44]
+cvtsd2ss m128.pd[12.34,56.78] xmm.ps[1.11,2.22,3.33,4.44] 1.ps[12.34,2.22,3.33,4.44]
+cvtsi2sd r.sd[12] xmm.pd[1.11,2.22] 1.pd[12.0,2.22]
+cvtsi2sd m32.sd[12] xmm.pd[1.11,2.22] 1.pd[12.0,2.22]
+cvtss2sd xmm.ps[12.34,3.33,4.44,5.55] xmm.pd[1.11,2.22] 1.pd[12.34,2.22]
+cvtss2sd m128.ps[12.34,3.33,4.44,5.55] xmm.pd[1.11,2.22] 1.pd[12.34,2.22]
+cvttpd2pi xmm.pd[12.34,56.78] mm.sd[1,2] 1.sd[12,56]
+cvttpd2pi m128.pd[12.34,56.78] mm.sd[1,2] 1.sd[12,56]
+cvttpd2dq xmm.pd[12.34,56.78] xmm.sd[1,2,3,4] 1.sd[12,56,0,0]
+cvttpd2dq m128.pd[12.34,56.78] xmm.sd[1,2,3,4] 1.sd[12,56,0,0]
+cvttps2dq xmm.ps[12.34,56.78,43.21,87.65] xmm.sd[1,2,3,4] 1.sd[12,56,43,87]
+cvttps2dq m128.ps[12.34,56.78,43.21,87.65] xmm.sd[1,2,3,4] 1.sd[12,56,43,87]
+cvttsd2si xmm.pd[12.34,56.78] r.sd[99] 1.sd[12]
+cvttsd2si m128.pd[56.78,12.34] r.sd[99] 1.sd[56]
+divpd xmm.pd[2.0,3.0] xmm.pd[24.68,3.69] 1.pd[12.34,1.23]
+divpd m128.pd[2.0,3.0] xmm.pd[24.68,3.69] 1.pd[12.34,1.23]
+divsd xmm.pd[2.0,3.0] xmm.pd[24.68,3.69] 1.pd[12.34,3.69]
+divsd m128.pd[2.0,3.0] xmm.pd[24.68,3.69] 1.pd[12.34,3.69]
+maxpd xmm.pd[22.222,44.444] xmm.pd[55.555,33.333] 1.pd[55.555,44.444]
+maxpd m128.pd[22.222,44.444] xmm.pd[55.555,33.333] 1.pd[55.555,44.444]
+maxsd xmm.pd[22.222,44.444] xmm.pd[55.555,33.333] 1.pd[55.555,33.333]
+maxsd m128.pd[44.444,22.222] xmm.pd[33.333,55.555] 1.pd[44.444,55.555]
+minpd xmm.pd[22.222,44.444] xmm.pd[55.555,33.333] 1.pd[22.222,33.333]
+minpd m128.pd[22.222,44.444] xmm.pd[55.555,33.333] 1.pd[22.222,33.333]
+minsd xmm.pd[22.222,44.444] xmm.pd[55.555,33.333] 1.pd[22.222,33.333]
+minsd m128.pd[44.444,22.222] xmm.pd[33.333,55.555] 1.pd[33.333,55.555]
+movapd xmm.pd[1234.5678,8765.4321] xmm.pd[1111.1111,2222.2222] 1.pd[1234.5678,8765.4321]
+movapd m128.pd[1234.5678,8765.4321] xmm.pd[1111.1111,2222.2222] 1.pd[1234.5678,8765.4321]
+movd r.sd[1234] xmm.sd[1111,2222,3333,4444] 1.sd[1234,0,0,0]
+movd m32.sd[1234] xmm.sd[1111,2222,3333,4444] 1.sd[1234,0,0,0]
+movd xmm.sd[1234,2222,3333,4444] r.sd[1111] 1.sd[1234]
+movd xmm.sd[1234,2222,3333,4444] m32.sd[1111] 1.sd[1234]
+movdqa xmm.uq[0x012345678abcdef,0xfedcba9876543210] xmm.uq[0x1212121234343434,0x5656565678787878] 1.uq[0x012345678abcdef,0xfedcba9876543210]
+movdqa m128.uq[0x012345678abcdef,0xfedcba9876543210] xmm.uq[0x1212121234343434,0x5656565678787878] 1.uq[0x012345678abcdef,0xfedcba9876543210]
+movdqa xmm.uq[0x012345678abcdef,0xfedcba9876543210] m128.uq[0x1212121234343434,0x5656565678787878] 1.uq[0x012345678abcdef,0xfedcba9876543210]
+movdqu xmm.uq[0x012345678abcdef,0xfedcba9876543210] xmm.uq[0x1212121234343434,0x5656565678787878] 1.uq[0x012345678abcdef,0xfedcba9876543210]
+movdqu m128.uq[0x012345678abcdef,0xfedcba9876543210] xmm.uq[0x1212121234343434,0x5656565678787878] 1.uq[0x012345678abcdef,0xfedcba9876543210]
+movdqu xmm.uq[0x012345678abcdef,0xfedcba9876543210] m128.uq[0x1212121234343434,0x5656565678787878] 1.uq[0x012345678abcdef,0xfedcba9876543210]
+movdq2q xmm.uq[0x012345678abcdef,0xfedcba9876543210] mm.uq[0x1212121234343434] 1.uq[0x012345678abcdef]
+movhpd m64.pd[1234.5678] xmm.pd[1111.1111,2222.2222] 1.pd[1111.1111,1234.5678]
+movhpd xmm.pd[1234.5678,8765.4321] m64.pd[1111.1111] 1.pd[8765.4321]
+movlpd m64.pd[1234.5678] xmm.pd[1111.1111,2222.2222] 1.pd[1234.5678,2222.2222]
+movlpd xmm.pd[1234.5678,8765.4321] m64.pd[1111.1111] 1.pd[1234.5678]
+movmskpd xmm.pd[1234.5678,-1234.5678] r.sd[0] 1.sd[2]
+movntdq xmm.uq[0x012345678abcdef,0xfedcba9876543210] m128.uq[0x1212121234343434,0x5656565678787878] 1.uq[0x012345678abcdef,0xfedcba9876543210]
+movnti r.sd[12345678] m32.sd[11111111] 1.sd[12345678]
+movntpd xmm.pd[1234.5678,8765.4321] m128.pd[1111.1111,2222.2222] 1.pd[1234.5678,8765.4321]
+movq2dq mm.uq[0x012345678abcdef] xmm.uq[0x1212121234343434,0x5656565678787878] 1.uq[0x012345678abcdef,0]
+movsd xmm.pd[1234.5678,8765.4321] xmm.pd[1111.1111,2222.2222] 1.pd[1234.5678,2222.2222]
+movsd m64.pd[1234.5678] xmm.pd[1111.1111,2222.2222] 1.pd[1234.5678,0.0]
+movsd xmm.pd[1234.5678,8765.4321] m64.pd[1111.1111] 1.pd[1234.5678]
+movupd xmm.pd[1234.5678,8765.4321] xmm.pd[1111.1111,2222.2222] 1.pd[1234.5678,8765.4321]
+movupd m128.pd[1234.5678,8765.4321] xmm.pd[1111.1111,2222.2222] 1.pd[1234.5678,8765.4321]
+mulpd xmm.pd[1234.5678,8765.4321] xmm.pd[3.0,2.0] 1.pd[3703.7034,17530.8642]
+mulpd m128.pd[1234.5678,8765.4321] xmm.pd[3.0,2.0] 1.pd[3703.7034,17530.8642]
+mulsd xmm.pd[1234.5678,8765.4321] xmm.pd[3.0,2.0] 1.pd[3703.7034,2.0]
+mulsd m128.pd[1234.5678,8765.4321] xmm.pd[3.0,2.0] 1.pd[3703.7034,2.0]
+orpd xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfdbb7577edabedef,0xfdbb7577edabedef]
+orpd m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfdbb7577edabedef,0xfdbb7577edabedef]
+packssdw xmm.sd[12345,-12345,123456,-123456] xmm.sd[4321,-4321,54321,-54321] 1.sw[4321,-4321,32767,-32768,12345,-12345,32767,-32768]
+packssdw m128.sd[12345,-12345,123456,-123456] xmm.sd[4321,-4321,54321,-54321] 1.sw[4321,-4321,32767,-32768,12345,-12345,32767,-32768]
+packsswb xmm.sw[123,-123,1234,-1234,123,-123,1234,-1234] xmm.sw[21,-21,321,-321,21,-21,321,-321] 1.sb[21,-21,127,-128,21,-21,127,-128,123,-123,127,-128,123,-123,127,-128]
+packsswb m128.sw[123,-123,1234,-1234,123,-123,1234,-1234] xmm.sw[21,-21,321,-321,21,-21,321,-321] 1.sb[21,-21,127,-128,21,-21,127,-128,123,-123,127,-128,123,-123,127,-128]
+packuswb xmm.sw[123,-123,1234,-1234,123,-123,1234,-1234] xmm.sw[21,-21,321,-321,21,-21,321,-321] 1.ub[21,0,255,0,21,0,255,0,123,0,255,0,123,0,255,0]
+packuswb m128.sw[123,-123,1234,-1234,123,-123,1234,-1234] xmm.sw[21,-21,321,-321,21,-21,321,-321] 1.ub[21,0,255,0,21,0,255,0,123,0,255,0,123,0,255,0]
+paddb xmm.sb[12,34,56,78,21,43,65,87,12,34,56,78,21,43,65,87] xmm.sb[8,7,6,5,4,3,2,1,8,7,6,5,4,3,2,1] 1.sb[20,41,62,83,25,46,67,88,20,41,62,83,25,46,67,88]
+paddb m128.sb[12,34,56,78,21,43,65,87,12,34,56,78,21,43,65,87] xmm.sb[8,7,6,5,4,3,2,1,8,7,6,5,4,3,2,1] 1.sb[20,41,62,83,25,46,67,88,20,41,62,83,25,46,67,88]
+paddd xmm.sd[12345678,87654321,12345678,87654321] xmm.sd[8765,4321,8765,4321] 1.sd[12354443,87658642,12354443,87658642]
+paddd m128.sd[12345678,87654321,12345678,87654321] xmm.sd[8765,4321,8765,4321] 1.sd[12354443,87658642,12354443,87658642]
+paddq mm.sq[11111111] mm.sq[22222222] 1.sq[33333333]
+paddq m64.sq[11111111] mm.sq[22222222] 1.sq[33333333]
+paddq xmm.sq[11111111,22222222] xmm.sq[22222222,33333333] 1.sq[33333333,55555555]
+paddq m128.sq[11111111,22222222] xmm.sq[22222222,33333333] 1.sq[33333333,55555555]
+paddsb xmm.sb[25,-25,50,-50,100,-100,125,-125,25,-25,50,-50,100,-100,125,-125] xmm.sb[40,-40,30,-30,20,-20,10,-10,40,-40,30,-30,20,-20,10,-10] 1.sb[65,-65,80,-80,120,-120,127,-128,65,-65,80,-80,120,-120,127,-128]
+paddsb m128.sb[25,-25,50,-50,100,-100,125,-125,25,-25,50,-50,100,-100,125,-125] xmm.sb[40,-40,30,-30,20,-20,10,-10,40,-40,30,-30,20,-20,10,-10] 1.sb[65,-65,80,-80,120,-120,127,-128,65,-65,80,-80,120,-120,127,-128]
+paddsw xmm.sw[12345,-12345,32145,-32145,12345,-12345,32145,-32145] xmm.sw[32145,-32145,-12345,12345,32145,-32145,-12345,12345] 1.sw[32767,-32768,19800,-19800,32767,-32768,19800,-19800]
+paddsw m128.sw[12345,-12345,32145,-32145,12345,-12345,32145,-32145] xmm.sw[32145,-32145,-12345,12345,32145,-32145,-12345,12345] 1.sw[32767,-32768,19800,-19800,32767,-32768,19800,-19800]
+paddusb xmm.ub[25,50,75,100,125,150,175,200,25,50,75,100,125,150,175,200] xmm.ub[10,20,30,40,50,60,70,80,10,20,30,40,50,60,70,80] 1.ub[35,70,105,140,175,210,245,255,35,70,105,140,175,210,245,255]
+paddusb m128.ub[25,50,75,100,125,150,175,200,25,50,75,100,125,150,175,200] xmm.ub[10,20,30,40,50,60,70,80,10,20,30,40,50,60,70,80] 1.ub[35,70,105,140,175,210,245,255,35,70,105,140,175,210,245,255]
+paddusw xmm.uw[22222,33333,44444,55555,22222,33333,44444,55555] xmm.uw[6666,7777,8888,9999,6666,7777,8888,9999] 1.uw[28888,41110,53332,65535,28888,41110,53332,65535]
+paddusw m128.uw[22222,33333,44444,55555,22222,33333,44444,55555] xmm.uw[6666,7777,8888,9999,6666,7777,8888,9999] 1.uw[28888,41110,53332,65535,28888,41110,53332,65535]
+paddw xmm.sw[1234,5678,4321,8765,1234,5678,4321,8765] xmm.sw[87,65,43,21,87,65,43,21] 1.sw[1321,5743,4364,8786,1321,5743,4364,8786]
+paddw m128.sw[1234,5678,4321,8765,1234,5678,4321,8765] xmm.sw[87,65,43,21,87,65,43,21] 1.sw[1321,5743,4364,8786,1321,5743,4364,8786]
+pand xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0x0121452188a84420,0x0121452188a84420]
+pand m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0x0121452188a84420,0x0121452188a84420]
+pandn xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfc98301064002000,0x00020046010389cf]
+pandn m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfc98301064002000,0x00020046010389cf]
+pavgb xmm.ub[11,22,33,44,55,66,77,88,11,22,33,44,55,66,77,88] xmm.ub[15,25,35,45,55,65,75,85,15,25,35,45,55,65,75,85] 1.ub[13,24,34,45,55,66,76,87,13,24,34,45,55,66,76,87]
+pavgb m128.ub[11,22,33,44,55,66,77,88,11,22,33,44,55,66,77,88] xmm.ub[15,25,35,45,55,65,75,85,15,25,35,45,55,65,75,85] 1.ub[13,24,34,45,55,66,76,87,13,24,34,45,55,66,76,87]
+pavgw xmm.uw[1122,3344,5566,7788,1122,3344,5566,7788] xmm.uw[1525,3545,5565,7585,1525,3545,5565,7585] 1.uw[1324,3445,5566,7687,1324,3445,5566,7687]
+pavgw m128.uw[1122,3344,5566,7788,1122,3344,5566,7788] xmm.uw[1525,3545,5565,7585,1525,3545,5565,7585] 1.uw[1324,3445,5566,7687,1324,3445,5566,7687]
+pcmpeqb xmm.ub[11,22,33,44,55,66,77,88,11,22,33,44,55,66,77,88] xmm.ub[11,11,33,33,55,55,77,77,11,11,33,33,55,55,77,77] 1.ub[0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00]
+pcmpeqb m128.ub[11,22,33,44,55,66,77,88,11,22,33,44,55,66,77,88] xmm.ub[11,11,33,33,55,55,77,77,11,11,33,33,55,55,77,77] 1.ub[0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00]
+pcmpeqd xmm.ud[11223344,55667788,11223344,55667788] xmm.ud[11223344,11223344,11223344,11223344] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+pcmpeqd m128.ud[11223344,55667788,11223344,55667788] xmm.ud[11223344,11223344,11223344,11223344] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+pcmpeqw xmm.uw[1122,3344,5566,7788,1122,3344,5566,7788] xmm.uw[1122,1122,5566,5566,1122,1122,5566,5566] 1.uw[0xffff,0x0000,0xffff,0x0000,0xffff,0x0000,0xffff,0x0000]
+pcmpeqw m128.uw[1122,3344,5566,7788,1122,3344,5566,7788] xmm.uw[1122,1122,5566,5566,1122,1122,5566,5566] 1.uw[0xffff,0x0000,0xffff,0x0000,0xffff,0x0000,0xffff,0x0000]
+pcmpgtb xmm.sb[-77,-55,-33,-11,11,33,55,77,-77,-55,-33,-11,11,33,55,77] xmm.sb[77,55,33,11,-11,-33,-55,-77,77,55,33,11,-11,-33,-55,-77] 1.ub[0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00]
+pcmpgtb m128.sb[-77,-55,-33,-11,11,33,55,77,-77,-55,-33,-11,11,33,55,77] xmm.sb[77,55,33,11,-11,-33,-55,-77,77,55,33,11,-11,-33,-55,-77] 1.ub[0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00]
+pcmpgtd xmm.sd[-11111111,11111111,-11111111,11111111] xmm.sd[11111111,-11111111,11111111,-11111111] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+pcmpgtd m128.sd[-11111111,11111111,-11111111,11111111] xmm.sd[11111111,-11111111,11111111,-11111111] 1.ud[0xffffffff,0x00000000,0xffffffff,0x00000000]
+pcmpgtw xmm.sw[-3333,-1111,1111,3333,-3333,-1111,1111,3333] xmm.sw[3333,1111,-1111,-3333,3333,1111,-1111,-3333] 1.uw[0xffff,0xffff,0x0000,0x0000,0xffff,0xffff,0x0000,0x0000]
+pcmpgtw m128.sw[-3333,-1111,1111,3333,-3333,-1111,1111,3333] xmm.sw[3333,1111,-1111,-3333,3333,1111,-1111,-3333] 1.uw[0xffff,0xffff,0x0000,0x0000,0xffff,0xffff,0x0000,0x0000]
+pextrw imm8[0] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] r.ud[0xffffffff] 2.ud[1234]
+pextrw imm8[1] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] r.ud[0xffffffff] 2.ud[5678]
+pextrw imm8[2] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] r.ud[0xffffffff] 2.ud[4321]
+pextrw imm8[3] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] r.ud[0xffffffff] 2.ud[8765]
+pextrw imm8[4] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] r.ud[0xffffffff] 2.ud[1111]
+pextrw imm8[5] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] r.ud[0xffffffff] 2.ud[2222]
+pextrw imm8[6] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] r.ud[0xffffffff] 2.ud[3333]
+pextrw imm8[7] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] r.ud[0xffffffff] 2.ud[4444]
+pinsrw imm8[0] r.ud[0xffffffff] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] 2.uw[65535,5678,4321,8765,1111,2222,3333,4444]
+pinsrw imm8[1] r.ud[0xffffffff] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] 2.uw[1234,65535,4321,8765,1111,2222,3333,4444]
+pinsrw imm8[2] r.ud[0xffffffff] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] 2.uw[1234,5678,65535,8765,1111,2222,3333,4444]
+pinsrw imm8[3] r.ud[0xffffffff] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] 2.uw[1234,5678,4321,65535,1111,2222,3333,4444]
+pinsrw imm8[4] r.ud[0xffffffff] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] 2.uw[1234,5678,4321,8765,65535,2222,3333,4444]
+pinsrw imm8[5] r.ud[0xffffffff] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] 2.uw[1234,5678,4321,8765,1111,65535,3333,4444]
+pinsrw imm8[6] r.ud[0xffffffff] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] 2.uw[1234,5678,4321,8765,1111,2222,65535,4444]
+pinsrw imm8[7] r.ud[0xffffffff] xmm.uw[1234,5678,4321,8765,1111,2222,3333,4444] 2.uw[1234,5678,4321,8765,1111,2222,3333,65535]
+pmaddwd xmm.sw[1234,5678,-4321,-8765,1234,5678,-4321,-8765] xmm.sw[1111,-2222,3333,-4444,1111,-2222,3333,-4444] 1.sd[-11245542,24549767,-11245542,24549767]
+pmaddwd m128.sw[1234,5678,-4321,-8765,1234,5678,-4321,-8765] xmm.sw[1111,-2222,3333,-4444,1111,-2222,3333,-4444] 1.sd[-11245542,24549767,-11245542,24549767]
+pmaxsw xmm.sw[-1,2,-3,4,-5,6,-7,8] xmm.sw[2,-3,4,-5,6,-7,8,-9] 1.sw[2,2,4,4,6,6,8,8]
+pmaxsw m128.sw[-1,2,-3,4,-5,6,-7,8] xmm.sw[2,-3,4,-5,6,-7,8,-9] 1.sw[2,2,4,4,6,6,8,8]
+pmaxub xmm.ub[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25] xmm.ub[25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10] 1.ub[25,24,23,22,21,20,19,18,18,19,20,21,22,23,24,25]
+pmaxub m128.ub[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25] xmm.ub[25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10] 1.ub[25,24,23,22,21,20,19,18,18,19,20,21,22,23,24,25]
+pminsw xmm.sw[-1,2,-3,4,-5,6,-7,8] xmm.sw[2,-3,4,-5,6,-7,8,-9] 1.sw[-1,-3,-3,-5,-5,-7,-7,-9]
+pminsw m128.sw[-1,2,-3,4,-5,6,-7,8] xmm.sw[2,-3,4,-5,6,-7,8,-9] 1.sw[-1,-3,-3,-5,-5,-7,-7,-9]
+pminub xmm.ub[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25] xmm.ub[25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10] 1.ub[10,11,12,13,14,15,16,17,17,16,15,14,13,12,11,10]
+pminub m128.ub[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25] xmm.ub[25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10] 1.ub[10,11,12,13,14,15,16,17,17,16,15,14,13,12,11,10]
+pmovmskb xmm.uq[0x8000000080008088,0x8000000080008088] r.ud[0] 1.ud[0x8b8b]
+pmulhuw xmm.uw[1111,2222,3333,4444,5555,6666,7777,8888] xmm.uw[5555,6666,7777,8888,9999,1111,2222,3333] 1.uw[0x005e,0x00e2,0x018b,0x025a,0x034f,0x0071,0x0107,0x01c4]
+pmulhuw m128.uw[1111,2222,3333,4444,5555,6666,7777,8888] xmm.uw[5555,6666,7777,8888,9999,1111,2222,3333] 1.uw[0x005e,0x00e2,0x018b,0x025a,0x034f,0x0071,0x0107,0x01c4]
+pmulhw xmm.sw[1111,2222,-1111,-2222,1111,2222,-1111,-2222] xmm.sw[3333,-4444,3333,-4444,3333,-4444,3333,-4444] 1.uw[0x0038,0xff69,0xffc7,0x0096,0x0038,0xff69,0xffc7,0x0096]
+pmulhw m128.sw[1111,2222,-1111,-2222,1111,2222,-1111,-2222] xmm.sw[3333,-4444,3333,-4444,3333,-4444,3333,-4444] 1.uw[0x0038,0xff69,0xffc7,0x0096,0x0038,0xff69,0xffc7,0x0096]
+pmullw xmm.sw[1111,2222,-1111,-2222,1111,2222,-1111,-2222] xmm.sw[3333,-4444,3333,-4444,3333,-4444,3333,-4444] 1.uw[0x80b3,0x5378,0x7f4d,0xac88,0x80b3,0x5378,0x7f4d,0xac88]
+pmullw m128.sw[1111,2222,-1111,-2222,1111,2222,-1111,-2222] xmm.sw[3333,-4444,3333,-4444,3333,-4444,3333,-4444] 1.uw[0x80b3,0x5378,0x7f4d,0xac88,0x80b3,0x5378,0x7f4d,0xac88]
+pmuludq mm.ud[12345678,0] mm.ud[87654321,0] 1.uq[1082152022374638]
+pmuludq m64.ud[12345678,0] mm.ud[87654321,0] 1.uq[1082152022374638]
+pmuludq xmm.ud[12345678,0,87654321,0] xmm.ud[87654321,0,12345678,0] 1.uq[1082152022374638,1082152022374638]
+pmuludq m128.ud[12345678,0,87654321,0] xmm.ud[87654321,0,12345678,0] 1.uq[1082152022374638,1082152022374638]
+por xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfdbb7577edabedef,0xfdbb7577edabedef]
+por m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfdbb7577edabedef,0xfdbb7577edabedef]
+psadbw xmm.ub[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] xmm.ub[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1] 1.sw[64,0,0,0,64,0,0,0]
+psadbw m128.ub[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] xmm.ub[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1] 1.sw[64,0,0,0,64,0,0,0]
+pshufd imm8[0x1b] xmm.sd[1122,3344,5566,7788] xmm.sd[0,0,0,0] 2.sd[7788,5566,3344,1122]
+pshufd imm8[0x1b] m128.sd[1122,3344,5566,7788] xmm.sd[0,0,0,0] 2.sd[7788,5566,3344,1122]
+pshufhw imm8[0x1b] xmm.sw[11,22,33,44,55,66,77,88] xmm.sw[0,0,0,0,0,0,0,0] 2.sw[11,22,33,44,88,77,66,55]
+pshufhw imm8[0x1b] m128.sw[11,22,33,44,55,66,77,88] xmm.sw[0,0,0,0,0,0,0,0] 2.sw[11,22,33,44,88,77,66,55]
+pshuflw imm8[0x1b] xmm.sw[11,22,33,44,55,66,77,88] xmm.sw[0,0,0,0,0,0,0,0] 2.sw[44,33,22,11,55,66,77,88]
+pshuflw imm8[0x1b] m128.sw[11,22,33,44,55,66,77,88] xmm.sw[0,0,0,0,0,0,0,0] 2.sw[44,33,22,11,55,66,77,88]
+pslld imm8[4] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] 1.ud[0x12345670,0x9abcdef0,0x12345670,0x9abcdef0]
+pslld xmm.uq[4,0] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] 1.ud[0x12345670,0x9abcdef0,0x12345670,0x9abcdef0]
+pslld m128.uq[4,0] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] 1.ud[0x12345670,0x9abcdef0,0x12345670,0x9abcdef0]
+pslldq imm8[4] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] 1.uq[0xccddeeff00000000,0x445566778899aabb]
+pslldq imm8[4] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] 1.uq[0xccddeeff00000000,0x445566778899aabb]
+psllq imm8[4] xmm.uq[0x0123456789abcdef,0x0123456789abcdef] 1.uq[0x123456789abcdef0,0x123456789abcdef0]
+psllq xmm.uq[4,0] xmm.uq[0x0123456789abcdef,0x0123456789abcdef] 1.uq[0x123456789abcdef0,0x123456789abcdef0]
+psllq m128.uq[4,0] xmm.uq[0x0123456789abcdef,0x0123456789abcdef] 1.uq[0x123456789abcdef0,0x123456789abcdef0]
+psllw imm8[4] xmm.uw[0x0123,0x4567,0x89ab,0xcdef,0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x1230,0x5670,0x9ab0,0xdef0,0x1230,0x5670,0x9ab0,0xdef0]
+psllw xmm.uq[4,0] xmm.uw[0x0123,0x4567,0x89ab,0xcdef,0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x1230,0x5670,0x9ab0,0xdef0,0x1230,0x5670,0x9ab0,0xdef0]
+psllw m128.uq[4,0] xmm.uw[0x0123,0x4567,0x89ab,0xcdef,0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x1230,0x5670,0x9ab0,0xdef0,0x1230,0x5670,0x9ab0,0xdef0]
+psrad imm8[4] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] 1.ud[0x00123456,0xf89abcde,0x00123456,0xf89abcde]
+psrad xmm.uq[4,0] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] 1.ud[0x00123456,0xf89abcde,0x00123456,0xf89abcde]
+psrad m128.uq[4,0] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] 1.ud[0x00123456,0xf89abcde,0x00123456,0xf89abcde]
+psraw imm8[4] xmm.uw[0x0123,0x4567,0x89ab,0xcdef,0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x0012,0x0456,0xf89a,0xfcde,0x0012,0x0456,0xf89a,0xfcde]
+psraw xmm.uq[4,0] xmm.uw[0x0123,0x4567,0x89ab,0xcdef,0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x0012,0x0456,0xf89a,0xfcde,0x0012,0x0456,0xf89a,0xfcde]
+psraw m128.uq[4,0] xmm.uw[0x0123,0x4567,0x89ab,0xcdef,0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x0012,0x0456,0xf89a,0xfcde,0x0012,0x0456,0xf89a,0xfcde]
+psrld imm8[4] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] 1.ud[0x00123456,0x089abcde,0x00123456,0x089abcde]
+psrld xmm.uq[4,0] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] 1.ud[0x00123456,0x089abcde,0x00123456,0x089abcde]
+psrld m128.uq[4,0] xmm.ud[0x01234567,0x89abcdef,0x01234567,0x89abcdef] 1.ud[0x00123456,0x089abcde,0x00123456,0x089abcde]
+psrldq imm8[4] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] 1.uq[0x445566778899aabb,0x0000000000112233]
+psrldq imm8[4] xmm.uq[0x8899aabbccddeeff,0x0011223344556677] 1.uq[0x445566778899aabb,0x0000000000112233]
+psrlq imm8[4] xmm.uq[0x0123456789abcdef,0x0123456789abcdef] 1.uq[0x00123456789abcde,0x00123456789abcde]
+psrlq xmm.uq[4,0] xmm.uq[0x0123456789abcdef,0x0123456789abcdef] 1.uq[0x00123456789abcde,0x00123456789abcde]
+psrlq m128.uq[4,0] xmm.uq[0x0123456789abcdef,0x0123456789abcdef] 1.uq[0x00123456789abcde,0x00123456789abcde]
+psrlw imm8[4] xmm.uw[0x0123,0x4567,0x89ab,0xcdef,0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x0012,0x0456,0x089a,0x0cde,0x0012,0x0456,0x089a,0x0cde]
+psrlw xmm.uq[4,0] xmm.uw[0x0123,0x4567,0x89ab,0xcdef,0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x0012,0x0456,0x089a,0x0cde,0x0012,0x0456,0x089a,0x0cde]
+psrlw m128.uq[4,0] xmm.uw[0x0123,0x4567,0x89ab,0xcdef,0x0123,0x4567,0x89ab,0xcdef] 1.uw[0x0012,0x0456,0x089a,0x0cde,0x0012,0x0456,0x089a,0x0cde]
+psubb xmm.sb[8,7,6,5,4,3,2,1,8,7,6,5,4,3,2,1] xmm.sb[12,34,56,78,21,43,65,87,12,34,56,78,21,43,65,87] 1.sb[4,27,50,73,17,40,63,86,4,27,50,73,17,40,63,86]
+psubb m128.sb[8,7,6,5,4,3,2,1,8,7,6,5,4,3,2,1] xmm.sb[12,34,56,78,21,43,65,87,12,34,56,78,21,43,65,87] 1.sb[4,27,50,73,17,40,63,86,4,27,50,73,17,40,63,86]
+psubd xmm.sd[8765,4321,8765,4321] xmm.sd[12345678,87654321,12345678,87654321] 1.sd[12336913,87650000,12336913,87650000]
+psubd m128.sd[8765,4321,8765,4321] xmm.sd[12345678,87654321,12345678,87654321] 1.sd[12336913,87650000,12336913,87650000]
+psubq mm.sq[11111111] mm.sq[33333333] 1.sq[22222222]
+psubq m64.sq[11111111] mm.sq[33333333] 1.sq[22222222]
+psubq xmm.sq[11111111,22222222] xmm.sq[55555555,33333333] 1.sq[44444444,11111111]
+psubq m128.sq[11111111,22222222] xmm.sq[55555555,33333333] 1.sq[44444444,11111111]
+psubsb xmm.sb[-50,50,-40,40,-30,30,-20,20,-50,50,-40,40,-30,30,-20,20] xmm.sb[25,-25,50,-50,100,-100,125,-125,25,-25,50,-50,100,-100,125,-125] 1.sb[75,-75,90,-90,127,-128,127,-128,75,-75,90,-90,127,-128,127,-128]
+psubsb m128.sb[-50,50,-40,40,-30,30,-20,20,-50,50,-40,40,-30,30,-20,20] xmm.sb[25,-25,50,-50,100,-100,125,-125,25,-25,50,-50,100,-100,125,-125] 1.sb[75,-75,90,-90,127,-128,127,-128,75,-75,90,-90,127,-128,127,-128]
+psubsw xmm.sw[-32145,32145,12345,-12345,-32145,32145,12345,-12345] xmm.sw[12345,-12345,32145,-32145,12345,-12345,32145,-32145] 1.sw[32767,-32768,19800,-19800,32767,-32768,19800,-19800]
+psubsw m128.sw[-32145,32145,12345,-12345,-32145,32145,12345,-12345] xmm.sw[12345,-12345,32145,-32145,12345,-12345,32145,-32145] 1.sw[32767,-32768,19800,-19800,32767,-32768,19800,-19800]
+psubusb xmm.ub[11,22,33,44,55,66,77,88,11,22,33,44,55,66,77,88] xmm.ub[88,77,66,55,44,33,22,11,88,77,66,55,44,33,22,11] 1.ub[77,55,33,11,0,0,0,0,77,55,33,11,0,0,0,0]
+psubusb m128.ub[11,22,33,44,55,66,77,88,11,22,33,44,55,66,77,88] xmm.ub[88,77,66,55,44,33,22,11,88,77,66,55,44,33,22,11] 1.ub[77,55,33,11,0,0,0,0,77,55,33,11,0,0,0,0]
+psubusw xmm.uw[1122,3344,5566,7788,1122,3344,5566,7788] xmm.uw[8877,6655,4433,2211,8877,6655,4433,2211] 1.uw[7755,3311,0,0,7755,3311,0,0]
+psubusw m128.uw[1122,3344,5566,7788,1122,3344,5566,7788] xmm.uw[8877,6655,4433,2211,8877,6655,4433,2211] 1.uw[7755,3311,0,0,7755,3311,0,0]
+psubw xmm.sw[87,65,43,21,87,65,43,21] xmm.sw[1234,5678,4321,8765,1234,5678,4321,8765] 1.sw[1147,5613,4278,8744,1147,5613,4278,8744]
+psubw m128.sw[87,65,43,21,87,65,43,21] xmm.sw[1234,5678,4321,8765,1234,5678,4321,8765] 1.sw[1147,5613,4278,8744,1147,5613,4278,8744]
+punpckhbw xmm.ub[12,34,56,78,21,43,65,87,78,56,34,12,87,65,43,21] xmm.ub[11,22,33,44,55,66,77,88,88,77,66,55,44,33,22,11] 1.ub[88,78,77,56,66,34,55,12,44,87,33,65,22,43,11,21]
+punpckhbw m128.ub[12,34,56,78,21,43,65,87,78,56,34,12,87,65,43,21] xmm.ub[11,22,33,44,55,66,77,88,88,77,66,55,44,33,22,11] 1.ub[88,78,77,56,66,34,55,12,44,87,33,65,22,43,11,21]
+punpckhdq xmm.ud[12345678,21436587,78563412,87654321] xmm.ud[11223344,55667788,88776655,44332211] 1.ud[88776655,78563412,44332211,87654321]
+punpckhdq m128.ud[12345678,21436587,78563412,87654321] xmm.ud[11223344,55667788,88776655,44332211] 1.ud[88776655,78563412,44332211,87654321]
+punpckhqdq xmm.uq[1234567821436587,7856341287654321] xmm.uq[1122334455667788,8877665544332211] 1.uq[8877665544332211,7856341287654321]
+punpckhqdq m128.uq[1234567821436587,7856341287654321] xmm.uq[1122334455667788,8877665544332211] 1.uq[8877665544332211,7856341287654321]
+punpckhwd xmm.uw[1234,5678,2143,6587,7856,3412,8765,4321] xmm.uw[1122,3344,5566,7788,8877,6655,4433,2211] 1.uw[8877,7856,6655,3412,4433,8765,2211,4321]
+punpckhwd m128.uw[1234,5678,2143,6587,7856,3412,8765,4321] xmm.uw[1122,3344,5566,7788,8877,6655,4433,2211] 1.uw[8877,7856,6655,3412,4433,8765,2211,4321]
+punpcklbw xmm.ub[12,34,56,78,21,43,65,87,78,56,34,12,87,65,43,21] xmm.ub[11,22,33,44,55,66,77,88,88,77,66,55,44,33,22,11] 1.ub[11,12,22,34,33,56,44,78,55,21,66,43,77,65,88,87]
+punpcklbw m128.ub[12,34,56,78,21,43,65,87,78,56,34,12,87,65,43,21] xmm.ub[11,22,33,44,55,66,77,88,88,77,66,55,44,33,22,11] 1.ub[11,12,22,34,33,56,44,78,55,21,66,43,77,65,88,87]
+punpckldq xmm.ud[12345678,21436587,78563412,87654321] xmm.ud[11223344,55667788,88776655,44332211] 1.ud[11223344,12345678,55667788,21436587]
+punpckldq m128.ud[12345678,21436587,78563412,87654321] xmm.ud[11223344,55667788,88776655,44332211] 1.ud[11223344,12345678,55667788,21436587]
+punpcklqdq xmm.uq[1234567821436587,7856341287654321] xmm.uq[1122334455667788,8877665544332211] 1.uq[1122334455667788,1234567821436587]
+punpcklqdq m128.uq[1234567821436587,7856341287654321] xmm.uq[1122334455667788,8877665544332211] 1.uq[1122334455667788,1234567821436587]
+punpcklwd xmm.uw[1234,5678,2143,6587,7856,3412,8765,4321] xmm.uw[1122,3344,5566,7788,8877,6655,4433,2211] 1.uw[1122,1234,3344,5678,5566,2143,7788,6587]
+punpcklwd m128.uw[1234,5678,2143,6587,7856,3412,8765,4321] xmm.uw[1122,3344,5566,7788,8877,6655,4433,2211] 1.uw[1122,1234,3344,5678,5566,2143,7788,6587]
+pxor xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfc9a30566503a9cf,0xfc9a30566503a9cf]
+pxor m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfc9a30566503a9cf,0xfc9a30566503a9cf]
+shufpd imm8[0x0] xmm.pd[1234.5678,8765.4321] xmm.pd[1234.5678,8765.4321] 2.pd[1234.5678,1234.5678]
+shufpd imm8[0x3] m128.pd[1234.5678,8765.4321] xmm.pd[1234.5678,8765.4321] 2.pd[8765.4321,8765.4321]
+sqrtpd xmm.pd[36.0,49.0] xmm.pd[1.11,2.22] 1.pd[6.0,7.0]
+sqrtpd m128.pd[36.0,49.0] xmm.pd[1.11,2.22] 1.pd[6.0,7.0]
+sqrtsd xmm.pd[36.0,5.55] xmm.pd[1.11,2.22] 1.pd[6.0,2.22]
+sqrtsd m128.pd[36.0,5.55] xmm.pd[1.11,2.22] 1.pd[6.0,2.22]
+subpd xmm.pd[1234.5678,8765.4321] xmm.pd[2222.0,1111.0] 1.pd[987.4322,-7654.4321]
+subpd m128.pd[1234.5678,8765.4321] xmm.pd[2222.0,1111.0] 1.pd[987.4322,-7654.4321]
+subsd xmm.pd[1234.5678,8765.4321] xmm.pd[2222.0,1111.0] 1.pd[987.4322,1111.0]
+subsd m128.pd[1234.5678,8765.4321] xmm.pd[2222.0,1111.0] 1.pd[987.4322,1111.0]
+ucomisd xmm.pd[1234.5678,0.0] xmm.pd[1234.5679,0.0] eflags[0x8d5,0x000]
+ucomisd xmm.pd[1234.5678,0.0] xmm.pd[1234.5677,0.0] eflags[0x8d5,0x001]
+ucomisd xmm.pd[1234.5678,0.0] xmm.pd[1234.5678,0.0] eflags[0x8d5,0x040]
+ucomisd m64.pd[1234.5678] xmm.pd[1234.5679,0.0] eflags[0x8d5,0x000]
+ucomisd m64.pd[1234.5678] xmm.pd[1234.5677,0.0] eflags[0x8d5,0x001]
+ucomisd m64.pd[1234.5678] xmm.pd[1234.5678,0.0] eflags[0x8d5,0x040]
+unpckhpd xmm.pd[1234.5678,8765.4321] xmm.pd[1122.3344,5566.7788] 1.pd[5566.7788,8765.4321]
+unpckhpd m128.pd[1234.5678,8765.4321] xmm.pd[1122.3344,5566.7788] 1.pd[5566.7788,8765.4321]
+unpcklpd xmm.pd[1234.5678,8765.4321] xmm.pd[1122.3344,5566.7788] 1.pd[1122.3344,1234.5678]
+unpcklpd m128.pd[1234.5678,8765.4321] xmm.pd[1122.3344,5566.7788] 1.pd[1122.3344,1234.5678]
+xorpd xmm.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfc9a30566503a9cf,0xfc9a30566503a9cf]
+xorpd m128.uq[0xfdb97531eca86420,0x0123456789abcdef] xmm.uq[0x0123456789abcdef,0xfdb97531eca86420] 1.uq[0xfc9a30566503a9cf,0xfc9a30566503a9cf]
diff --git a/none/tests/insn_sse2.stderr.exp b/none/tests/insn_sse2.stderr.exp
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/none/tests/insn_sse2.stderr.exp
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/insn_sse2.stdout.exp b/none/tests/insn_sse2.stdout.exp
new file mode 100644
index 0000000..53340e7
--- /dev/null
+++ b/none/tests/insn_sse2.stdout.exp
@@ -0,0 +1,292 @@
+addpd_1 ... ok
+addpd_2 ... ok
+addsd_1 ... ok
+addsd_2 ... ok
+andpd_1 ... ok
+andpd_2 ... ok
+andnpd_1 ... ok
+andnpd_2 ... ok
+cmpeqpd_1 ... ok
+cmpeqpd_2 ... ok
+cmpltpd_1 ... ok
+cmpltpd_2 ... ok
+cmplepd_1 ... ok
+cmplepd_2 ... ok
+cmpneqpd_1 ... ok
+cmpneqpd_2 ... ok
+cmpnltpd_1 ... ok
+cmpnltpd_2 ... ok
+cmpnlepd_1 ... ok
+cmpnlepd_2 ... ok
+cmpeqsd_1 ... ok
+cmpeqsd_2 ... ok
+cmpltsd_1 ... ok
+cmpltsd_2 ... ok
+cmplesd_1 ... ok
+cmplesd_2 ... ok
+cmpneqsd_1 ... ok
+cmpneqsd_2 ... ok
+cmpnltsd_1 ... ok
+cmpnltsd_2 ... ok
+cmpnlesd_1 ... ok
+cmpnlesd_2 ... ok
+comisd_1 ... ok
+comisd_2 ... ok
+comisd_3 ... ok
+comisd_4 ... ok
+comisd_5 ... ok
+comisd_6 ... ok
+cvtdq2pd_1 ... ok
+cvtdq2pd_2 ... ok
+cvtdq2ps_1 ... ok
+cvtdq2ps_2 ... ok
+cvtpd2dq_1 ... ok
+cvtpd2dq_2 ... ok
+cvtpd2pi_1 ... ok
+cvtpd2pi_2 ... ok
+cvtpd2ps_1 ... ok
+cvtpd2ps_2 ... ok
+cvtpi2pd_1 ... ok
+cvtpi2pd_2 ... ok
+cvtps2dq_1 ... ok
+cvtps2dq_2 ... ok
+cvtps2pd_1 ... ok
+cvtps2pd_2 ... ok
+cvtsd2si_1 ... ok
+cvtsd2si_2 ... ok
+cvtsd2ss_1 ... ok
+cvtsd2ss_2 ... ok
+cvtsi2sd_1 ... ok
+cvtsi2sd_2 ... ok
+cvtss2sd_1 ... ok
+cvtss2sd_2 ... ok
+cvttpd2pi_1 ... ok
+cvttpd2pi_2 ... ok
+cvttpd2dq_1 ... ok
+cvttpd2dq_2 ... ok
+cvttps2dq_1 ... ok
+cvttps2dq_2 ... ok
+cvttsd2si_1 ... ok
+cvttsd2si_2 ... ok
+divpd_1 ... ok
+divpd_2 ... ok
+divsd_1 ... ok
+divsd_2 ... ok
+maxpd_1 ... ok
+maxpd_2 ... ok
+maxsd_1 ... ok
+maxsd_2 ... ok
+minpd_1 ... ok
+minpd_2 ... ok
+minsd_1 ... ok
+minsd_2 ... ok
+movapd_1 ... ok
+movapd_2 ... ok
+movd_1 ... ok
+movd_2 ... ok
+movd_3 ... ok
+movd_4 ... ok
+movdqa_1 ... ok
+movdqa_2 ... ok
+movdqa_3 ... ok
+movdqu_1 ... ok
+movdqu_2 ... ok
+movdqu_3 ... ok
+movdq2q_1 ... ok
+movhpd_1 ... ok
+movhpd_2 ... ok
+movlpd_1 ... ok
+movlpd_2 ... ok
+movmskpd_1 ... ok
+movntdq_1 ... ok
+movnti_1 ... ok
+movntpd_1 ... ok
+movq2dq_1 ... ok
+movsd_1 ... ok
+movsd_2 ... ok
+movsd_3 ... ok
+movupd_1 ... ok
+movupd_2 ... ok
+mulpd_1 ... ok
+mulpd_2 ... ok
+mulsd_1 ... ok
+mulsd_2 ... ok
+orpd_1 ... ok
+orpd_2 ... ok
+packssdw_1 ... ok
+packssdw_2 ... ok
+packsswb_1 ... ok
+packsswb_2 ... ok
+packuswb_1 ... ok
+packuswb_2 ... ok
+paddb_1 ... ok
+paddb_2 ... ok
+paddd_1 ... ok
+paddd_2 ... ok
+paddq_1 ... ok
+paddq_2 ... ok
+paddq_3 ... ok
+paddq_4 ... ok
+paddsb_1 ... ok
+paddsb_2 ... ok
+paddsw_1 ... ok
+paddsw_2 ... ok
+paddusb_1 ... ok
+paddusb_2 ... ok
+paddusw_1 ... ok
+paddusw_2 ... ok
+paddw_1 ... ok
+paddw_2 ... ok
+pand_1 ... ok
+pand_2 ... ok
+pandn_1 ... ok
+pandn_2 ... ok
+pavgb_1 ... ok
+pavgb_2 ... ok
+pavgw_1 ... ok
+pavgw_2 ... ok
+pcmpeqb_1 ... ok
+pcmpeqb_2 ... ok
+pcmpeqd_1 ... ok
+pcmpeqd_2 ... ok
+pcmpeqw_1 ... ok
+pcmpeqw_2 ... ok
+pcmpgtb_1 ... ok
+pcmpgtb_2 ... ok
+pcmpgtd_1 ... ok
+pcmpgtd_2 ... ok
+pcmpgtw_1 ... ok
+pcmpgtw_2 ... ok
+pextrw_1 ... ok
+pextrw_2 ... ok
+pextrw_3 ... ok
+pextrw_4 ... ok
+pextrw_5 ... ok
+pextrw_6 ... ok
+pextrw_7 ... ok
+pextrw_8 ... ok
+pinsrw_1 ... ok
+pinsrw_2 ... ok
+pinsrw_3 ... ok
+pinsrw_4 ... ok
+pinsrw_5 ... ok
+pinsrw_6 ... ok
+pinsrw_7 ... ok
+pinsrw_8 ... ok
+pmaddwd_1 ... ok
+pmaddwd_2 ... ok
+pmaxsw_1 ... ok
+pmaxsw_2 ... ok
+pmaxub_1 ... ok
+pmaxub_2 ... ok
+pminsw_1 ... ok
+pminsw_2 ... ok
+pminub_1 ... ok
+pminub_2 ... ok
+pmovmskb_1 ... ok
+pmulhuw_1 ... ok
+pmulhuw_2 ... ok
+pmulhw_1 ... ok
+pmulhw_2 ... ok
+pmullw_1 ... ok
+pmullw_2 ... ok
+pmuludq_1 ... ok
+pmuludq_2 ... ok
+pmuludq_3 ... ok
+pmuludq_4 ... ok
+por_1 ... ok
+por_2 ... ok
+psadbw_1 ... ok
+psadbw_2 ... ok
+pshufd_1 ... ok
+pshufd_2 ... ok
+pshufhw_1 ... ok
+pshufhw_2 ... ok
+pshuflw_1 ... ok
+pshuflw_2 ... ok
+pslld_1 ... ok
+pslld_2 ... ok
+pslld_3 ... ok
+pslldq_1 ... ok
+pslldq_2 ... ok
+psllq_1 ... ok
+psllq_2 ... ok
+psllq_3 ... ok
+psllw_1 ... ok
+psllw_2 ... ok
+psllw_3 ... ok
+psrad_1 ... ok
+psrad_2 ... ok
+psrad_3 ... ok
+psraw_1 ... ok
+psraw_2 ... ok
+psraw_3 ... ok
+psrld_1 ... ok
+psrld_2 ... ok
+psrld_3 ... ok
+psrldq_1 ... ok
+psrldq_2 ... ok
+psrlq_1 ... ok
+psrlq_2 ... ok
+psrlq_3 ... ok
+psrlw_1 ... ok
+psrlw_2 ... ok
+psrlw_3 ... ok
+psubb_1 ... ok
+psubb_2 ... ok
+psubd_1 ... ok
+psubd_2 ... ok
+psubq_1 ... ok
+psubq_2 ... ok
+psubq_3 ... ok
+psubq_4 ... ok
+psubsb_1 ... ok
+psubsb_2 ... ok
+psubsw_1 ... ok
+psubsw_2 ... ok
+psubusb_1 ... ok
+psubusb_2 ... ok
+psubusw_1 ... ok
+psubusw_2 ... ok
+psubw_1 ... ok
+psubw_2 ... ok
+punpckhbw_1 ... ok
+punpckhbw_2 ... ok
+punpckhdq_1 ... ok
+punpckhdq_2 ... ok
+punpckhqdq_1 ... ok
+punpckhqdq_2 ... ok
+punpckhwd_1 ... ok
+punpckhwd_2 ... ok
+punpcklbw_1 ... ok
+punpcklbw_2 ... ok
+punpckldq_1 ... ok
+punpckldq_2 ... ok
+punpcklqdq_1 ... ok
+punpcklqdq_2 ... ok
+punpcklwd_1 ... ok
+punpcklwd_2 ... ok
+pxor_1 ... ok
+pxor_2 ... ok
+shufpd_1 ... ok
+shufpd_2 ... ok
+sqrtpd_1 ... ok
+sqrtpd_2 ... ok
+sqrtsd_1 ... ok
+sqrtsd_2 ... ok
+subpd_1 ... ok
+subpd_2 ... ok
+subsd_1 ... ok
+subsd_2 ... ok
+ucomisd_1 ... ok
+ucomisd_2 ... ok
+ucomisd_3 ... ok
+ucomisd_4 ... ok
+ucomisd_5 ... ok
+ucomisd_6 ... ok
+unpckhpd_1 ... ok
+unpckhpd_2 ... ok
+unpcklpd_1 ... ok
+unpcklpd_2 ... ok
+xorpd_1 ... ok
+xorpd_2 ... ok
diff --git a/none/tests/insn_sse2.vgtest b/none/tests/insn_sse2.vgtest
new file mode 100644
index 0000000..940a574
--- /dev/null
+++ b/none/tests/insn_sse2.vgtest
@@ -0,0 +1,2 @@
+prog: insn_sse2
+cpu_test: sse2