aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <[email protected]>2024-10-11 17:44:53 +0900
committerMITSUNARI Shigeo <[email protected]>2024-10-13 13:51:06 +0900
commit56fc5457eb15920f93be9b77cce3b5098b5879d7 (patch)
tree8519332c6adf820a51012106fa3f3cb306e56e1d /test
parent8457f52cbbac53345ac3211e50a3828c251dc22f (diff)
downloadxbyak-56fc5457eb15920f93be9b77cce3b5098b5879d7.tar.gz
xbyak-56fc5457eb15920f93be9b77cce3b5098b5879d7.zip
add avx10 compare and convert instructions
Diffstat (limited to 'test')
-rw-r--r--test/Makefile2
-rw-r--r--test/avx10/comp.txt17
-rw-r--r--test/avx10/convert.txt176
3 files changed, 194 insertions, 1 deletions
diff --git a/test/Makefile b/test/Makefile
index 4d0b85d..336dcaf 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -60,7 +60,7 @@ apx: apx.cpp $(XBYAK_INC)
avx10_test: avx10_test.cpp $(XBYAK_INC)
$(CXX) $(CFLAGS) avx10_test.cpp -o $@ -DXBYAK64
-TEST_FILES=old.txt new-ymm.txt bf16.txt
+TEST_FILES=old.txt new-ymm.txt bf16.txt comp.txt convert.txt
xed_test:
@for target in $(addprefix avx10/, $(TEST_FILES)); do ./test_by_xed.sh $$target; done
diff --git a/test/avx10/comp.txt b/test/avx10/comp.txt
new file mode 100644
index 0000000..bfc883e
--- /dev/null
+++ b/test/avx10/comp.txt
@@ -0,0 +1,17 @@
+vcomxsd(xm1, xm2|T_sae);
+vcomxsd(xm1, ptr[rax+128]);
+
+vcomxsh(xm1, xm2|T_sae);
+vcomxsh(xm1, ptr[rax+128]);
+
+vcomxss(xm1, xm2|T_sae);
+vcomxss(xm1, ptr[rax+128]);
+
+vucomxsd(xm1, xm2|T_sae);
+vucomxsd(xm1, ptr[rax+128]);
+
+vucomxsh(xm1, xm2|T_sae);
+vucomxsh(xm1, ptr[rax+128]);
+
+vucomxss(xm1, xm2|T_sae);
+vucomxss(xm1, ptr[rax+128]);
diff --git a/test/avx10/convert.txt b/test/avx10/convert.txt
new file mode 100644
index 0000000..836fcca
--- /dev/null
+++ b/test/avx10/convert.txt
@@ -0,0 +1,176 @@
+vcvt2ps2phx(xm1|k5, xm2, xm3);
+vcvt2ps2phx(xm1|k5, xm2, ptr[rax+128]);
+vcvt2ps2phx(xm1|k5, xm2, ptr_b[rax+128]);
+
+vcvt2ps2phx(ym1|k5, ym2, ym3);
+vcvt2ps2phx(ym1|k5, ym2, ptr[rax+128]);
+vcvt2ps2phx(ym1|k5, ym2, ptr_b[rax+128]);
+
+vcvt2ps2phx(zm1|k5, zm2, zm3);
+vcvt2ps2phx(zm1|k5, zm2, ptr[rax+128]);
+vcvt2ps2phx(zm1|k5, zm2, ptr_b[rax+128]);
+
+// vcvtbiasph2hf8
+vcvtbiasph2bf8(xm1|k2, xm3, xm5);
+vcvtbiasph2bf8(xm1|k2, xm3, ptr[rax+128]);
+vcvtbiasph2bf8(xm1|k2, xm3, ptr_b[rax+128]);
+
+vcvtbiasph2bf8(xm1|k2, ym3, ym5);
+vcvtbiasph2bf8(xm1|k2, ym3, ptr[rax+128]);
+vcvtbiasph2bf8(xm1|k2, ym3, ptr_b[rax+128]);
+
+vcvtbiasph2bf8(ym1|k2, zm3, zm5);
+vcvtbiasph2bf8(ym1|k2, zm3, ptr[rax+128]);
+vcvtbiasph2bf8(ym1|k2, zm3, ptr_b[rax+128]);
+
+// vcvtbiasph2bf8s
+vcvtbiasph2bf8s(xm1|k2, xm3, xm5);
+vcvtbiasph2bf8s(xm1|k2, xm3, ptr[rax+128]);
+vcvtbiasph2bf8s(xm1|k2, xm3, ptr_b[rax+128]);
+
+vcvtbiasph2bf8s(xm1|k2, ym3, ym5);
+vcvtbiasph2bf8s(xm1|k2, ym3, ptr[rax+128]);
+vcvtbiasph2bf8s(xm1|k2, ym3, ptr_b[rax+128]);
+
+vcvtbiasph2bf8s(ym1|k2, zm3, zm5);
+vcvtbiasph2bf8s(ym1|k2, zm3, ptr[rax+128]);
+vcvtbiasph2bf8s(ym1|k2, zm3, ptr_b[rax+128]);
+
+// vcvtbiasph2hf8
+vcvtbiasph2hf8(xm1|k2, xm3, xm5);
+vcvtbiasph2hf8(xm1|k2, xm3, ptr[rax+128]);
+vcvtbiasph2hf8(xm1|k2, xm3, ptr_b[rax+128]);
+
+vcvtbiasph2hf8(xm1|k2, ym3, ym5);
+vcvtbiasph2hf8(xm1|k2, ym3, ptr[rax+128]);
+vcvtbiasph2hf8(xm1|k2, ym3, ptr_b[rax+128]);
+
+vcvtbiasph2hf8(ym1|k2, zm3, zm5);
+vcvtbiasph2hf8(ym1|k2, zm3, ptr[rax+128]);
+vcvtbiasph2hf8(ym1|k2, zm3, ptr_b[rax+128]);
+
+// vcvtbiasph2hf8s
+vcvtbiasph2hf8s(xm1|k2, xm3, xm5);
+vcvtbiasph2hf8s(xm1|k2, xm3, ptr[rax+128]);
+vcvtbiasph2hf8s(xm1|k2, xm3, ptr_b[rax+128]);
+
+vcvtbiasph2hf8s(xm1|k2, ym3, ym5);
+vcvtbiasph2hf8s(xm1|k2, ym3, ptr[rax+128]);
+vcvtbiasph2hf8s(xm1|k2, ym3, ptr_b[rax+128]);
+
+vcvtbiasph2hf8s(ym1|k2, zm3, zm5);
+vcvtbiasph2hf8s(ym1|k2, zm3, ptr[rax+128]);
+vcvtbiasph2hf8s(ym1|k2, zm3, ptr_b[rax+128]);
+
+vcvthf82ph(xm1|k5|T_z, xm2);
+vcvthf82ph(xm1|k5|T_z, ptr[rax+128]);
+
+vcvthf82ph(ym1|k5|T_z, xm2);
+vcvthf82ph(ym1|k5|T_z, ptr[rax+128]);
+
+vcvthf82ph(zm1|k5|T_z, ym2);
+vcvthf82ph(zm1|k5|T_z, ptr[rax+128]);
+
+//
+vcvtne2ph2bf8(xm1|k4|T_z, xm2, xm3);
+vcvtne2ph2bf8(xm1|k4, xm2, ptr[rax+128]);
+vcvtne2ph2bf8(xm1|T_z, xm2, ptr_b[rax+128]);
+
+vcvtne2ph2bf8(ym1|k4|T_z, ym2, ym3);
+vcvtne2ph2bf8(ym1|k4, ym2, ptr[rax+128]);
+vcvtne2ph2bf8(ym1|T_z, ym2, ptr_b[rax+128]);
+
+vcvtne2ph2bf8(zm1|k4|T_z, zm2, zm3);
+vcvtne2ph2bf8(zm1|k4, zm2, ptr[rax+128]);
+vcvtne2ph2bf8(zm1|T_z, zm2, ptr_b[rax+128]);
+
+//
+vcvtne2ph2bf8s(xm1|k4|T_z, xm2, xm3);
+vcvtne2ph2bf8s(xm1|k4, xm2, ptr[rax+128]);
+vcvtne2ph2bf8s(xm1|T_z, xm2, ptr_b[rax+128]);
+
+vcvtne2ph2bf8s(ym1|k4|T_z, ym2, ym3);
+vcvtne2ph2bf8s(ym1|k4, ym2, ptr[rax+128]);
+vcvtne2ph2bf8s(ym1|T_z, ym2, ptr_b[rax+128]);
+
+vcvtne2ph2bf8s(zm1|k4|T_z, zm2, zm3);
+vcvtne2ph2bf8s(zm1|k4, zm2, ptr[rax+128]);
+vcvtne2ph2bf8s(zm1|T_z, zm2, ptr_b[rax+128]);
+
+//
+vcvtne2ph2hf8(xm1|k4|T_z, xm2, xm3);
+vcvtne2ph2hf8(xm1|k4, xm2, ptr[rax+128]);
+vcvtne2ph2hf8(xm1|T_z, xm2, ptr_b[rax+128]);
+
+vcvtne2ph2hf8(ym1|k4|T_z, ym2, ym3);
+vcvtne2ph2hf8(ym1|k4, ym2, ptr[rax+128]);
+vcvtne2ph2hf8(ym1|T_z, ym2, ptr_b[rax+128]);
+
+vcvtne2ph2hf8(zm1|k4|T_z, zm2, zm3);
+vcvtne2ph2hf8(zm1|k4, zm2, ptr[rax+128]);
+vcvtne2ph2hf8(zm1|T_z, zm2, ptr_b[rax+128]);
+
+//
+vcvtne2ph2hf8s(xm1|k4|T_z, xm2, xm3);
+vcvtne2ph2hf8s(xm1|k4, xm2, ptr[rax+128]);
+vcvtne2ph2hf8s(xm1|T_z, xm2, ptr_b[rax+128]);
+
+vcvtne2ph2hf8s(ym1|k4|T_z, ym2, ym3);
+vcvtne2ph2hf8s(ym1|k4, ym2, ptr[rax+128]);
+vcvtne2ph2hf8s(ym1|T_z, ym2, ptr_b[rax+128]);
+
+vcvtne2ph2hf8s(zm1|k4|T_z, zm2, zm3);
+vcvtne2ph2hf8s(zm1|k4, zm2, ptr[rax+128]);
+vcvtne2ph2hf8s(zm1|T_z, zm2, ptr_b[rax+128]);
+
+// vcvtneph2bf8
+vcvtneph2bf8(xmm1|k2|T_z, xmm2);
+vcvtneph2bf8(xmm1|k2|T_z, xword [rax+128]);
+vcvtneph2bf8(xmm1|k2|T_z, xword_b[rax+128]);
+
+vcvtneph2bf8(xmm1|k2|T_z, ymm2);
+vcvtneph2bf8(xmm1|k2|T_z, yword[rax+128]);
+vcvtneph2bf8(xmm1|k2|T_z, yword_b[rax+128]);
+
+vcvtneph2bf8(ymm1|k2|T_z, zmm2);
+vcvtneph2bf8(ymm1|k2|T_z, zword[rax+128]);
+vcvtneph2bf8(ymm1|k2|T_z, zword_b[rax+128]);
+
+// vcvtneph2bf8s
+vcvtneph2bf8s(xmm1|k2|T_z, xmm2);
+vcvtneph2bf8s(xmm1|k2|T_z, xword [rax+128]);
+vcvtneph2bf8s(xmm1|k2|T_z, xword_b[rax+128]);
+
+vcvtneph2bf8s(xmm1|k2|T_z, ymm2);
+vcvtneph2bf8s(xmm1|k2|T_z, yword[rax+128]);
+vcvtneph2bf8s(xmm1|k2|T_z, yword_b[rax+128]);
+
+vcvtneph2bf8s(ymm1|k2|T_z, zmm2);
+vcvtneph2bf8s(ymm1|k2|T_z, zword[rax+128]);
+vcvtneph2bf8s(ymm1|k2|T_z, zword_b[rax+128]);
+
+// vcvtneph2hf8
+vcvtneph2hf8(xmm1|k2|T_z, xmm2);
+vcvtneph2hf8(xmm1|k2|T_z, xword [rax+128]);
+vcvtneph2hf8(xmm1|k2|T_z, xword_b[rax+128]);
+
+vcvtneph2hf8(xmm1|k2|T_z, ymm2);
+vcvtneph2hf8(xmm1|k2|T_z, yword[rax+128]);
+vcvtneph2hf8(xmm1|k2|T_z, yword_b[rax+128]);
+
+vcvtneph2hf8(ymm1|k2|T_z, zmm2);
+vcvtneph2hf8(ymm1|k2|T_z, zword[rax+128]);
+vcvtneph2hf8(ymm1|k2|T_z, zword_b[rax+128]);
+
+// vcvtneph2hf8s
+vcvtneph2hf8s(xmm1|k2|T_z, xmm2);
+vcvtneph2hf8s(xmm1|k2|T_z, xword [rax+128]);
+vcvtneph2hf8s(xmm1|k2|T_z, xword_b[rax+128]);
+
+vcvtneph2hf8s(xmm1|k2|T_z, ymm2);
+vcvtneph2hf8s(xmm1|k2|T_z, yword[rax+128]);
+vcvtneph2hf8s(xmm1|k2|T_z, yword_b[rax+128]);
+
+vcvtneph2hf8s(ymm1|k2|T_z, zmm2);
+vcvtneph2hf8s(ymm1|k2|T_z, zword[rax+128]);
+vcvtneph2hf8s(ymm1|k2|T_z, zword_b[rax+128]);