INSN_TESTS = insn_basic insn_mmx insn_sse insn_sse2 insn_fpu
if BUILD_SSE3_TESTS
- INSN_TESTS += insn_sse3
+ INSN_TESTS += insn_sse3 insn_ssse3
endif
# Explicitly include insn_sse3 even if ! BUILD_SSE3_TESTS,
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
$(addsuffix .vgtest,$(INSN_TESTS)) \
insn_sse3.stdout.exp insn_sse3.stderr.exp insn_sse3.vgtest \
+ insn_ssse3.stdout.exp insn_ssse3.stderr.exp insn_ssse3.vgtest \
jrcxz.stderr.exp jrcxz.stdout.exp jrcxz.vgtest \
looper.stderr.exp looper.stdout.exp looper.vgtest \
nibz_bennee_mmap.stderr.exp nibz_bennee_mmap.stdout.exp \
redundantRexW.stderr.exp \
smc1.stderr.exp smc1.stdout.exp smc1.vgtest \
shrld.stderr.exp shrld.stdout.exp shrld.vgtest \
+ ssse3_misaligned.stderr.exp ssse3_misaligned.stdout.exp \
+ ssse3_misaligned.vgtest \
slahf-amd64.stderr.exp slahf-amd64.stdout.exp \
slahf-amd64.vgtest
faultstatus fcmovnu fxtract $(INSN_TESTS) looper jrcxz \
rcl-amd64 \
redundantRexW \
- smc1 shrld \
+ smc1 shrld ssse3_misaligned \
nibz_bennee_mmap \
slahf-amd64
insn_sse2_LDADD = -lm
insn_sse3_SOURCES = insn_sse3.def
insn_sse3_LDADD = -lm
+insn_ssse3_SOURCES = insn_ssse3.def
+insn_ssse3_LDADD = -lm
insn_fpu_SOURCES = insn_fpu.def
insn_fpu_LDADD = -lm
fxtract_LDADD = -lm
--- /dev/null
+psignb mm.ub[0,10,0,245,0,1,255,254] mm.ub[0,40,80,120,160,200,240,24] => 1.sb[0,40,0,-120,0,-56,16,-24]
+psignb m64.ub[0,10,0,245,0,1,255,254] mm.ub[0,41,79,119,161,199,241,23] => 1.sb[0,41,0,-119,0,-57,15,-23]
+#
+psignb xmm.ub[0,10,0,245,0,1,255,254,1,255,254,0,10,0,245,0] xmm.ub[0,40,80,120,160,200,240,24,3,2,1,0,255,254,253,252] => 1.sb[0,40,0,-120,0,-56,16,-24,3,-2,-1,0,-1,0,3,0]
+psignb m128.ub[0,10,0,245,0,1,255,254,10,0,245,0,1,254,0] xmm.ub[0,41,79,119,161,199,241,23,0,31,69,109,151,189,231,13] => 1.sb[0,41,0,-119,0,-57,15,-23,0,0,-69,0,-105,67,0]
+#
+#
+#
+psignw mm.sw[0,10,0,-11] mm.sw[999,987,986,985] => 1.sw[0,987,0,-985]
+psignw m64.sw[0,1000,0,-1111] mm.sw[909,907,906,905] => 1.sw[0,907,0,-905]
+#
+psignw xmm.sw[0,10,0,-11,1,0,-1,0] xmm.sw[999,987,986,985,888,887,886,885] => 1.sw[0,987,0,-985,888,0,-886,0]
+psignw m128.sw[0,1000,0,-1111,11,0,-11,0] xmm.sw[909,907,906,905,809,808,807,806] => 1.sw[0,907,0,-905,809,0,-807]
+#
+#
+#
+psignd mm.sd[0,10000] mm.sd[-5555,-6666] => 1.sd[0,-6666]
+psignd m64.sd[-11111,0] mm.sd[-7777,-8888] => 1.sd[7777,0]
+#
+psignd xmm.sd[0,10000,-10000,0] xmm.sd[-5555,-6666,-7777,-8888] => 1.sd[0,-6666,7777,0]
+psignd m128.sd[-11111,0,0,1111] xmm.sd[-9999,-10101,-11111,-22222] => 1.sd[9999,0,0,-22222]
+#
+#
+#
+pabsb mm.ub[0,10,0,245,0,1,255,254] mm.ub[0,40,80,120,160,200,240,24] => 1.sb[0,10,0,11,0,1,1,2]
+pabsb m64.ub[0,10,0,245,0,1,255,254] mm.ub[0,41,79,119,161,199,241,23] => 1.sb[0,10,0,11,0,1,1,2]
+#
+pabsb xmm.ub[0,10,0,245,0,1,255,254,1,255,254,0,10,0,245,0] xmm.ub[0,40,80,120,160,200,240,24,3,2,1,0,255,254,253,252] => 1.sb[0,10,0,11,0,1,1,2,1,1,2,0,10,0,11,0]
+pabsb m128.ub[0,10,0,245,0,1,255,254,10,0,245,0,1,254,0] xmm.ub[0,41,79,119,161,199,241,23,0,31,69,109,151,189,231,13] => 1.sb[0,10,0,11,0,1,1,2,10,0,11,0,1,2,0]
+#
+#
+#
+pabsw mm.sw[0,10,0,-11] mm.sw[999,987,986,985] => 1.sw[0,10,0,11]
+pabsw m64.sw[0,1000,0,-1111] mm.sw[909,907,906,905] => 1.sw[0,1000,0,1111]
+#
+pabsw xmm.sw[0,10,0,-11,1,0,-1,0] xmm.sw[999,987,986,985,888,887,886,885] => 1.sw[0,10,0,11,1,0,1,0]
+pabsw m128.sw[0,1000,0,-1111,11,0,-11,0] xmm.sw[909,907,906,905,809,808,807,806] => 1.sw[0,1000,0,1111,11,0,11]
+#
+#
+#
+pabsd mm.sd[0,10000] mm.sd[-5555,-6666] => 1.sd[0,10000]
+pabsd m64.sd[-11111,0] mm.sd[-7777,-8888] => 1.sd[11111,0]
+#
+pabsd xmm.sd[0,14000,-10700,0] xmm.sd[-5555,-6666,-7777,-8888] => 1.sd[0,14000,10700,0]
+pabsd m128.sd[-11111,0,0,1111] xmm.sd[-9999,-10101,-11111,-22222] => 1.sd[11111,0,0,1111]
+#
+#
+#
+palignr imm8[0] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0xffeeddccbbaa9988]
+palignr imm8[1] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x34ffeeddccbbaa99]
+palignr imm8[2] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x1134ffeeddccbbaa]
+palignr imm8[3] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x221134ffeeddccbb]
+palignr imm8[4] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x33221134ffeeddcc]
+palignr imm8[5] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x4433221134ffeedd]
+palignr imm8[6] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x554433221134ffee]
+palignr imm8[7] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x66554433221134ff]
+palignr imm8[8] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x7766554433221134]
+palignr imm8[9] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x77665544332211]
+palignr imm8[10] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x776655443322]
+palignr imm8[11] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x7766554433]
+palignr imm8[12] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x77665544]
+palignr imm8[13] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x776655]
+palignr imm8[14] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x7766]
+palignr imm8[15] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x77]
+palignr imm8[16] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[23] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[53] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[91] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[137] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[193] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[241] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[255] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+#
+palignr imm8[0] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0xffeeddccbbaa9988]
+palignr imm8[1] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x34ffeeddccbbaa99]
+palignr imm8[2] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x1134ffeeddccbbaa]
+palignr imm8[3] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x221134ffeeddccbb]
+palignr imm8[4] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x33221134ffeeddcc]
+palignr imm8[5] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x4433221134ffeedd]
+palignr imm8[6] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x554433221134ffee]
+palignr imm8[7] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x66554433221134ff]
+palignr imm8[8] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x7766554433221134]
+palignr imm8[9] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x77665544332211]
+palignr imm8[10] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x776655443322]
+palignr imm8[11] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x7766554433]
+palignr imm8[12] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x77665544]
+palignr imm8[13] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x776655]
+palignr imm8[14] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x7766]
+palignr imm8[15] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x77]
+palignr imm8[16] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[23] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[53] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[91] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[137] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[193] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[241] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[255] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+#
+palignr imm8[0] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[5940417471140883427,2114202203853458723]
+palignr imm8[1] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2545220547074121835,440604166586370189]
+palignr imm8[2] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[10170063027109847264,6991307731704737800]
+palignr imm8[3] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[616187561003071328,2477267993116521456]
+palignr imm8[4] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[17296229551762872887,11899179844356220851]
+palignr imm8[5] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[12965872729475674266,11215408247145846567]
+palignr imm8[6] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2860894107828703856,16905287193340550487]
+palignr imm8[7] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[6280186048908436306,930727406554121757]
+palignr imm8[8] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2114202203853458723,7713798215990141190]
+palignr imm8[9] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[440604166586370189,2840378191760400993]
+palignr imm8[10] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[6991307731704737800,17304917796414268706]
+palignr imm8[11] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2477267993116521456,9579199748148730789]
+palignr imm8[12] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[11899179844356220851,3640298450912602779]
+palignr imm8[13] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[11215408247145846567,2103890142923787498]
+palignr imm8[14] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[16905287193340550487,6061056220056742668]
+palignr imm8[15] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[930727406554121757,15371943530938247019]
+palignr imm8[16] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[7713798215990141190,3446753574200340519]
+palignr imm8[17] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2840378191760400993,13463881149220080]
+palignr imm8[18] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[17304917796414268706,52593285739140]
+palignr imm8[19] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[9579199748148730789,205442522418]
+palignr imm8[20] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[3640298450912602779,802509853]
+palignr imm8[21] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2103890142923787498,3134804]
+palignr imm8[22] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[6061056220056742668,12245]
+palignr imm8[23] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[15371943530938247019,47]
+palignr imm8[24] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[3446753574200340519,0]
+palignr imm8[25] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[13463881149220080,0]
+palignr imm8[26] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[52593285739140,0]
+palignr imm8[27] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[205442522418,0]
+palignr imm8[28] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[802509853,0]
+palignr imm8[29] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[3134804,0]
+palignr imm8[30] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[12245,0]
+palignr imm8[31] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[47,0]
+palignr imm8[32] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[33] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[53] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[91] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[137] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[193] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[241] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[255] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+#
+palignr imm8[0] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[5940417471140883427,2114202203853458723]
+palignr imm8[1] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2545220547074121835,440604166586370189]
+palignr imm8[2] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[10170063027109847264,6991307731704737800]
+palignr imm8[3] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[616187561003071328,2477267993116521456]
+palignr imm8[4] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[17296229551762872887,11899179844356220851]
+palignr imm8[5] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[12965872729475674266,11215408247145846567]
+palignr imm8[6] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2860894107828703856,16905287193340550487]
+palignr imm8[7] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[6280186048908436306,930727406554121757]
+palignr imm8[8] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2114202203853458723,7713798215990141190]
+palignr imm8[9] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[440604166586370189,2840378191760400993]
+palignr imm8[10] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[6991307731704737800,17304917796414268706]
+palignr imm8[11] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2477267993116521456,9579199748148730789]
+palignr imm8[12] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[11899179844356220851,3640298450912602779]
+palignr imm8[13] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[11215408247145846567,2103890142923787498]
+palignr imm8[14] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[16905287193340550487,6061056220056742668]
+palignr imm8[15] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[930727406554121757,15371943530938247019]
+palignr imm8[16] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[7713798215990141190,3446753574200340519]
+palignr imm8[17] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2840378191760400993,13463881149220080]
+palignr imm8[18] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[17304917796414268706,52593285739140]
+palignr imm8[19] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[9579199748148730789,205442522418]
+palignr imm8[20] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[3640298450912602779,802509853]
+palignr imm8[21] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2103890142923787498,3134804]
+palignr imm8[22] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[6061056220056742668,12245]
+palignr imm8[23] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[15371943530938247019,47]
+palignr imm8[24] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[3446753574200340519,0]
+palignr imm8[25] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[13463881149220080,0]
+palignr imm8[26] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[52593285739140,0]
+palignr imm8[27] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[205442522418,0]
+palignr imm8[28] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[802509853,0]
+palignr imm8[29] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[3134804,0]
+palignr imm8[30] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[12245,0]
+palignr imm8[31] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[47,0]
+palignr imm8[32] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[33] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[53] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[91] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[137] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[193] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[241] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[255] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+#
+#
+#
+pshufb mm.ub[14,6,4,3,1,0,255,128] mm.ub[50,51,52,53,54,55,56,57] => 1.ub[56,56,54,53,51,50,0,0]
+pshufb m64.ub[14,6,4,3,1,0,255,128] mm.ub[50,51,52,53,54,55,56,57] => 1.ub[56,56,54,53,51,50,0,0]
+#
+pshufb xmm.ub[63,31,15,14,8,7,1,0,255,128,127,126,123,231,213,103] xmm.ub[60,61,62,63,64,65,66,67,70,71,72,73,74,75,76,77] => 1.ub[77,77,77,76,70,67,61,60,0,0,77,76,73,0,0,67]
+pshufb m128.ub[63,31,15,14,8,7,1,0,255,128,127,126,123,231,213,103] xmm.ub[60,61,62,63,64,65,66,67,70,71,72,73,74,75,76,77] => 1.ub[77,77,77,76,70,67,61,60,0,0,77,76,73,0,0,67]
+#
+#
+#
+pmulhrsw mm.ub[14,26,34,173,181,200,255,128] mm.ub[50,151,52,153,54,155,56,157] => 1.uw[60075,17037,11146,25091]
+pmulhrsw m64.ub[14,26,34,173,181,200,255,128] mm.ub[50,151,52,153,54,155,56,157] => 1.uw[60075,17037,11146,25091]
+#
+pmulhrsw xmm.ub[14,26,34,173,181,200,255,128,24,36,44,183,191,210,9,138] xmm.ub[50,151,52,153,54,155,56,157,60,161,62,163,64,165,66,167] => 1.uw[60075,17037,11146,25091,58695,13511,8214,20937]
+pmulhrsw m128.ub[14,26,34,173,181,200,255,128,24,36,44,183,191,210,9,138] xmm.ub[50,151,52,153,54,155,56,157,60,161,62,163,64,165,66,167] => 1.uw[60075,17037,11146,25091,58695,13511,8214,20937]
+#
+#
+#
+pmaddubsw mm.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sw[32767,-32768,-12730,27484]
+pmaddubsw m64.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sw[32767,-32768,-12730,27484]
+#
+pmaddubsw xmm.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sw[32767,-32768,-12730,27484,32767,-32768,-13049,27259]
+pmaddubsw m128.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sw[32767,-32768,-12730,27484,32767,-32768,-13049,27259]
+#
+#
+#
+phsubw mm.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sw[-512,-25602,27903,23478]
+phsubw m64.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sw[-512,-25602,27903,23478]
+#
+phsubw xmm.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sw[-512,-25602,-3328,-30672,27903,23478,27391,23989]
+phsubw m128.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sw[-512,-25602,-3328,-30672,27903,23478,27391,23989]
+#
+#
+#
+phsubd mm.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sd[-1698235191,1082151370]
+phsubd m64.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sd[-1698235191,1082151370]
+#
+phsubd xmm.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sd[-1698235191,-1528492107,1082151370,1115705291]
+phsubd m128.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sd[-1698235191,-1528492107,1082151370,1115705291]
+#
+#
+#
+phsubsw mm.sw[20000,-21000,1245,-1212] mm.sw[-17000,18121,134,4552] => 1.sw[-32768,-4418,32767,2457]
+phsubsw m64.sw[20000,-21000,1245,-1212] mm.sw[-17000,18121,134,4552] => 1.sw[-32768,-4418,32767,2457]
+#
+phsubsw xmm.sw[20000,-21000,1245,-1212,57,34,5788,234] xmm.sw[-17000,18121,134,4552,235,6356,123,75] => 1.sw[-32768,-4418,-6121,48,32767,2457,23,5554]
+phsubsw m128.sw[20000,-21000,1245,-1212,57,34,5788,234] xmm.sw[-17000,18121,134,4552,235,6356,123,75] => 1.sw[-32768,-4418,-6121,48,32767,2457,23,5554]
+#
+#
+#
+phaddw mm.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sw[12798,-26002,-14337,13748]
+phaddw m64.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sw[12798,-26002,-14337,13748]
+#
+phaddw xmm.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sw[12798,-26002,15102,-31132,-14337,13748,-14337,13747]
+phaddw m128.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sw[12798,-26002,15102,-31132,-14337,13748,-14337,13747]
+#
+#
+#
+phaddd mm.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sd[-1724370123,444588852]
+phaddd m64.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sd[-1724370123,444588852]
+#
+phaddd xmm.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sd[-1724370123,-1558569399,444588852,444588851]
+phaddd m128.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sd[-1724370123,-1558569399,444588852,444588851]
+#
+#
+#
+phaddsw mm.sw[20000,-21000,1245,-1212] mm.sw[-17000,18121,134,4552] => 1.sw[1121,4686,-1000,33]
+phaddsw m64.sw[20000,-21000,1245,-1212] mm.sw[-17000,18121,134,4552] => 1.sw[1121,4686,-1000,33]
+#
+phaddsw xmm.sw[20000,21000,1245,-1212,57,34,5788,234] xmm.sw[-17000,-18121,134,4552,235,6356,123,75] => 1.sw[-32768,4686,6591,198,32767,33,91,6022]
+phaddsw m128.sw[20000,21000,1245,-1212,57,34,5788,234] xmm.sw[-17000,-18121,134,4552,235,6356,123,75] => 1.sw[-32768,4686,6591,198,32767,33,91,6022]
--- /dev/null
+psignb_1 ... ok
+psignb_2 ... ok
+psignb_3 ... ok
+psignb_4 ... ok
+psignw_1 ... ok
+psignw_2 ... ok
+psignw_3 ... ok
+psignw_4 ... ok
+psignd_1 ... ok
+psignd_2 ... ok
+psignd_3 ... ok
+psignd_4 ... ok
+pabsb_1 ... ok
+pabsb_2 ... ok
+pabsb_3 ... ok
+pabsb_4 ... ok
+pabsw_1 ... ok
+pabsw_2 ... ok
+pabsw_3 ... ok
+pabsw_4 ... ok
+pabsd_1 ... ok
+pabsd_2 ... ok
+pabsd_3 ... ok
+pabsd_4 ... ok
+palignr_1 ... ok
+palignr_2 ... ok
+palignr_3 ... ok
+palignr_4 ... ok
+palignr_5 ... ok
+palignr_6 ... ok
+palignr_7 ... ok
+palignr_8 ... ok
+palignr_9 ... ok
+palignr_10 ... ok
+palignr_11 ... ok
+palignr_12 ... ok
+palignr_13 ... ok
+palignr_14 ... ok
+palignr_15 ... ok
+palignr_16 ... ok
+palignr_17 ... ok
+palignr_18 ... ok
+palignr_19 ... ok
+palignr_20 ... ok
+palignr_21 ... ok
+palignr_22 ... ok
+palignr_23 ... ok
+palignr_24 ... ok
+palignr_25 ... ok
+palignr_26 ... ok
+palignr_27 ... ok
+palignr_28 ... ok
+palignr_29 ... ok
+palignr_30 ... ok
+palignr_31 ... ok
+palignr_32 ... ok
+palignr_33 ... ok
+palignr_34 ... ok
+palignr_35 ... ok
+palignr_36 ... ok
+palignr_37 ... ok
+palignr_38 ... ok
+palignr_39 ... ok
+palignr_40 ... ok
+palignr_41 ... ok
+palignr_42 ... ok
+palignr_43 ... ok
+palignr_44 ... ok
+palignr_45 ... ok
+palignr_46 ... ok
+palignr_47 ... ok
+palignr_48 ... ok
+palignr_49 ... ok
+palignr_50 ... ok
+palignr_51 ... ok
+palignr_52 ... ok
+palignr_53 ... ok
+palignr_54 ... ok
+palignr_55 ... ok
+palignr_56 ... ok
+palignr_57 ... ok
+palignr_58 ... ok
+palignr_59 ... ok
+palignr_60 ... ok
+palignr_61 ... ok
+palignr_62 ... ok
+palignr_63 ... ok
+palignr_64 ... ok
+palignr_65 ... ok
+palignr_66 ... ok
+palignr_67 ... ok
+palignr_68 ... ok
+palignr_69 ... ok
+palignr_70 ... ok
+palignr_71 ... ok
+palignr_72 ... ok
+palignr_73 ... ok
+palignr_74 ... ok
+palignr_75 ... ok
+palignr_76 ... ok
+palignr_77 ... ok
+palignr_78 ... ok
+palignr_79 ... ok
+palignr_80 ... ok
+palignr_81 ... ok
+palignr_82 ... ok
+palignr_83 ... ok
+palignr_84 ... ok
+palignr_85 ... ok
+palignr_86 ... ok
+palignr_87 ... ok
+palignr_88 ... ok
+palignr_89 ... ok
+palignr_90 ... ok
+palignr_91 ... ok
+palignr_92 ... ok
+palignr_93 ... ok
+palignr_94 ... ok
+palignr_95 ... ok
+palignr_96 ... ok
+palignr_97 ... ok
+palignr_98 ... ok
+palignr_99 ... ok
+palignr_100 ... ok
+palignr_101 ... ok
+palignr_102 ... ok
+palignr_103 ... ok
+palignr_104 ... ok
+palignr_105 ... ok
+palignr_106 ... ok
+palignr_107 ... ok
+palignr_108 ... ok
+palignr_109 ... ok
+palignr_110 ... ok
+palignr_111 ... ok
+palignr_112 ... ok
+palignr_113 ... ok
+palignr_114 ... ok
+palignr_115 ... ok
+palignr_116 ... ok
+palignr_117 ... ok
+palignr_118 ... ok
+palignr_119 ... ok
+palignr_120 ... ok
+palignr_121 ... ok
+palignr_122 ... ok
+palignr_123 ... ok
+palignr_124 ... ok
+palignr_125 ... ok
+palignr_126 ... ok
+palignr_127 ... ok
+palignr_128 ... ok
+pshufb_1 ... ok
+pshufb_2 ... ok
+pshufb_3 ... ok
+pshufb_4 ... ok
+pmulhrsw_1 ... ok
+pmulhrsw_2 ... ok
+pmulhrsw_3 ... ok
+pmulhrsw_4 ... ok
+pmaddubsw_1 ... ok
+pmaddubsw_2 ... ok
+pmaddubsw_3 ... ok
+pmaddubsw_4 ... ok
+phsubw_1 ... ok
+phsubw_2 ... ok
+phsubw_3 ... ok
+phsubw_4 ... ok
+phsubd_1 ... ok
+phsubd_2 ... ok
+phsubd_3 ... ok
+phsubd_4 ... ok
+phsubsw_1 ... ok
+phsubsw_2 ... ok
+phsubsw_3 ... ok
+phsubsw_4 ... ok
+phaddw_1 ... ok
+phaddw_2 ... ok
+phaddw_3 ... ok
+phaddw_4 ... ok
+phaddd_1 ... ok
+phaddd_2 ... ok
+phaddd_3 ... ok
+phaddd_4 ... ok
+phaddsw_1 ... ok
+phaddsw_2 ... ok
+phaddsw_3 ... ok
+phaddsw_4 ... ok
--- /dev/null
+prog: ../../../none/tests/amd64/insn_ssse3
+prereq: ../../../tests/cputest amd64-sse3
+vgopts: -q
--- /dev/null
+
+#include <malloc.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <signal.h>
+
+void maybe_fault ( int delta )
+{
+ char* x = memalign(16/*alignment*/,32/*size*/);
+ assert(x);
+ assert(0 == ((16-1) & (unsigned long)x));
+ memset(x, 0, 32);
+ __asm__ __volatile__(
+ "pabsb (%0),%%xmm7"
+ : /*out*/ : /*in*/ "r"(x+delta) : /*trash*/"xmm7" );
+ free(x);
+}
+
+void handler ( int signo )
+{
+ assert(signo == SIGSEGV);
+ fprintf(stderr, "three\n");
+ exit(0);
+}
+
+int main ( void )
+{
+ signal(SIGSEGV, handler);
+ fprintf(stderr, "you should see: \"one\\ntwo\\nthree\\n\"\n");
+ fprintf(stderr, "one\n");
+ maybe_fault(0);
+ fprintf(stderr, "two\n");
+ maybe_fault(5);
+ fprintf(stderr, "test failed! you shouldn't see this\n");
+ return 0;
+}
--- /dev/null
+you should see: "one\ntwo\nthree\n"
+one
+two
+three
--- /dev/null
+prog: ssse3_misaligned
+prereq: ../../../tests/cputest amd64-sse3
+vgopts: -q
INSN_TESTS = insn_basic insn_fpu insn_cmov insn_mmx insn_mmxext \
insn_sse insn_sse2
if BUILD_SSE3_TESTS
- INSN_TESTS += insn_sse3
+ INSN_TESTS += insn_sse3 insn_ssse3
endif
# Explicitly include insn_sse3 even if ! BUILD_SSE3_TESTS,
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
$(addsuffix .vgtest,$(INSN_TESTS)) \
insn_sse3.stdout.exp insn_sse3.stderr.exp insn_sse3.vgtest \
+ insn_ssse3.stdout.exp insn_ssse3.stderr.exp insn_ssse3.vgtest \
jcxz.stdout.exp jcxz.stderr.exp jcxz.vgtest \
lahf.stdout.exp lahf.stderr.exp lahf.vgtest \
looper.stderr.exp looper.stdout.exp looper.vgtest \
seg_override.stderr.exp seg_override.stdout.exp seg_override.vgtest \
sigcontext.stdout.exp sigcontext.stderr.exp sigcontext.vgtest \
smc1.stderr.exp smc1.stdout.exp smc1.vgtest \
+ ssse3_misaligned.stderr.exp ssse3_misaligned.stdout.exp \
+ ssse3_misaligned.vgtest \
yield.stderr.exp yield.stdout.exp yield.disabled
check_PROGRAMS = \
getseg incdec_alt $(INSN_TESTS) \
jcxz \
lahf looper movx int pushpopseg sbbmisc \
- seg_override sigcontext smc1 yield
+ seg_override sigcontext smc1 ssse3_misaligned yield
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow \
@FLAG_M32@ -g -I$(top_srcdir)/include \
--- /dev/null
+psignb mm.ub[0,10,0,245,0,1,255,254] mm.ub[0,40,80,120,160,200,240,24] => 1.sb[0,40,0,-120,0,-56,16,-24]
+psignb m64.ub[0,10,0,245,0,1,255,254] mm.ub[0,41,79,119,161,199,241,23] => 1.sb[0,41,0,-119,0,-57,15,-23]
+#
+psignb xmm.ub[0,10,0,245,0,1,255,254,1,255,254,0,10,0,245,0] xmm.ub[0,40,80,120,160,200,240,24,3,2,1,0,255,254,253,252] => 1.sb[0,40,0,-120,0,-56,16,-24,3,-2,-1,0,-1,0,3,0]
+psignb m128.ub[0,10,0,245,0,1,255,254,10,0,245,0,1,254,0] xmm.ub[0,41,79,119,161,199,241,23,0,31,69,109,151,189,231,13] => 1.sb[0,41,0,-119,0,-57,15,-23,0,0,-69,0,-105,67,0]
+#
+#
+#
+psignw mm.sw[0,10,0,-11] mm.sw[999,987,986,985] => 1.sw[0,987,0,-985]
+psignw m64.sw[0,1000,0,-1111] mm.sw[909,907,906,905] => 1.sw[0,907,0,-905]
+#
+psignw xmm.sw[0,10,0,-11,1,0,-1,0] xmm.sw[999,987,986,985,888,887,886,885] => 1.sw[0,987,0,-985,888,0,-886,0]
+psignw m128.sw[0,1000,0,-1111,11,0,-11,0] xmm.sw[909,907,906,905,809,808,807,806] => 1.sw[0,907,0,-905,809,0,-807]
+#
+#
+#
+psignd mm.sd[0,10000] mm.sd[-5555,-6666] => 1.sd[0,-6666]
+psignd m64.sd[-11111,0] mm.sd[-7777,-8888] => 1.sd[7777,0]
+#
+psignd xmm.sd[0,10000,-10000,0] xmm.sd[-5555,-6666,-7777,-8888] => 1.sd[0,-6666,7777,0]
+psignd m128.sd[-11111,0,0,1111] xmm.sd[-9999,-10101,-11111,-22222] => 1.sd[9999,0,0,-22222]
+#
+#
+#
+pabsb mm.ub[0,10,0,245,0,1,255,254] mm.ub[0,40,80,120,160,200,240,24] => 1.sb[0,10,0,11,0,1,1,2]
+pabsb m64.ub[0,10,0,245,0,1,255,254] mm.ub[0,41,79,119,161,199,241,23] => 1.sb[0,10,0,11,0,1,1,2]
+#
+pabsb xmm.ub[0,10,0,245,0,1,255,254,1,255,254,0,10,0,245,0] xmm.ub[0,40,80,120,160,200,240,24,3,2,1,0,255,254,253,252] => 1.sb[0,10,0,11,0,1,1,2,1,1,2,0,10,0,11,0]
+pabsb m128.ub[0,10,0,245,0,1,255,254,10,0,245,0,1,254,0] xmm.ub[0,41,79,119,161,199,241,23,0,31,69,109,151,189,231,13] => 1.sb[0,10,0,11,0,1,1,2,10,0,11,0,1,2,0]
+#
+#
+#
+pabsw mm.sw[0,10,0,-11] mm.sw[999,987,986,985] => 1.sw[0,10,0,11]
+pabsw m64.sw[0,1000,0,-1111] mm.sw[909,907,906,905] => 1.sw[0,1000,0,1111]
+#
+pabsw xmm.sw[0,10,0,-11,1,0,-1,0] xmm.sw[999,987,986,985,888,887,886,885] => 1.sw[0,10,0,11,1,0,1,0]
+pabsw m128.sw[0,1000,0,-1111,11,0,-11,0] xmm.sw[909,907,906,905,809,808,807,806] => 1.sw[0,1000,0,1111,11,0,11]
+#
+#
+#
+pabsd mm.sd[0,10000] mm.sd[-5555,-6666] => 1.sd[0,10000]
+pabsd m64.sd[-11111,0] mm.sd[-7777,-8888] => 1.sd[11111,0]
+#
+pabsd xmm.sd[0,14000,-10700,0] xmm.sd[-5555,-6666,-7777,-8888] => 1.sd[0,14000,10700,0]
+pabsd m128.sd[-11111,0,0,1111] xmm.sd[-9999,-10101,-11111,-22222] => 1.sd[11111,0,0,1111]
+#
+#
+#
+palignr imm8[0] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0xffeeddccbbaa9988]
+palignr imm8[1] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x34ffeeddccbbaa99]
+palignr imm8[2] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x1134ffeeddccbbaa]
+palignr imm8[3] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x221134ffeeddccbb]
+palignr imm8[4] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x33221134ffeeddcc]
+palignr imm8[5] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x4433221134ffeedd]
+palignr imm8[6] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x554433221134ffee]
+palignr imm8[7] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x66554433221134ff]
+palignr imm8[8] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x7766554433221134]
+palignr imm8[9] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x77665544332211]
+palignr imm8[10] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x776655443322]
+palignr imm8[11] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x7766554433]
+palignr imm8[12] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x77665544]
+palignr imm8[13] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x776655]
+palignr imm8[14] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x7766]
+palignr imm8[15] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x77]
+palignr imm8[16] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[23] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[53] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[91] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[137] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[193] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[241] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[255] mm.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+#
+palignr imm8[0] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0xffeeddccbbaa9988]
+palignr imm8[1] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x34ffeeddccbbaa99]
+palignr imm8[2] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x1134ffeeddccbbaa]
+palignr imm8[3] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x221134ffeeddccbb]
+palignr imm8[4] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x33221134ffeeddcc]
+palignr imm8[5] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x4433221134ffeedd]
+palignr imm8[6] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x554433221134ffee]
+palignr imm8[7] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x66554433221134ff]
+palignr imm8[8] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x7766554433221134]
+palignr imm8[9] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x77665544332211]
+palignr imm8[10] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x776655443322]
+palignr imm8[11] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x7766554433]
+palignr imm8[12] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x77665544]
+palignr imm8[13] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x776655]
+palignr imm8[14] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x7766]
+palignr imm8[15] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0x77]
+palignr imm8[16] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[23] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[53] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[91] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[137] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[193] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[241] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+palignr imm8[255] m64.uq[0xFFEEDDCCBBAA9988] mm.uq[0x7766554433221134] => 2.uq[0]
+#
+palignr imm8[0] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[5940417471140883427,2114202203853458723]
+palignr imm8[1] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2545220547074121835,440604166586370189]
+palignr imm8[2] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[10170063027109847264,6991307731704737800]
+palignr imm8[3] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[616187561003071328,2477267993116521456]
+palignr imm8[4] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[17296229551762872887,11899179844356220851]
+palignr imm8[5] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[12965872729475674266,11215408247145846567]
+palignr imm8[6] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2860894107828703856,16905287193340550487]
+palignr imm8[7] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[6280186048908436306,930727406554121757]
+palignr imm8[8] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2114202203853458723,7713798215990141190]
+palignr imm8[9] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[440604166586370189,2840378191760400993]
+palignr imm8[10] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[6991307731704737800,17304917796414268706]
+palignr imm8[11] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2477267993116521456,9579199748148730789]
+palignr imm8[12] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[11899179844356220851,3640298450912602779]
+palignr imm8[13] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[11215408247145846567,2103890142923787498]
+palignr imm8[14] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[16905287193340550487,6061056220056742668]
+palignr imm8[15] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[930727406554121757,15371943530938247019]
+palignr imm8[16] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[7713798215990141190,3446753574200340519]
+palignr imm8[17] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2840378191760400993,13463881149220080]
+palignr imm8[18] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[17304917796414268706,52593285739140]
+palignr imm8[19] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[9579199748148730789,205442522418]
+palignr imm8[20] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[3640298450912602779,802509853]
+palignr imm8[21] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2103890142923787498,3134804]
+palignr imm8[22] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[6061056220056742668,12245]
+palignr imm8[23] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[15371943530938247019,47]
+palignr imm8[24] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[3446753574200340519,0]
+palignr imm8[25] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[13463881149220080,0]
+palignr imm8[26] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[52593285739140,0]
+palignr imm8[27] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[205442522418,0]
+palignr imm8[28] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[802509853,0]
+palignr imm8[29] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[3134804,0]
+palignr imm8[30] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[12245,0]
+palignr imm8[31] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[47,0]
+palignr imm8[32] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[33] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[53] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[91] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[137] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[193] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[241] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[255] xmm.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+#
+palignr imm8[0] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[5940417471140883427,2114202203853458723]
+palignr imm8[1] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2545220547074121835,440604166586370189]
+palignr imm8[2] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[10170063027109847264,6991307731704737800]
+palignr imm8[3] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[616187561003071328,2477267993116521456]
+palignr imm8[4] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[17296229551762872887,11899179844356220851]
+palignr imm8[5] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[12965872729475674266,11215408247145846567]
+palignr imm8[6] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2860894107828703856,16905287193340550487]
+palignr imm8[7] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[6280186048908436306,930727406554121757]
+palignr imm8[8] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2114202203853458723,7713798215990141190]
+palignr imm8[9] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[440604166586370189,2840378191760400993]
+palignr imm8[10] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[6991307731704737800,17304917796414268706]
+palignr imm8[11] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2477267993116521456,9579199748148730789]
+palignr imm8[12] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[11899179844356220851,3640298450912602779]
+palignr imm8[13] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[11215408247145846567,2103890142923787498]
+palignr imm8[14] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[16905287193340550487,6061056220056742668]
+palignr imm8[15] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[930727406554121757,15371943530938247019]
+palignr imm8[16] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[7713798215990141190,3446753574200340519]
+palignr imm8[17] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2840378191760400993,13463881149220080]
+palignr imm8[18] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[17304917796414268706,52593285739140]
+palignr imm8[19] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[9579199748148730789,205442522418]
+palignr imm8[20] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[3640298450912602779,802509853]
+palignr imm8[21] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[2103890142923787498,3134804]
+palignr imm8[22] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[6061056220056742668,12245]
+palignr imm8[23] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[15371943530938247019,47]
+palignr imm8[24] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[3446753574200340519,0]
+palignr imm8[25] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[13463881149220080,0]
+palignr imm8[26] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[52593285739140,0]
+palignr imm8[27] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[205442522418,0]
+palignr imm8[28] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[802509853,0]
+palignr imm8[29] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[3134804,0]
+palignr imm8[30] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[12245,0]
+palignr imm8[31] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[47,0]
+palignr imm8[32] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[33] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[53] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[91] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[137] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[193] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[241] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+palignr imm8[255] m128.uq[0x52709a3760e06be3,0x1d5727b3f0088d23] xmm.uq[0x6b0cea9ba5226106,0x2fd5541d3284f027] => 2.uq[0,0]
+#
+#
+#
+pshufb mm.ub[14,6,4,3,1,0,255,128] mm.ub[50,51,52,53,54,55,56,57] => 1.ub[56,56,54,53,51,50,0,0]
+pshufb m64.ub[14,6,4,3,1,0,255,128] mm.ub[50,51,52,53,54,55,56,57] => 1.ub[56,56,54,53,51,50,0,0]
+#
+pshufb xmm.ub[63,31,15,14,8,7,1,0,255,128,127,126,123,231,213,103] xmm.ub[60,61,62,63,64,65,66,67,70,71,72,73,74,75,76,77] => 1.ub[77,77,77,76,70,67,61,60,0,0,77,76,73,0,0,67]
+pshufb m128.ub[63,31,15,14,8,7,1,0,255,128,127,126,123,231,213,103] xmm.ub[60,61,62,63,64,65,66,67,70,71,72,73,74,75,76,77] => 1.ub[77,77,77,76,70,67,61,60,0,0,77,76,73,0,0,67]
+#
+#
+#
+pmulhrsw mm.ub[14,26,34,173,181,200,255,128] mm.ub[50,151,52,153,54,155,56,157] => 1.uw[60075,17037,11146,25091]
+pmulhrsw m64.ub[14,26,34,173,181,200,255,128] mm.ub[50,151,52,153,54,155,56,157] => 1.uw[60075,17037,11146,25091]
+#
+pmulhrsw xmm.ub[14,26,34,173,181,200,255,128,24,36,44,183,191,210,9,138] xmm.ub[50,151,52,153,54,155,56,157,60,161,62,163,64,165,66,167] => 1.uw[60075,17037,11146,25091,58695,13511,8214,20937]
+pmulhrsw m128.ub[14,26,34,173,181,200,255,128,24,36,44,183,191,210,9,138] xmm.ub[50,151,52,153,54,155,56,157,60,161,62,163,64,165,66,167] => 1.uw[60075,17037,11146,25091,58695,13511,8214,20937]
+#
+#
+#
+pmaddubsw mm.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sw[32767,-32768,-12730,27484]
+pmaddubsw m64.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sw[32767,-32768,-12730,27484]
+#
+pmaddubsw xmm.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sw[32767,-32768,-12730,27484,32767,-32768,-13049,27259]
+pmaddubsw m128.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sw[32767,-32768,-12730,27484,32767,-32768,-13049,27259]
+#
+#
+#
+phsubw mm.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sw[-512,-25602,27903,23478]
+phsubw m64.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sw[-512,-25602,27903,23478]
+#
+phsubw xmm.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sw[-512,-25602,-3328,-30672,27903,23478,27391,23989]
+phsubw m128.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sw[-512,-25602,-3328,-30672,27903,23478,27391,23989]
+#
+#
+#
+phsubd mm.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sd[-1698235191,1082151370]
+phsubd m64.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sd[-1698235191,1082151370]
+#
+phsubd xmm.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sd[-1698235191,-1528492107,1082151370,1115705291]
+phsubd m128.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sd[-1698235191,-1528492107,1082151370,1115705291]
+#
+#
+#
+phsubsw mm.sw[20000,-21000,1245,-1212] mm.sw[-17000,18121,134,4552] => 1.sw[-32768,-4418,32767,2457]
+phsubsw m64.sw[20000,-21000,1245,-1212] mm.sw[-17000,18121,134,4552] => 1.sw[-32768,-4418,32767,2457]
+#
+phsubsw xmm.sw[20000,-21000,1245,-1212,57,34,5788,234] xmm.sw[-17000,18121,134,4552,235,6356,123,75] => 1.sw[-32768,-4418,-6121,48,32767,2457,23,5554]
+phsubsw m128.sw[20000,-21000,1245,-1212,57,34,5788,234] xmm.sw[-17000,18121,134,4552,235,6356,123,75] => 1.sw[-32768,-4418,-6121,48,32767,2457,23,5554]
+#
+#
+#
+phaddw mm.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sw[12798,-26002,-14337,13748]
+phaddw m64.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sw[12798,-26002,-14337,13748]
+#
+phaddw xmm.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sw[12798,-26002,15102,-31132,-14337,13748,-14337,13747]
+phaddw m128.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sw[12798,-26002,15102,-31132,-14337,13748,-14337,13747]
+#
+#
+#
+phaddd mm.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sd[-1724370123,444588852]
+phaddd m64.ub[127,26,128,173,181,200,255,108] mm.ub[255,151,255,153,54,155,56,255] => 1.sd[-1724370123,444588852]
+#
+phaddd xmm.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sd[-1724370123,-1558569399,444588852,444588851]
+phaddd m128.ub[127,26,128,173,181,200,255,108,127,25,128,174,180,201,255,107] xmm.ub[255,151,255,153,54,155,56,255,255,150,255,163,74,135,26,255] => 1.sd[-1724370123,-1558569399,444588852,444588851]
+#
+#
+#
+phaddsw mm.sw[20000,-21000,1245,-1212] mm.sw[-17000,18121,134,4552] => 1.sw[1121,4686,-1000,33]
+phaddsw m64.sw[20000,-21000,1245,-1212] mm.sw[-17000,18121,134,4552] => 1.sw[1121,4686,-1000,33]
+#
+phaddsw xmm.sw[20000,21000,1245,-1212,57,34,5788,234] xmm.sw[-17000,-18121,134,4552,235,6356,123,75] => 1.sw[-32768,4686,6591,198,32767,33,91,6022]
+phaddsw m128.sw[20000,21000,1245,-1212,57,34,5788,234] xmm.sw[-17000,-18121,134,4552,235,6356,123,75] => 1.sw[-32768,4686,6591,198,32767,33,91,6022]
--- /dev/null
+psignb_1 ... ok
+psignb_2 ... ok
+psignb_3 ... ok
+psignb_4 ... ok
+psignw_1 ... ok
+psignw_2 ... ok
+psignw_3 ... ok
+psignw_4 ... ok
+psignd_1 ... ok
+psignd_2 ... ok
+psignd_3 ... ok
+psignd_4 ... ok
+pabsb_1 ... ok
+pabsb_2 ... ok
+pabsb_3 ... ok
+pabsb_4 ... ok
+pabsw_1 ... ok
+pabsw_2 ... ok
+pabsw_3 ... ok
+pabsw_4 ... ok
+pabsd_1 ... ok
+pabsd_2 ... ok
+pabsd_3 ... ok
+pabsd_4 ... ok
+palignr_1 ... ok
+palignr_2 ... ok
+palignr_3 ... ok
+palignr_4 ... ok
+palignr_5 ... ok
+palignr_6 ... ok
+palignr_7 ... ok
+palignr_8 ... ok
+palignr_9 ... ok
+palignr_10 ... ok
+palignr_11 ... ok
+palignr_12 ... ok
+palignr_13 ... ok
+palignr_14 ... ok
+palignr_15 ... ok
+palignr_16 ... ok
+palignr_17 ... ok
+palignr_18 ... ok
+palignr_19 ... ok
+palignr_20 ... ok
+palignr_21 ... ok
+palignr_22 ... ok
+palignr_23 ... ok
+palignr_24 ... ok
+palignr_25 ... ok
+palignr_26 ... ok
+palignr_27 ... ok
+palignr_28 ... ok
+palignr_29 ... ok
+palignr_30 ... ok
+palignr_31 ... ok
+palignr_32 ... ok
+palignr_33 ... ok
+palignr_34 ... ok
+palignr_35 ... ok
+palignr_36 ... ok
+palignr_37 ... ok
+palignr_38 ... ok
+palignr_39 ... ok
+palignr_40 ... ok
+palignr_41 ... ok
+palignr_42 ... ok
+palignr_43 ... ok
+palignr_44 ... ok
+palignr_45 ... ok
+palignr_46 ... ok
+palignr_47 ... ok
+palignr_48 ... ok
+palignr_49 ... ok
+palignr_50 ... ok
+palignr_51 ... ok
+palignr_52 ... ok
+palignr_53 ... ok
+palignr_54 ... ok
+palignr_55 ... ok
+palignr_56 ... ok
+palignr_57 ... ok
+palignr_58 ... ok
+palignr_59 ... ok
+palignr_60 ... ok
+palignr_61 ... ok
+palignr_62 ... ok
+palignr_63 ... ok
+palignr_64 ... ok
+palignr_65 ... ok
+palignr_66 ... ok
+palignr_67 ... ok
+palignr_68 ... ok
+palignr_69 ... ok
+palignr_70 ... ok
+palignr_71 ... ok
+palignr_72 ... ok
+palignr_73 ... ok
+palignr_74 ... ok
+palignr_75 ... ok
+palignr_76 ... ok
+palignr_77 ... ok
+palignr_78 ... ok
+palignr_79 ... ok
+palignr_80 ... ok
+palignr_81 ... ok
+palignr_82 ... ok
+palignr_83 ... ok
+palignr_84 ... ok
+palignr_85 ... ok
+palignr_86 ... ok
+palignr_87 ... ok
+palignr_88 ... ok
+palignr_89 ... ok
+palignr_90 ... ok
+palignr_91 ... ok
+palignr_92 ... ok
+palignr_93 ... ok
+palignr_94 ... ok
+palignr_95 ... ok
+palignr_96 ... ok
+palignr_97 ... ok
+palignr_98 ... ok
+palignr_99 ... ok
+palignr_100 ... ok
+palignr_101 ... ok
+palignr_102 ... ok
+palignr_103 ... ok
+palignr_104 ... ok
+palignr_105 ... ok
+palignr_106 ... ok
+palignr_107 ... ok
+palignr_108 ... ok
+palignr_109 ... ok
+palignr_110 ... ok
+palignr_111 ... ok
+palignr_112 ... ok
+palignr_113 ... ok
+palignr_114 ... ok
+palignr_115 ... ok
+palignr_116 ... ok
+palignr_117 ... ok
+palignr_118 ... ok
+palignr_119 ... ok
+palignr_120 ... ok
+palignr_121 ... ok
+palignr_122 ... ok
+palignr_123 ... ok
+palignr_124 ... ok
+palignr_125 ... ok
+palignr_126 ... ok
+palignr_127 ... ok
+palignr_128 ... ok
+pshufb_1 ... ok
+pshufb_2 ... ok
+pshufb_3 ... ok
+pshufb_4 ... ok
+pmulhrsw_1 ... ok
+pmulhrsw_2 ... ok
+pmulhrsw_3 ... ok
+pmulhrsw_4 ... ok
+pmaddubsw_1 ... ok
+pmaddubsw_2 ... ok
+pmaddubsw_3 ... ok
+pmaddubsw_4 ... ok
+phsubw_1 ... ok
+phsubw_2 ... ok
+phsubw_3 ... ok
+phsubw_4 ... ok
+phsubd_1 ... ok
+phsubd_2 ... ok
+phsubd_3 ... ok
+phsubd_4 ... ok
+phsubsw_1 ... ok
+phsubsw_2 ... ok
+phsubsw_3 ... ok
+phsubsw_4 ... ok
+phaddw_1 ... ok
+phaddw_2 ... ok
+phaddw_3 ... ok
+phaddw_4 ... ok
+phaddd_1 ... ok
+phaddd_2 ... ok
+phaddd_3 ... ok
+phaddd_4 ... ok
+phaddsw_1 ... ok
+phaddsw_2 ... ok
+phaddsw_3 ... ok
+phaddsw_4 ... ok
--- /dev/null
+prog: ../../../none/tests/x86/insn_ssse3
+prereq: ../../../tests/cputest x86-sse3
+vgopts: -q
--- /dev/null
+
+#include <malloc.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <signal.h>
+
+void maybe_fault ( int delta )
+{
+ char* x = memalign(16/*alignment*/,32/*size*/);
+ assert(x);
+ assert(0 == ((16-1) & (unsigned long)x));
+ memset(x, 0, 32);
+ __asm__ __volatile__(
+ "pabsb (%0),%%xmm7"
+ : /*out*/ : /*in*/ "r"(x+delta) : /*trash*/"xmm7" );
+ free(x);
+}
+
+void handler ( int signo )
+{
+ assert(signo == SIGSEGV);
+ fprintf(stderr, "three\n");
+ exit(0);
+}
+
+int main ( void )
+{
+ signal(SIGSEGV, handler);
+ fprintf(stderr, "you should see: \"one\\ntwo\\nthree\\n\"\n");
+ fprintf(stderr, "one\n");
+ maybe_fault(0);
+ fprintf(stderr, "two\n");
+ maybe_fault(5);
+ fprintf(stderr, "test failed! you shouldn't see this\n");
+ return 0;
+}
--- /dev/null
+you should see: "one\ntwo\nthree\n"
+one
+two
+three
--- /dev/null
+prog: ssse3_misaligned
+prereq: ../../../tests/cputest x86-sse3
+vgopts: -q