Skip to content

Commit

Permalink
AVX-512_prototype_all_skx_insns
Browse files Browse the repository at this point in the history
This patch implements Skylake AVX-512 instruction subsets (AVX-512F, AVX-512CD, AVX-512VL, AVX-512BW, AVX-512 DQ) and refactors AVX-512 functionality in the following way:
- AVX-512 functionality is separated from the main code and only available under "AVX_512" define
- AVX-512 instruction information is moved to C structures. They can be automatically generated form a master .csv file
- Minimal AVX-512 Memcheck enabling
  • Loading branch information
TanyaMineeva authored and sasshka committed Jun 22, 2020
1 parent 8151414 commit 2a9d9c2
Show file tree
Hide file tree
Showing 90 changed files with 90,806 additions and 151 deletions.
12 changes: 12 additions & 0 deletions Makefile.vex.am
Expand Up @@ -28,6 +28,7 @@ pkginclude_HEADERS = \
pub/libvex_guest_mips64.h \
pub/libvex_s390x_common.h \
pub/libvex_ir.h \
pub/libvex_ir_AVX512.h \
pub/libvex_trc_values.h \
pub/libvex_inner.h
# libvex_inner.h is special: it is a public header for valgrind core,
Expand All @@ -36,6 +37,7 @@ pkginclude_HEADERS = \
noinst_HEADERS = \
priv/main_globals.h \
priv/main_util.h \
priv/ir_defs_AVX512.h \
priv/ir_match.h \
priv/ir_opt.h \
priv/guest_generic_bb_to_IR.h \
Expand All @@ -53,7 +55,9 @@ noinst_HEADERS = \
priv/host_generic_simd64.h \
priv/host_generic_simd128.h \
priv/host_generic_simd256.h \
priv/host_generic_AVX512.h \
priv/host_generic_maddf.h \
priv/host_generic_AVX512_ER.h \
priv/host_x86_defs.h \
priv/host_amd64_defs.h \
priv/host_ppc_defs.h \
Expand All @@ -63,6 +67,7 @@ noinst_HEADERS = \
priv/s390_disasm.h \
priv/s390_defs.h \
priv/host_mips_defs.h \
priv/main_main_AVX512.h \
priv/host_nanomips_defs.h \
priv/common_nanomips_defs.h

Expand Down Expand Up @@ -126,8 +131,10 @@ endif

LIBVEX_SOURCES_COMMON = \
priv/main_globals.c \
priv/main_main_AVX512.c \
priv/main_main.c \
priv/main_util.c \
priv/ir_defs_AVX512.c \
priv/ir_defs.c \
priv/ir_inject.c \
priv/ir_match.c \
Expand All @@ -137,6 +144,7 @@ LIBVEX_SOURCES_COMMON = \
priv/guest_x86_helpers.c \
priv/guest_x86_toIR.c \
priv/guest_amd64_helpers.c \
priv/guest_amd64_helpers_AVX512.c \
priv/guest_amd64_toIR.c \
priv/guest_ppc_helpers.c \
priv/guest_ppc_toIR.c \
Expand All @@ -155,13 +163,17 @@ LIBVEX_SOURCES_COMMON = \
priv/host_generic_simd64.c \
priv/host_generic_simd128.c \
priv/host_generic_simd256.c \
priv/host_generic_AVX512.c \
priv/host_generic_maddf.c \
priv/RECIP14.c \
priv/RECIP28EXP2.c \
priv/host_generic_reg_alloc2.c \
priv/host_generic_reg_alloc3.c \
priv/host_x86_defs.c \
priv/host_x86_isel.c \
priv/host_amd64_defs.c \
priv/host_amd64_isel.c \
priv/host_amd64_isel_AVX512.c \
priv/host_ppc_defs.c \
priv/host_ppc_isel.c \
priv/host_arm_defs.c \
Expand Down
13 changes: 13 additions & 0 deletions VEX/Makefile-gcc
@@ -1,6 +1,7 @@

PUB_HEADERS = pub/libvex_basictypes.h \
pub/libvex_ir.h \
pub/libvex_ir_AVX512.h \
pub/libvex.h \
pub/libvex_trc_values.h \
pub/libvex_emnote.h \
Expand All @@ -21,10 +22,12 @@ PRIV_HEADERS = priv/host_x86_defs.h \
priv/host_s390_defs.h \
priv/host_mips_defs.h \
priv/host_generic_maddf.h \
priv/host_generic_AVX512_ER.h \
priv/host_generic_regs.h \
priv/host_generic_simd64.h \
priv/host_generic_simd128.h \
priv/host_generic_simd256.h \
priv/host_generic_AVX512.h \
priv/main_globals.h \
priv/main_util.h \
priv/guest_generic_x87.h \
Expand Down Expand Up @@ -63,10 +66,12 @@ LIB_OBJS = priv/ir_defs.o \
priv/host_s390_isel.o \
priv/host_mips_isel.o \
priv/host_generic_maddf.o \
priv/intel-AVX512ER.o \
priv/host_generic_regs.o \
priv/host_generic_simd64.o \
priv/host_generic_simd128.o \
priv/host_generic_simd256.o \
priv/host_generic_simd512.o \
priv/host_generic_reg_alloc2.o \
priv/guest_generic_x87.o \
priv/guest_generic_bb_to_IR.o \
Expand Down Expand Up @@ -327,6 +332,10 @@ priv/host_generic_maddf.o: $(ALL_HEADERS) priv/host_generic_maddf.c
$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_generic_maddf.o \
-c priv/host_generic_maddf.c

priv/intel-AVX512ER.o: $(ALL_HEADERS) priv/RECIP14.c priv/RECIP28EXP2.c
$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/intel-AVX512ER.o \
-c priv/RECIP14.c -c priv/RECIP28EXP2.c

priv/host_generic_regs.o: $(ALL_HEADERS) priv/host_generic_regs.c
$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_generic_regs.o \
-c priv/host_generic_regs.c
Expand All @@ -343,6 +352,10 @@ priv/host_generic_simd256.o: $(ALL_HEADERS) priv/host_generic_simd256.c
$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_generic_simd256.o \
-c priv/host_generic_simd256.c

priv/host_generic_simd512.o: $(ALL_HEADERS) priv/host_generic_simd512.c
$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_generic_simd512.o \
-c priv/host_generic_simd512.c

priv/host_generic_reg_alloc2.o: $(ALL_HEADERS) priv/host_generic_reg_alloc2.c
$(CC) $(CCFLAGS) $(ALL_INCLUDES) -o priv/host_generic_reg_alloc2.o \
-c priv/host_generic_reg_alloc2.c
Expand Down

0 comments on commit 2a9d9c2

Please sign in to comment.