-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathavx512.cpp
45 lines (38 loc) · 1.95 KB
/
avx512.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "common.hpp"
static Xbyak::Ymm
zmm_to_ymm(Xbyak::Zmm zmm)
{
return Xbyak::Ymm(zmm.getIdx());
}
void test_avx512() {
if (info.have_avx512f) {
GEN(Zmm, "vaddps", (g->vaddps(dst, src, src)), false, OT_FP32);
GEN(Zmm, "vaddpd", (g->vaddpd(dst, src, src)), false, OT_FP64);
GEN(Zmm, "vorps", (g->vorps(dst, src, src)), false, OT_FP32);
GEN(Zmm, "vorpd", (g->vorpd(dst, src, src)), false, OT_FP64);
GEN(Zmm, "vorps reg, reg, [mem]", (g->vorps(dst, src, g->ptr[g->rdx])), false, OT_FP32);
GEN(Zmm, "vfmaps", (g->vfmadd132ps(dst, src, src)), false, OT_FP32);
GEN(Zmm, "vfmapd", (g->vfmadd132pd(dst, src, src)), false, OT_FP64);
GEN(Zmm, "vfmaps reg, reg, [mem]", (g->vfmadd132pd(dst, src, g->ptr[g->rdx])), false, OT_FP32);
GEN(Zmm, "vpexpandd", (g->vpexpandd(dst, src)), false, OT_FP32);
GEN(Zmm, "vplzcntq", (g->vpexpandd(dst, src)), false, OT_FP32);
GEN(Zmm, "vpconflictd", (g->vpconflictd(dst, src)), false, OT_FP32);
GEN(Zmm, "vpermt2d", (g->vpermt2d(dst, src, src)), false, OT_FP32);
GEN(Zmm, "vshufps", (g->vshufps(dst, src, src, 0)), false, OT_FP32);
GEN(Zmm, "vrcp14pd", (g->vrcp14pd(dst, src)), false, OT_FP32);
GEN(Zmm, "vpternlogd", (g->vpternlogd(dst, src, src, 0)), false, OT_FP32);
}
if (info.have_avx512er) {
GEN(Zmm, "vrcp28pd", (g->vrcp28pd(dst, src)), false, OT_FP32);
}
if (info.have_avx512vnni) {
GEN(Ymm, "vpdpwssds", (g->vpdpwssds(dst, src, src)), false, OT_FP32);
GEN(Ymm, "vpdpwssd", (g->vpdpwssd(dst, src, src)), false, OT_FP32);
GEN(Zmm, "vpdpwssds", (g->vpdpwssds(dst, src, src)), false, OT_FP32);
GEN(Zmm, "vpdpwssd", (g->vpdpwssd(dst, src, src)), false, OT_FP32);
}
if (info.have_avx512bf16) {
//GEN(Ymm, "vcvtne2ps2bf16", (g->vcvtne2ps2bf16(dst, src)), false, OT_FP32);
//GEN(Zmm, "vcvtne2ps2bf16", (g->vcvtne2ps2bf16(dst, src)), false, OT_FP32);
}
}