summaryrefslogtreecommitdiff
path: root/test/vgather.asm
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@linux.intel.com>2011-06-22 18:20:28 -0700
committerH. Peter Anvin <hpa@linux.intel.com>2011-06-22 18:20:28 -0700
commit95adeabff5f9bf8faf9c4225002e2a8c949db330 (patch)
tree6b0450ed99eb8c75b86c9138a61507988200551e /test/vgather.asm
parent3089f7ef8a034ad57aac16489f76426fe3bcb8c4 (diff)
downloadnasm-95adeabff5f9bf8faf9c4225002e2a8c949db330.tar.gz
nasm-95adeabff5f9bf8faf9c4225002e2a8c949db330.tar.bz2
nasm-95adeabff5f9bf8faf9c4225002e2a8c949db330.zip
Implement the VGATHERP instruction
As an initial test of the VSIB handling, implement the VGATHERP instruction. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'test/vgather.asm')
-rw-r--r--test/vgather.asm76
1 files changed, 76 insertions, 0 deletions
diff --git a/test/vgather.asm b/test/vgather.asm
new file mode 100644
index 0000000..4012bf2
--- /dev/null
+++ b/test/vgather.asm
@@ -0,0 +1,76 @@
+ bits 64
+
+ vgatherdpd xmm0,[rcx+xmm2],xmm3
+ vgatherqpd xmm0,[rcx+xmm2],xmm3
+ vgatherdpd ymm0,[rcx+xmm2],ymm3
+ vgatherqpd ymm0,[rcx+ymm2],ymm3
+
+ vgatherdpd xmm0,[rcx+xmm2*1],xmm3
+ vgatherqpd xmm0,[rcx+xmm2*1],xmm3
+ vgatherdpd ymm0,[rcx+xmm2*1],ymm3
+ vgatherqpd ymm0,[rcx+ymm2*1],ymm3
+
+ vgatherdpd xmm0,[rcx+xmm2*2],xmm3
+ vgatherqpd xmm0,[rcx+xmm2*2],xmm3
+ vgatherdpd ymm0,[rcx+xmm2*2],ymm3
+ vgatherqpd ymm0,[rcx+ymm2*2],ymm3
+
+ vgatherdpd xmm0,[rcx+xmm2*4],xmm3
+ vgatherqpd xmm0,[rcx+xmm2*4],xmm3
+ vgatherdpd ymm0,[rcx+xmm2*4],ymm3
+ vgatherqpd ymm0,[rcx+ymm2*4],ymm3
+
+ vgatherdpd xmm0,[rcx+xmm2*8],xmm3
+ vgatherqpd xmm0,[rcx+xmm2*8],xmm3
+ vgatherdpd ymm0,[rcx+xmm2*8],ymm3
+ vgatherqpd ymm0,[rcx+ymm2*8],ymm3
+
+ vgatherdpd xmm0,[xmm2],xmm3
+ vgatherqpd xmm0,[xmm2],xmm3
+ vgatherdpd ymm0,[xmm2],ymm3
+ vgatherqpd ymm0,[ymm2],ymm3
+
+ vgatherdpd xmm0,[xmm2*1],xmm3
+ vgatherqpd xmm0,[xmm2*1],xmm3
+ vgatherdpd ymm0,[xmm2*1],ymm3
+ vgatherqpd ymm0,[ymm2*1],ymm3
+
+ vgatherdpd xmm0,[xmm2*2],xmm3
+ vgatherqpd xmm0,[xmm2*2],xmm3
+ vgatherdpd ymm0,[xmm2*2],ymm3
+ vgatherqpd ymm0,[ymm2*2],ymm3
+
+ vgatherdpd xmm0,[xmm2*4],xmm3
+ vgatherqpd xmm0,[xmm2*4],xmm3
+ vgatherdpd ymm0,[xmm2*4],ymm3
+ vgatherqpd ymm0,[ymm2*4],ymm3
+
+ vgatherdpd xmm0,[xmm2*8],xmm3
+ vgatherqpd xmm0,[xmm2*8],xmm3
+ vgatherdpd ymm0,[xmm2*8],ymm3
+ vgatherqpd ymm0,[ymm2*8],ymm3
+
+ vgatherdpd xmm0,[xmm2+rcx],xmm3
+ vgatherqpd xmm0,[xmm2+rcx],xmm3
+ vgatherdpd ymm0,[xmm2+rcx],ymm3
+ vgatherqpd ymm0,[ymm2+rcx],ymm3
+
+ vgatherdpd xmm0,[xmm2*1+rcx],xmm3
+ vgatherqpd xmm0,[xmm2*1+rcx],xmm3
+ vgatherdpd ymm0,[xmm2*1+rcx],ymm3
+ vgatherqpd ymm0,[ymm2*1+rcx],ymm3
+
+ vgatherdpd xmm0,[xmm2*2+rcx],xmm3
+ vgatherqpd xmm0,[xmm2*2+rcx],xmm3
+ vgatherdpd ymm0,[xmm2*2+rcx],ymm3
+ vgatherqpd ymm0,[ymm2*2+rcx],ymm3
+
+ vgatherdpd xmm0,[xmm2*4+rcx],xmm3
+ vgatherqpd xmm0,[xmm2*4+rcx],xmm3
+ vgatherdpd ymm0,[xmm2*4+rcx],ymm3
+ vgatherqpd ymm0,[ymm2*4+rcx],ymm3
+
+ vgatherdpd xmm0,[xmm2*8+rcx],xmm3
+ vgatherqpd xmm0,[xmm2*8+rcx],xmm3
+ vgatherdpd ymm0,[xmm2*8+rcx],ymm3
+ vgatherqpd ymm0,[ymm2*8+rcx],ymm3