aboutsummaryrefslogtreecommitdiff
path: root/avx.h
diff options
context:
space:
mode:
authorrodri <rgl@antares-labs.eu>2023-11-25 10:34:41 +0000
committerrodri <rgl@antares-labs.eu>2023-11-25 10:34:41 +0000
commit675aa84403f98776a7d463e1cc5f9bd41cdbab92 (patch)
tree7c0f2fbb1814c5a9f8975307da8e79b0c0165d89 /avx.h
parentcc3307440e698d58843a5273519f4988c01937f1 (diff)
downloadamd64-simd-675aa84403f98776a7d463e1cc5f9bd41cdbab92.tar.gz
amd64-simd-675aa84403f98776a7d463e1cc5f9bd41cdbab92.tar.bz2
amd64-simd-675aa84403f98776a7d463e1cc5f9bd41cdbab92.zip
cleaned things up and improved the organization a bit.
Diffstat (limited to 'avx.h')
-rw-r--r--avx.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/avx.h b/avx.h
index d2c6d08..3c7129c 100644
--- a/avx.h
+++ b/avx.h
@@ -45,6 +45,26 @@
#define VMOVAPD_256rr(s, d) VEX3(0,0,0,VEX_m_0F,0,0,VEX_L_256,VEX_p_66); \
VOP(0x28, 0x3, (d), (s))
+/* VMOVDQA */
+#define VMOVDQA_128mr(off, s, d) VEX3(0,0,0,VEX_m_0F,0,0,VEX_L_128,VEX_p_66); \
+ VOPi(0x6F, 0x1, (d), (s), (off))
+#define VMOVDQA_128rm(s, d) VEX3(0,0,0,VEX_m_0F,0,0,VEX_L_128,VEX_p_66); \
+ VOP(0x7F, 0x3, (s), (d))
+#define VMOVDQA_256mr(off, s, d) VEX3(0,0,0,VEX_m_0F,0,0,VEX_L_256,VEX_p_66); \
+ VOPi(0x6F, 0x1, (d), (s), (off))
+#define VMOVDQA_256rm(s, d) VEX3(0,0,0,VEX_m_0F,0,0,VEX_L_256,VEX_p_66); \
+ VOP(0x7F, 0x3, (s), (d))
+
+/* VMODQU */
+#define VMOVDQU_128mr(off, s, d) VEX3(0,0,0,VEX_m_0F,0,0,VEX_L_128,VEX_p_F3); \
+ VOPi(0x6F, 0x1, (d), (s), (off))
+#define VMOVDQU_128rm(s, d) VEX3(0,0,0,VEX_m_0F,0,0,VEX_L_128,VEX_p_F3); \
+ VOP(0x7F, 0x3, (s), (d))
+#define VMOVDQU_256mr(off, s, d) VEX3(0,0,0,VEX_m_0F,0,0,VEX_L_256,VEX_p_F3); \
+ VOPi(0x6F, 0x1, (d), (s), (off))
+#define VMOVDQU_256rm(s, d) VEX3(0,0,0,VEX_m_0F,0,0,VEX_L_256,VEX_p_F3); \
+ VOP(0x7F, 0x3, (s), (d))
+
/* VADDPD */
#define VADDPD_128mr(off, s0, s1, d) VEX3(0,0,0,VEX_m_0F,0,(s0),VEX_L_128,VEX_p_66); \
VOPi(0x58, 0x1, (d), (s1), (off))