1 | for X = [MOVSLDUP, MOVSHDUP, UNPCKLPS, UNPCKLPD, UNPCKHPS, UNPCKHPD, PUNPCKLBW, PUNPCKLWD, PUNPCKLDQ, PUNPCKLQDQ, PUNPCKHBW, PUNPCKHWD, PUNPCKHDQ, PUNPCKHQDQ, PSHUFB] do
2 | let RRW = $((X=="MOVSLDUP" or X=="MOVSHDUP") and "w" or "rw")
3 $(X){_XX} XMM1, XMM2 {|XMM1/$(RRW),XMM2/r}
4 $(X){_XM} XMM1, [RAX] {|XMM1/$(RRW),RAX/r}
7 $(X){_XX} XMM1, XMM2 {|XMM1/w,XMM2/r}
8 $(X){_XM64} XMM1, [RAX] {|XMM1/w,RAX/r}
10 | for X = [SHUFPS, SHUFPD, PSHUFD, PSHUFLW, PSHUFHW, PALIGNR] do
11 | let RRW = $((X=="PSHUFD" or X=="PSHUFLW" or X=="PSHUFHW") and "w" or "rw")
12 $(X){_XXI} XMM1, XMM2, 2 {|XMM1/$(RRW),XMM2/r}
13 $(X){_XMI} XMM1, [RAX], 2 {|XMM1/$(RRW),RAX/r}