Added dataflow info to instruction tests. It is not yet checked.
[jitcs.git] / tests / x86 / x86_simd_shuffle_vex.ins
blob8a7b5dd5604ad65bdf63a4a9571e00c26f7422e2
1 | for Y = [128, 256] do
2 | for X = [MOVSLDUP, MOVSHDUP] do
3   V$(X){_$(VSZ(Y))$(VSZ(Y))}   $(VNAME("XMM1",Y)), $(VNAME("XMM2",Y)) {|XMM1/w,XMM2/r}
4   V$(X){_$(VSZ(Y))M}           $(VNAME("XMM1",Y)), [RAX]              {|XMM1/w,RAX/r}
5 | endfor
6 | for X = [MOVDDUP] do
7   V$(X){_$(VSZ(Y))$(VSZ(Y))}   $(VNAME("XMM1",Y)), $(VNAME("XMM2",Y))              {|XMM1/w,XMM2/r}
8   V$(X){_$(VSZ(Y))M$(Y=="256" and "" or "64")}           $(VNAME("XMM1",Y)), [RAX] {|XMM1/w,RAX/r}
9 | endfor
10 | for X = [UNPCKLPS, UNPCKLPD, UNPCKHPS, UNPCKHPD, PUNPCKLBW, PUNPCKLWD, PUNPCKLDQ, PUNPCKLQDQ, PUNPCKHBW, PUNPCKHWD, PUNPCKHDQ, PUNPCKHQDQ, PSHUFB] do
11   V$(X){_$(VSZ(Y))$(VSZ(Y))$(VSZ(Y))}   $(VNAME("XMM1",Y)), $(VNAME("XMM2",Y)), $(VNAME("XMM3",Y)) {|XMM1/w,XMM2/r,XMM3/r}
12   V$(X){_$(VSZ(Y))$(VSZ(Y))M}           $(VNAME("XMM1",Y)), $(VNAME("XMM2",Y)), [RAX]              {|XMM1/w,XMM2/r,RAX/r}
13 | endfor
14 | for X = [SHUFPS, SHUFPD, PALIGNR] do
15   V$(X){_$(VSZ(Y))$(VSZ(Y))$(VSZ(Y))I}  $(VNAME("XMM1",Y)), $(VNAME("XMM2",Y)), $(VNAME("XMM3",Y)), 2 {|XMM1/w,XMM2/r,XMM3/r}
16   V$(X){_$(VSZ(Y))$(VSZ(Y))MI}      $(VNAME("XMM1",Y)), $(VNAME("XMM2",Y)), [RAX], 2                  {|XMM1/w,XMM2/r,RAX/r}
17 | endfor
18 | for X = [PSHUFD, PSHUFLW, PSHUFHW] do
19   V$(X){_$(VSZ(Y))$(VSZ(Y))I}      $(VNAME("XMM1",Y)), $(VNAME("XMM2",Y)), 2  {|XMM1/w,XMM2/r}
20   V$(X){_$(VSZ(Y))MI}      $(VNAME("XMM1",Y)), [RAX], 2                       {|XMM1/w,RAX/r}
21 | endfor
22 | for Z = [8, 16, 32, 64] do
23   VPBROADCAST$(RSZ2(Z)){_$(VSZ(Y))X}  $(VNAME("XMM1",Y)), XMM2            {|XMM1/w,XMM2/r}
24   VPBROADCAST$(RSZ2(Z)){_$(VSZ(Y))M$(MSZ(Z))}  $(VNAME("XMM1",Y)), [RAX]  {|XMM1/w,RAX/r}
25 | endfor
26   VBROADCASTSS{_$(VSZ(Y))X}  $(VNAME("XMM1",Y)), XMM2     {|XMM1/w,XMM2/r}
27   VBROADCASTSS{_$(VSZ(Y))M32}  $(VNAME("XMM1",Y)), [RAX]  {|XMM1/w,RAX/r}
28 | for X = [PERMILPS, PERMILPD] do
29   V$(X){_$(VSZ(Y))$(VSZ(Y))$(VSZ(Y))}      $(VNAME("XMM1",Y)), $(VNAME("XMM2",Y)), $(VNAME("XMM3",Y)) {|XMM1/w,XMM2/r,XMM3/r}
30   V$(X){_$(VSZ(Y))$(VSZ(Y))M}      $(VNAME("XMM1",Y)), $(VNAME("XMM2",Y)), [RAX]                      {|XMM1/w,XMM2/r,RAX/r}
31   V$(X){_$(VSZ(Y))$(VSZ(Y))I}      $(VNAME("XMM1",Y)), $(VNAME("XMM2",Y)), 2                          {|XMM1/w,XMM2/r}
32   V$(X){_$(VSZ(Y))MI}      $(VNAME("XMM1",Y)), [RAX], 2                                               {|XMM1/w,RAX/r}
33 | endfor
34 | endfor
35   VBROADCASTF128{_YM128}  YMM1, [RAX]   {|XMM1/w,RAX/r}
36   VBROADCASTI128{_YM128}  YMM1, [RAX]   {|XMM1/w,RAX/r}
37   VBROADCASTSD{_YX}    YMM1, XMM2       {|XMM1/w,XMM2/r}
38   VBROADCASTSD{_YM64}  YMM1, [RAX]      {|XMM1/w,RAX/r}
39   VPERM2F128{_YYYI}     YMM1, YMM2, YMM3, 1  {|XMM1/w,XMM2/r,XMM3/r}
40   VPERM2F128{_YYMI}     YMM1, YMM2, [RAX], 2 {|XMM1/w,XMM2/r,RAX/r}
41   VPERM2I128{_YYYI}     YMM1, YMM2, YMM3, 1  {|XMM1/w,XMM2/r,XMM3/r}
42   VPERM2I128{_YYMI}     YMM1, YMM2, [RAX], 2 {|XMM1/w,XMM2/r,RAX/r}
43   VPERMD{_YYY}     YMM1, YMM2, YMM3          {|XMM1/w,XMM2/r,XMM3/r}
44   VPERMD{_YYM}     YMM1, YMM2, [RAX]         {|XMM1/w,XMM2/r,RAX/r}
45   VPERMPD{_YYI}     YMM1, YMM2, 1            {|XMM1/w,XMM2/r}
46   VPERMPD{_YMI}     YMM1, [RAX], 1           {|XMM1/w,RAX/r}
47   VPERMPS{_YYY}     YMM1, YMM2, YMM3         {|XMM1/w,XMM2/r,XMM3/r}
48   VPERMPS{_YYM}     YMM1, YMM2, [RAX]        {|XMM1/w,XMM2/r,RAX/r}
49   VPERMQ{_YYI}     YMM1, YMM2, 1             {|XMM1/w,XMM2/r}
50   VPERMQ{_YMI}     YMM1, [RAX], 1            {|XMM1/w,RAX/r}