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}
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}
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}
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}
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}
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}
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}
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}