x86intr.dat 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545
  1. ; SSE
  2. movss(out r0: xmm; r1: ptr32)
  3. movaps(out r0: xmm; r1: ptr128)
  4. movups(out r0: xmm; r1: ptr128)
  5. movss[to_mem](r0: ptr32; r1: xmm)
  6. movaps[to_mem](r0: ptr128; r1: xmm)
  7. movups[to_mem](r0: ptr128; r1: xmm)
  8. movss[to_val](out r0: f32; r1: xmm)
  9. movss[from_val](out r0: xmm; r1: f32)
  10. movlps(var r0: xmm; r1: ptr64)
  11. movhps(var r0: xmm; r1: ptr64)
  12. movlps[to_mem](r0: ptr64; r1: xmm)
  13. movhps[to_mem](r0: ptr64; r1: xmm)
  14. movlhps(var r0: xmm; r1: xmm)
  15. movhlps(var r0: xmm; r1: xmm)
  16. addss(var r0: f32; r1: f32)
  17. addss[from_mem](var r0: f32; r1: ptr32)
  18. subss(var r0: f32; r1: f32)
  19. subss[from_mem](var r0: f32; r1: ptr32)
  20. mulss(var r0: f32; r1: f32)
  21. mulss[from_mem](var r0: f32; r1: ptr32)
  22. divss(var r0: f32; r1: f32)
  23. divss[from_mem](var r0: f32; r1: ptr32)
  24. rcpss(var r0: f32; r1: f32)
  25. rcpss[from_mem](var r0: f32; r1: ptr32)
  26. sqrtss(var r0: f32; r1: f32)
  27. sqrtss[from_mem](var r0: f32; r1: ptr32)
  28. maxss(var r0: f32; r1: f32)
  29. maxss[from_mem](var r0: f32; r1: ptr32)
  30. minss(var r0: f32; r1: f32)
  31. minss[from_mem](var r0: f32; r1: ptr32)
  32. rsqrtss(var r0: f32; r1: f32)
  33. rsqrtss[from_mem](var r0: f32; r1: ptr32)
  34. addps(var r0: xmm; r1: xmm)
  35. addps[from_mem](var r0: xmm; r1: ptr128)
  36. subps(var r0: xmm; r1: xmm)
  37. subps[from_mem](var r0: xmm; r1: ptr128)
  38. mulps(var r0: xmm; r1: xmm)
  39. mulps[from_mem](var r0: xmm; r1: ptr128)
  40. divps(var r0: xmm; r1: xmm)
  41. divps[from_mem](var r0: xmm; r1: ptr128)
  42. rcpps(var r0: xmm; r1: xmm)
  43. rcpps[from_mem](var r0: xmm; r1: ptr128)
  44. sqrtps(var r0: xmm; r1: xmm)
  45. sqrtps[from_mem](var r0: xmm; r1: ptr128)
  46. maxps(var r0: xmm; r1: xmm)
  47. maxps[from_mem](var r0: xmm; r1: ptr128)
  48. minps(var r0: xmm; r1: xmm)
  49. minps[from_mem](var r0: xmm; r1: ptr128)
  50. rsqrtps(var r0: xmm; r1: xmm)
  51. rsqrtps[from_mem](var r0: xmm; r1: ptr128)
  52. andps(var r0: xmm; r1: xmm)
  53. andps[from_mem](var r0: xmm; r1: ptr128)
  54. orps(var r0: xmm; r1: xmm)
  55. orps[from_mem](var r0: xmm; r1: ptr128)
  56. xorps(var r0: xmm; r1: xmm)
  57. xorps[from_mem](var r0: xmm; r1: ptr128)
  58. andnps(var r0: xmm; r1: xmm)
  59. andnps[from_mem](var r0: xmm; r1: ptr128)
  60. cmpss(var r0: f32; r1: f32; imm: i32) (imm in [0..7])
  61. cmpss[from_mem](var r0: f32; r1: ptr32; imm: i32) (imm in [0..7])
  62. cmpps(var r0: xmm; r1: xmm; imm: i32) (imm in [0..7])
  63. cmpps[from_mem](var r0: xmm; r1: ptr128; imm: i32) (imm in [0..7])
  64. shufps(var r0: xmm; r1: xmm; imm: i32) (imm in [0..$ff])
  65. shufps[from_mem](var r0: xmm; r1: ptr128; imm: i32) (imm in [0..$ff])
  66. unpckhps(var r0: xmm; r1: xmm)
  67. unpckhps[from_mem](var r0: xmm; r1: ptr128)
  68. unpcklps(var r0: xmm; r1: xmm)
  69. unpcklps[from_mem](var r0: xmm; r1: ptr128)
  70. cvtsi2ss(var r0: f32; r1: reg)
  71. cvtsi2ss[from_mem](var r0: f32; r1: ptr32)
  72. cvtss2si(out r0: reg; r1: f32)
  73. cvtss2si[from_mem](out r0: reg; r1: ptr32)
  74. cvttss2si(out r0: reg; r1: f32)
  75. cvttss2si[from_mem](out r0: reg; r1: ptr32)
  76. cvtpi2ps(var r0: xmm; r1: mm)
  77. cvtpi2ps[from_mem](var r0: xmm; r1: ptr64)
  78. cvtps2pi(out r0: mm; r1: xmm)
  79. cvtps2pi[from_mem](out r0: mm; r1: ptr64)
  80. cvttps2pi(out r0: mm; r1: xmm)
  81. cvttps2pi[from_mem](out r0: mm; r1: ptr64)
  82. pmulhuw[mmx](var r0: mm; r1: mm)
  83. pmulhuw[mmx_from_mem](var r0: mm; r1: ptr64)
  84. psadbw[mmx](var r0: mm; r1: mm)
  85. psadbw[mmx_from_mem](var r0: mm; r1: ptr64)
  86. pavgb[mmx](var r0: mm; r1: mm)
  87. pavgb[mmx_from_mem](var r0: mm; r1: ptr64)
  88. pavgw[mmx](var r0: mm; r1: mm)
  89. pavgw[mmx_from_mem](var r0: mm; r1: ptr64)
  90. pmaxub[mmx](var r0: mm; r1: mm)
  91. pmaxub[mmx_from_mem](var r0: mm; r1: ptr64)
  92. pminub[mmx](var r0: mm; r1: mm)
  93. pminub[mmx_from_mem](var r0: mm; r1: ptr64)
  94. pmaxsw[mmx](var r0: mm; r1: mm)
  95. pmaxsw[mmx_from_mem](var r0: mm; r1: ptr64)
  96. pminsw[mmx](var r0: mm; r1: mm)
  97. pminsw[mmx_from_mem](var r0: mm; r1: ptr64)
  98. pextrw[mmx](out r0: reg; r1: mm; imm: i32) (imm in [0..3])
  99. pinsrw[mmx](var r0: mm; r1: reg; imm: i32) (imm in [0..3])
  100. pmovmskb[mmx](out r0: reg; r1: mm)
  101. pshufw(out r0: mm; r1: mm; imm: i32) (imm in [0..$ff])
  102. pshufw[from_mem](out r0: mm; r1: ptr64; imm: i32) (imm in [0..$ff])
  103. ; SSE2 data movement instructions
  104. movapd(out r0: xmm; r1: ptr32)
  105. movapd[to_mem](r0: ptr32; r1: xmm)
  106. movntpd[to_mem](r0: ptr32; r1: xmm)
  107. movhpd(out r0: xmm; r1: ptr32)
  108. movhpd[to_mem](r0: ptr32; r1: xmm)
  109. movlpd(out r0: xmm; r1: ptr32)
  110. movlpd[to_mem](r0: ptr32; r1: xmm)
  111. movupd(out r0: xmm; r1: ptr32)
  112. movupd[to_mem](r0: ptr32; r1: xmm)
  113. movmskpd(out r0: r32; r1: xmm)
  114. movsd[from_mem](out r0: xmm; r1: ptr32)
  115. movsd[to_mem](r0: ptr32; r1: xmm)
  116. movsd[to_val](out r0: f64; r1: xmm)
  117. movsd[from_val](out r0: xmm; r1: f64)
  118. ; SSE2 packed arithmetic instructions
  119. addpd(var r0: xmm; r1: xmm)
  120. addpd[from_mem](var r0: xmm; r1: ptr128)
  121. addsd(var r0: f64; r1: f64)
  122. addsd[from_mem](var r0: f64; r1: ptr64)
  123. divpd(var r0: xmm; r1: xmm)
  124. divpd[from_mem](var r0: xmm; r1: ptr128)
  125. divsd(var r0: f64; r1: f64)
  126. divsd[from_mem](var r0: f64; r1: ptr64)
  127. maxpd(var r0: xmm; r1: xmm)
  128. maxpd[from_mem](var r0: xmm; r1: ptr128)
  129. maxsd(var r0: f64; r1: xmm)
  130. maxsd[from_mem](var r0: xmm; r1: ptr64)
  131. minpd(var r0: xmm; r1: xmm)
  132. minpd[from_mem](var r0: xmm; r1: ptr128)
  133. minsd(var r0: f64; r1: f64)
  134. minsd[from_mem](var r0: f64; r1: ptr64)
  135. mulpd(var r0: xmm; r1: xmm)
  136. mulpd[from_mem](var r0: xmm; r1: ptr128)
  137. mulsd(var r0: f64; r1: xmm)
  138. mulsd[from_mem](var r0: f64; r1: ptr64)
  139. sqrtpd(out r0: xmm; r1: xmm)
  140. sqrtpd[from_mem](out r0: xmm; r1: ptr128)
  141. sqrtsd(out r0: f64; r1: f64)
  142. sqrtsd[from_mem](out r0: f64; r1: ptr64)
  143. subpd(var r0: xmm; r1: xmm)
  144. subpd[from_mem](var r0: xmm; r1: ptr128)
  145. subsd(var r0: f64; r1: f64)
  146. subsd[from_mem](var r0: f64; r1: ptr64)
  147. ; SSE2 logical instructions
  148. andpd(var r0: xmm; r1: xmm)
  149. andpd[from_mem](var r0: xmm; r1: ptr128)
  150. andnpd(var r0: xmm; r1: xmm)
  151. andnpd[from_mem](var r0: xmm; r1: ptr128)
  152. orpd(var r0: xmm; r1: xmm)
  153. orpd[from_mem](var r0: xmm; r1: ptr128)
  154. xorpd(var r0: xmm; r1: xmm)
  155. xorpd[from_mem](var r0: xmm; r1: ptr128)
  156. ; SSE2 compare instructions
  157. cmppd(var r0: xmm; r1: xmm; imm: i32)
  158. cmppd[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  159. cmpsd(var r0: f64; r1: f64; imm: i32)
  160. cmpsd[from_mem](var r0: f64; r1: ptr64; imm: i32)
  161. comisd(var r0: f64; r1: f64)
  162. comisd[from_mem](var r0: f64; r1: ptr64)
  163. ucomisd(var r0: f64; r1: f64)
  164. ucomisd[from_mem](var r0: f64; r1: ptr64)
  165. ; SSE2 shuffle and unpack instructions
  166. shufpd(var r0: xmm; r1: xmm; imm: i32)
  167. shufpd[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  168. unpckhpd(var r0: xmm; r1: xmm)
  169. unpckhpd[from_mem](var r0: xmm; r1: ptr128)
  170. unpcklpd(var r0: xmm; r1: xmm)
  171. unpcklpd[from_mem](var r0: xmm; r1: ptr128)
  172. ; SSE2 conversion instructions
  173. cvtdq2pd(var r0: xmm; r1: xmm)
  174. cvtdq2pd[from_mem](var r0: xmm; r1: ptr64)
  175. cvtdq2ps(var r0: xmm; r1: xmm)
  176. cvtdq2ps[from_mem](var r0: xmm; r1: ptr128)
  177. cvtpd2dq(var r0: xmm; r1: xmm)
  178. cvtpd2dq[from_mem](var r0: xmm; r1: ptr128)
  179. cvtpd2pi(var r0: mm; r1: xmm)
  180. cvtpd2pi[from_mem](var r0: mm; r1: ptr128)
  181. cvtpd2ps(var r0: xmm; r1: xmm)
  182. cvtpd2ps[from_mem](var r0: xmm; r1: ptr128)
  183. cvtpi2pd(var r0: xmm; r1: mm)
  184. cvtpi2pd[from_mem](var r0: xmm; r1: ptr64)
  185. cvtps2dq(var r0: xmm; r1: xmm)
  186. cvtps2dq[from_mem](var r0: xmm; r1: ptr128)
  187. cvtps2pd(var r0: xmm; r1: xmm)
  188. cvtps2pd[from_mem](var r0: xmm; r1: ptr64)
  189. cvtsd2si(var r0: sreg; r1: xmm)
  190. cvtsd2si[from_mem](var r0: sreg; r1: ptr64)
  191. cvtsd2ss(var r0: xmm; r1: xmm)
  192. cvtsd2ss[from_mem](var r0: xmm; r1: ptr64)
  193. cvtsi2sd(var r0: f64; r1: r32)
  194. cvtsi2sd[from_mem](var r0: f64; r1: ptr32)
  195. cvtss2sd(var r0: f64; r1: f64)
  196. cvtss2sd[from_mem](var r0: f64; r1: ptr32)
  197. cvttpd2dq(var r0: xmm; r1: xmm)
  198. cvttpd2dq[from_mem](var r0: xmm; r1: ptr128)
  199. cvttpd2pi(var r0: mm; r1: xmm)
  200. cvttpd2pi[from_mem](var r0: mm; r1: ptr128)
  201. cvttps2dq(var r0: xmm; r1: xmm)
  202. cvttps2dq[from_mem](var r0: xmm; r1: ptr128)
  203. cvttsd2si(var r0: sreg; r1: xmm)
  204. cvttsd2si[from_mem](var r0: sreg; r1: ptr64)
  205. ; SSE2 MMX-like instructions
  206. movd[from_reg](out r0: xmm; r1: r32)
  207. movd[from_mem](out r0: xmm; r1: ptr32)
  208. movd[to_reg](out r0: r32; r1: xmm)
  209. movd[to_mem](r0: ptr32; r1: xmm)
  210. movq[from_mem](out r0: xmm; r1: ptr64)
  211. movq[to_mem](r0: ptr64; r1: xmm)
  212. pmovmskb(var r0: r32; r1: xmm)
  213. pextrw[sse2](out r0: r16; r1: xmm; imm: i32)
  214. pinsrw[sse2](var r0: xmm; r1: r32; imm: i32)
  215. pinsrw[from_mem](var r0: xmm; r1: ptr16; imm: i32)
  216. packssdw(var r0: xmm; r1: xmm)
  217. packssdw[from_mem](var r0: xmm; r1: ptr128)
  218. packsswb(var r0: xmm; r1: xmm)
  219. packsswb[from_mem](var r0: xmm; r1: ptr128)
  220. packuswb(var r0: xmm; r1: xmm)
  221. packuswb[from_mem](var r0: xmm; r1: ptr128)
  222. paddb(var r0: xmm; r1: xmm)
  223. paddb[from_mem](var r0: xmm; r1: ptr128)
  224. paddw(var r0: xmm; r1: xmm)
  225. paddw[from_mem](var r0: xmm; r1: ptr128)
  226. paddd(var r0: xmm; r1: xmm)
  227. paddd[from_mem](var r0: xmm; r1: ptr128)
  228. paddq(var r0: xmm; r1: xmm)
  229. paddq[from_mem](var r0: xmm; r1: ptr128)
  230. paddsb(var r0: xmm; r1: xmm)
  231. paddsb[from_mem](var r0: xmm; r1: ptr128)
  232. paddsw(var r0: xmm; r1: xmm)
  233. paddsw[from_mem](var r0: xmm; r1: ptr128)
  234. paddusb(var r0: xmm; r1: xmm)
  235. paddusb[from_mem](var r0: xmm; r1: ptr128)
  236. paddusw(var r0: xmm; r1: xmm)
  237. paddusw[from_mem](var r0: xmm; r1: ptr128)
  238. pand(var r0: xmm; r1: xmm)
  239. pand[from_mem](var r0: xmm; r1: ptr128)
  240. pandn(var r0: xmm; r1: xmm)
  241. pandn[from_mem](var r0: xmm; r1: ptr128)
  242. por(var r0: xmm; r1: xmm)
  243. por[from_mem](var r0: xmm; r1: ptr128)
  244. pxor(var r0: xmm; r1: xmm)
  245. pxor[from_mem](var r0: xmm; r1: ptr128)
  246. pcmpeqb(var r0: xmm; r1: xmm)
  247. pcmpeqb[from_mem](var r0: xmm; r1: ptr128)
  248. pcmpeqw(var r0: xmm; r1: xmm)
  249. pcmpeqw[from_mem](var r0: xmm; r1: ptr128)
  250. pcmpeqd(var r0: xmm; r1: xmm)
  251. pcmpeqd[from_mem](var r0: xmm; r1: ptr128)
  252. pcmpgtb(var r0: xmm; r1: xmm)
  253. pcmpgtb[from_mem](var r0: xmm; r1: ptr128)
  254. pcmpgtw(var r0: xmm; r1: xmm)
  255. pcmpgtw[from_mem](var r0: xmm; r1: ptr128)
  256. pcmpgtd(var r0: xmm; r1: xmm)
  257. pcmpgtd[from_mem](var r0: xmm; r1: ptr128)
  258. pmullw(var r0: xmm; r1: xmm)
  259. pmullw[from_mem](var r0: xmm; r1: ptr128)
  260. pmulhw(var r0: xmm; r1: xmm)
  261. pmulhw[from_mem](var r0: xmm; r1: ptr128)
  262. pmulhuw[sse2](var r0: xmm; r1: xmm)
  263. pmulhuw[from_mem](var r0: xmm; r1: ptr128)
  264. pmuludq(var r0: xmm; r1: xmm)
  265. pmuludq[from_mem](var r0: xmm; r1: ptr128)
  266. psllw[sse2](var r0: xmm; r1: xmm)
  267. psllw[from_mem](var r0: xmm; r1: ptr128)
  268. psllw[sse2_imm](var r0: xmm; imm: i32)
  269. pslld[sse2](var r0: xmm; r1: xmm)
  270. pslld[from_mem](var r0: xmm; r1: ptr128)
  271. pslld[sse2_imm](var r0: xmm; imm: i32)
  272. psllq[sse2](var r0: xmm; r1: xmm)
  273. psllq[from_mem](var r0: xmm; r1: ptr128)
  274. psllq[sse2_imm](var r0: xmm; imm: i32)
  275. psrad[sse2](var r0: xmm; r1: xmm)
  276. psrad[from_mem](var r0: xmm; r1: ptr128)
  277. psrad[sse2_imm](var r0: xmm; imm: i32)
  278. psraw[sse2](var r0: xmm; r1: xmm)
  279. psraw[from_mem](var r0: xmm; r1: ptr128)
  280. psraw[sse2_imm](var r0: xmm; imm: i32)
  281. psrlw[sse2](var r0: xmm; r1: xmm)
  282. psrlw[from_mem](var r0: xmm; r1: ptr128)
  283. psrlw[sse2_imm](var r0: xmm; imm: i32)
  284. psrld[sse2](var r0: xmm; r1: xmm)
  285. psrld[from_mem](var r0: xmm; r1: ptr128)
  286. psrld[sse2_imm](var r0: xmm; imm: i32)
  287. psrlq[sse2](var r0: xmm; r1: xmm)
  288. psrlq[from_mem](var r0: xmm; r1: ptr128)
  289. psrlq[sse2_imm](var r0: xmm; imm: i32)
  290. psubb(var r0: xmm; r1: xmm)
  291. psubb[from_mem](var r0: xmm; r1: ptr128)
  292. psubw(var r0: xmm; r1: xmm)
  293. psubw[from_mem](var r0: xmm; r1: ptr128)
  294. psubd(var r0: xmm; r1: xmm)
  295. psubd[from_mem](var r0: xmm; r1: ptr128)
  296. psubq(var r0: xmm; r1: xmm)
  297. psubq[from_mem](var r0: xmm; r1: ptr128)
  298. psubsb(var r0: xmm; r1: xmm)
  299. psubsb[from_mem](var r0: xmm; r1: ptr128)
  300. psubsw(var r0: xmm; r1: xmm)
  301. psubsw[from_mem](var r0: xmm; r1: ptr128)
  302. pmaddwd(var r0: xmm; r1: xmm)
  303. pmaddwd[from_mem](var r0: xmm; r1: ptr128)
  304. psubusb(var r0: xmm; r1: xmm)
  305. psubusb[from_mem](var r0: xmm; r1: ptr128)
  306. psubusw(var r0: xmm; r1: xmm)
  307. psubusw[from_mem](var r0: xmm; r1: ptr128)
  308. punpckhbw(var r0: xmm; r1: xmm)
  309. punpckhbw[from_mem](var r0: xmm; r1: ptr128)
  310. punpckhwd(var r0: xmm; r1: xmm)
  311. punpckhwd[from_mem](var r0: xmm; r1: ptr128)
  312. punpckhdq(var r0: xmm; r1: xmm)
  313. punpckhdq[from_mem](var r0: xmm; r1: ptr128)
  314. punpcklbw(var r0: xmm; r1: xmm)
  315. punpcklbw[from_mem](var r0: xmm; r1: ptr128)
  316. punpcklwd(var r0: xmm; r1: xmm)
  317. punpcklwd[from_mem](var r0: xmm; r1: ptr128)
  318. punpckldq(var r0: xmm; r1: xmm)
  319. punpckldq[from_mem](var r0: xmm; r1: ptr128)
  320. pavgb[sse2](var r0: xmm; r1: xmm)
  321. pavgb[from_mem](var r0: xmm; r1: ptr128)
  322. pavgw[sse2](var r0: xmm; r1: xmm)
  323. pavgw[from_mem](var r0: xmm; r1: ptr128)
  324. pminub[sse2](var r0: xmm; r1: xmm)
  325. pminub[from_mem](var r0: xmm; r1: ptr128)
  326. pminsw[sse2](var r0: xmm; r1: xmm)
  327. pminsw[from_mem](var r0: xmm; r1: ptr128)
  328. pmaxsw[sse2](var r0: xmm; r1: xmm)
  329. pmaxsw[from_mem](var r0: xmm; r1: ptr128)
  330. pmaxub[sse2](var r0: xmm; r1: xmm)
  331. pmaxub[from_mem](var r0: xmm; r1: ptr128)
  332. psadbw[sse2](var r0: xmm; r1: xmm)
  333. psadbw[from_mem](var r0: xmm; r1: ptr128)
  334. ; SSE2 integer instructions
  335. maskmovdqu(addr: edi_ptr; r0: xmm; r1: xmm)
  336. movdq2q(out r0: mm; r1: xmm)
  337. movdqa[from_mem](out r0: xmm; r1: ptr128)
  338. movdqa(r0: ptr128; r1: xmm)
  339. movdqu[from_mem](out r0: xmm; r1: ptr128)
  340. movdqu(r0: ptr128; r1: xmm)
  341. movq2dq(out r0: xmm; r1: mm)
  342. movntdq(r0: ptr128; r1: xmm)
  343. pshufhw(out r0: xmm; r1: xmm; imm: i32)
  344. pshuflw(out r0: xmm; r1: xmm; imm: i32)
  345. pshufd(out r0: xmm; r1: xmm; imm: i32)
  346. pshufhw[from_mem](out r0: xmm; r1: ptr128; imm: i32)
  347. pshuflw[from_mem](out r0: xmm; r1: ptr128; imm: i32)
  348. pshufd[from_mem](out r0: xmm; r1: ptr128; imm: i32)
  349. pslldq(var r0: xmm; imm: i32)
  350. psrldq(var r0: xmm; imm: i32)
  351. punpckhqdq(var r0: xmm; r1: xmm)
  352. punpckhqdq[from_mem](var r0: xmm; r1: ptr128)
  353. punpcklqdq(var r0: xmm; r1: xmm)
  354. punpcklqdq[from_mem](var r0: xmm; r1: ptr128)
  355. ; SSE3 SIMD floating-point instructions
  356. addsubps(var r0: xmm; r1: xmm)
  357. addsubps[from_mem](var r0: xmm; r1: ptr128)
  358. addsubpd(var r0: xmm; r1: xmm)
  359. addsubpd[from_mem](var r0: xmm; r1: ptr128)
  360. movddup(out r0: xmm; r1: xmm)
  361. movddup[from_mem](out r0: xmm; r1: ptr64)
  362. movsldup(out r0: xmm; r1: xmm)
  363. movsldup[from_mem](out r0: xmm; r1: ptr128)
  364. movshdup(out r0: xmm; r1: xmm)
  365. movshdup[from_mem](out r0: xmm; r1: ptr128)
  366. haddps(var r0: xmm; r1: xmm)
  367. haddps[from_mem](var r0: xmm; r1: ptr128)
  368. haddpd(var r0: xmm; r1: xmm)
  369. haddpd[from_mem](var r0: xmm; r1: ptr128)
  370. hsubps(var r0: xmm; r1: xmm)
  371. hsubps[from_mem](var r0: xmm; r1: ptr128)
  372. hsubpd(var r0: xmm; r1: xmm)
  373. hsubpd[from_mem](var r0: xmm; r1: ptr128)
  374. ; SSE3 SIMD integer instructions
  375. lddqu(out r0: xmm; r1: ptr128)
  376. ; SSSE3
  377. psignb(var r0: xmm; r1: xmm)
  378. psignb[from_mem](var r0: xmm; r1: ptr128)
  379. psignw(var r0: xmm; r1: xmm)
  380. psignw[from_mem](var r0: xmm; r1: ptr128)
  381. psignd(var r0: xmm; r1: xmm)
  382. psignd[from_mem](var r0: xmm; r1: ptr128)
  383. pshufb(var r0: xmm; r1: xmm)
  384. pshufb[from_mem](var r0: xmm; r1: ptr128)
  385. pmulhrsw(var r0: xmm; r1: xmm)
  386. pmulhrsw[from_mem](var r0: xmm; r1: ptr128)
  387. pmaddubsw(var r0: xmm; r1: xmm)
  388. pmaddubsw[from_mem](var r0: xmm; r1: ptr128)
  389. phsubw(var r0: xmm; r1: xmm)
  390. phsubw[from_mem](var r0: xmm; r1: ptr128)
  391. phsubsw(var r0: xmm; r1: xmm)
  392. phsubsw[from_mem](var r0: xmm; r1: ptr128)
  393. phsubd(var r0: xmm; r1: xmm)
  394. phsubd[from_mem](var r0: xmm; r1: ptr128)
  395. phaddsw(var r0: xmm; r1: xmm)
  396. phaddsw[from_mem](var r0: xmm; r1: ptr128)
  397. phaddw(var r0: xmm; r1: xmm)
  398. phaddw[from_mem](var r0: xmm; r1: ptr128)
  399. phaddd(var r0: xmm; r1: xmm)
  400. phaddd[from_mem](var r0: xmm; r1: ptr128)
  401. palignr(var r0: xmm; r1: xmm; imm: i32)
  402. palignr[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  403. pabsb(out r0: xmm; r1: xmm)
  404. pabsb[from_mem](out r0: xmm; r1: ptr128)
  405. pabsw(out r0: xmm; r1: xmm)
  406. pabsw[from_mem](out r0: xmm; r1: ptr128)
  407. pabsd(out r0: xmm; r1: xmm)
  408. pabsd[from_mem](out r0: xmm; r1: ptr128)
  409. ; SSE4.1 SIMD floating-point instructions
  410. dpps(var r0: xmm; r1: xmm; imm: i32)
  411. dpps[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  412. dppd(var r0: xmm; r1: xmm; imm: i32)
  413. dppd[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  414. blendps(var r0: xmm; r1: xmm; imm: i32)
  415. blendps[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  416. blendvps(var r0: xmm; r1: xmm; mask: implicit_xmm0)
  417. blendvps[from_mem](var r0: xmm; r1: ptr128; mask: implicit_xmm0)
  418. blendpd(var r0: xmm; r1: xmm; imm: i32)
  419. blendpd[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  420. blendvpd(var r0: xmm; r1: xmm; mask: implicit_xmm0)
  421. blendvpd[from_mem](var r0: xmm; r1: ptr128; mask: implicit_xmm0)
  422. roundps(out r0: xmm; r1: xmm; imm: i32)
  423. roundps[from_mem](out r0: xmm; r1: ptr128; imm: i32)
  424. roundss(out r0: xmm; r1: xmm; imm: i32)
  425. roundss[from_mem](out r0: xmm; r1: ptr32; imm: i32)
  426. roundpd(out r0: xmm; r1: xmm; imm: i32)
  427. roundpd[from_mem](out r0: xmm; r1: ptr128; imm: i32)
  428. roundsd(out r0: f64; r1: f64; imm: i32)
  429. roundsd[from_mem](out r0: f64; r1: ptr64; imm: i32)
  430. insertps(var r0: xmm; r1: xmm; imm: i32)
  431. insertps[from_mem](var r0: xmm; r1: ptr32; imm: i32)
  432. extractps(out r0: r32; r1: xmm; imm: i32)
  433. extractps[from_mem](r0: ptr32; r1: xmm; imm: i32)
  434. ; SSE4.1 SIMD integer instructions
  435. mpsadbw(var r0: xmm; r1: xmm; imm: i32)
  436. mpsadbw[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  437. phminposuw(var r0: xmm; r1: xmm)
  438. phminposuw[from_mem](var r0: xmm; r1: ptr128)
  439. pmulld(var r0: xmm; r1: xmm)
  440. pmulld[from_mem](var r0: xmm; r1: ptr128)
  441. pmuldq(var r0: xmm; r1: xmm)
  442. pmuldq[from_mem](var r0: xmm; r1: ptr128)
  443. pblendvb(var r0: xmm; r1: xmm; mask: implicit_xmm0)
  444. pblendvb[from_mem](var r0: xmm; r1: ptr128; mask: implicit_xmm0)
  445. pblendw(var r0: xmm; r1: xmm; imm: i32)
  446. pblendw[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  447. pminsb(var r0: xmm; r1: xmm)
  448. pminsb[from_mem](var r0: xmm; r1: ptr128)
  449. pminuw(var r0: xmm; r1: xmm)
  450. pminuw[from_mem](var r0: xmm; r1: ptr128)
  451. pminsd(var r0: xmm; r1: xmm)
  452. pminsd[from_mem](var r0: xmm; r1: ptr128)
  453. pminud(var r0: xmm; r1: xmm)
  454. pminud[from_mem](var r0: xmm; r1: ptr128)
  455. pmaxsb(var r0: xmm; r1: xmm)
  456. pmaxsb[from_mem](var r0: xmm; r1: ptr128)
  457. pmaxuw(var r0: xmm; r1: xmm)
  458. pmaxuw[from_mem](var r0: xmm; r1: ptr128)
  459. pmaxsd(var r0: xmm; r1: xmm)
  460. pmaxsd[from_mem](var r0: xmm; r1: ptr128)
  461. pmaxud(var r0: xmm; r1: xmm)
  462. pmaxud[from_mem](var r0: xmm; r1: ptr128)
  463. pinsrb(var r0: xmm; r1: r32; imm: i32)
  464. pinsrb[from_mem](var r0: xmm; r1: ptr8; imm: i32)
  465. pinsrd(var r0: xmm; r1: r32; imm: i32)
  466. pinsrd[from_mem](var r0: xmm; r1: ptr32; imm: i32)
  467. pinsrq(var r0: xmm; r1: reg; imm: i32) |X86_64
  468. pinsrq[from_mem](var r0: xmm; r1: ptr64; imm: i32) |X86_64
  469. pextrb(out r0: r8; r1: xmm; imm: i32)
  470. pextrb[to_mem](r0: ptr8; r1: xmm; imm: i32)
  471. pextrw[sse41_to_mem](r0: ptr16; r1: xmm; imm: i32)
  472. pextrd(out r0: r32; r1: xmm; imm: i32)
  473. pextrd[to_mem](r0: ptr32; r1: xmm; imm: i32)
  474. pextrq(out r0: r32; r1: xmm; imm: i32) |X86_64
  475. pextrq[to_mem](r0: ptr64; r1: xmm; imm: i32) |X86_64
  476. pmovsxbw(out r0: xmm; r1: xmm)
  477. pmovsxbw[from_mem](out r0: xmm; r1: ptr64)
  478. pmovzxbw(out r0: xmm; r1: xmm)
  479. pmovzxbw[from_mem](out r0: xmm; r1: ptr64)
  480. pmovsxbd(out r0: xmm; r1: xmm)
  481. pmovsxbd[from_mem](out r0: xmm; r1: ptr32)
  482. pmovzxbd(out r0: xmm; r1: xmm)
  483. pmovzxbd[from_mem](out r0: xmm; r1: ptr32)
  484. pmovsxbq(out r0: xmm; r1: xmm)
  485. pmovsxbq[from_mem](out r0: xmm; r1: ptr16)
  486. pmovzxbq(out r0: xmm; r1: xmm)
  487. pmovzxbq[from_mem](out r0: xmm; r1: ptr16)
  488. pmovsxwd(out r0: xmm; r1: xmm)
  489. pmovsxwd[from_mem](out r0: xmm; r1: ptr64)
  490. pmovzxwd(out r0: xmm; r1: xmm)
  491. pmovzxwd[from_mem](out r0: xmm; r1: ptr64)
  492. pmovsxwq(out r0: xmm; r1: xmm)
  493. pmovsxwq[from_mem](out r0: xmm; r1: ptr32)
  494. pmovzxwq(out r0: xmm; r1: xmm)
  495. pmovzxwq[from_mem](out r0: xmm; r1: ptr32)
  496. pmovsxdq(out r0: xmm; r1: xmm)
  497. pmovsxdq[from_mem](out r0: xmm; r1: ptr64)
  498. pmovzxdq(out r0: xmm; r1: xmm)
  499. pmovzxdq[from_mem](out r0: xmm; r1: ptr64)
  500. ptest(var r0: xmm; r1: xmm)
  501. ptest[from_mem](var r0: xmm; r1: ptr128)
  502. pcmpeqq(var r0: xmm; r1: xmm)
  503. pcmpeqq[from_mem](var r0: xmm; r1: ptr128)
  504. packusdw(var r0: xmm; r1: xmm)
  505. packusdw[from_mem](var r0: xmm; r1: ptr128)
  506. movntdqa(out r0: xmm; r1: ptr128)
  507. ; SSE4.2
  508. pcmpestri(var r0: xmm; r1: xmm; imm: i32)
  509. pcmpestri[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  510. pcmpestrm(var r0: xmm; r1: xmm; imm: i32)
  511. pcmpestrm[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  512. pcmpistri(var r0: xmm; r1: xmm; imm: i32)
  513. pcmpistri[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  514. pcmpistrm(var r0: xmm; r1: xmm; imm: i32)
  515. pcmpistrm[from_mem](var r0: xmm; r1: ptr128; imm: i32)
  516. pcmpgtq(var r0: xmm; r1: xmm)
  517. pcmpgtq[from_mem](var r0: xmm; r1: ptr128)