aboutsummaryrefslogtreecommitdiff
path: root/modules/arch/x86/tests/ssse3.asm
blob: a9e8578d679488154d745b05c7c0ad9981af1ff8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
%MACRO TEST_GENERIC 5
;global _test_ %+ %1 %+ _ %+ %4
;global test_ %+ %1 %+ _ %+ %4
_test_ %+ %1 %+ _ %+ %4:
test_ %+ %1 %+ _ %+ %4:
   mov         edx, [ esp + 4 ]
   mov         eax, [ esp + 8 ]
   %2          %3, [ edx ]
   %2          %5, [ eax ]
   %1          %3, %5
   %2          [ edx ], %3
   ret
%ENDMACRO

TEST_GENERIC pabsb, movq, mm0, mmx, mm1
TEST_GENERIC pabsw, movq, mm0, mmx, mm1
TEST_GENERIC pabsd, movq, mm0, mmx, mm1

TEST_GENERIC pabsb, movdqu, xmm0, xmm, xmm1
TEST_GENERIC pabsw, movdqu, xmm0, xmm, xmm1
TEST_GENERIC pabsd, movdqu, xmm0, xmm, xmm1

TEST_GENERIC psignb, movq, mm0, mmx, mm1
TEST_GENERIC psignw, movq, mm0, mmx, mm1
TEST_GENERIC psignd, movq, mm0, mmx, mm1
          
TEST_GENERIC psignb, movdqu, xmm0, xmm, xmm1
TEST_GENERIC psignw, movdqu, xmm0, xmm, xmm1
TEST_GENERIC psignd, movdqu, xmm0, xmm, xmm1

TEST_GENERIC phaddw, movq, mm0, mmx, mm1
TEST_GENERIC phaddsw, movq, mm0, mmx, mm1
TEST_GENERIC phaddd, movq, mm0, mmx, mm1

TEST_GENERIC phaddw, movdqu, xmm0, xmm, xmm1
TEST_GENERIC phaddsw, movdqu, xmm0, xmm, xmm1
TEST_GENERIC phaddd, movdqu, xmm0, xmm, xmm1

TEST_GENERIC phsubw, movq, mm0, mmx, mm1
TEST_GENERIC phsubsw, movq, mm0, mmx, mm1
TEST_GENERIC phsubd, movq, mm0, mmx, mm1

TEST_GENERIC phsubw, movdqu, xmm0, xmm, xmm1
TEST_GENERIC phsubsw, movdqu, xmm0, xmm, xmm1
TEST_GENERIC phsubd, movdqu, xmm0, xmm, xmm1

TEST_GENERIC pmulhrsw, movq, mm0, mmx, mm1
TEST_GENERIC pmulhrsw, movdqu, xmm0, xmm, xmm1

TEST_GENERIC pmaddubsw, movq, mm0, mmx, mm1
TEST_GENERIC pmaddubsw, movdqu, xmm0, xmm, xmm1

TEST_GENERIC pshufb, movq, mm0, mmx, mm1
TEST_GENERIC pshufb, movdqu, xmm0, xmm, xmm1

%MACRO TEST_ALIGNR 5
;global _test_ %+ %1 %+ _ %+ %4
;global test_ %+ %1 %+ _ %+ %4
_test_ %+ %1 %+ _ %+ %4:
test_ %+ %1 %+ _ %+ %4:
   mov         edx, [ esp + 4 ]
   mov         eax, [ esp + 8 ]
   %2          %3, [ edx ]
   %2          %5, [ eax ]
   %1          %3, %5, 3
   %2          [ edx ], %3
   ret
%ENDMACRO

TEST_ALIGNR palignr, movq, mm0, mmx, mm1
TEST_ALIGNR palignr, movdqu, xmm0, xmm, xmm1