Codebase list libisal / ae3c91a
build: Set assembler feature level in std make Also fix multibinary to try each available arch Change-Id: Icd8496d169665bded478a33a02e739d1f8349b6f Signed-off-by: Greg Tucker <greg.b.tucker@intel.com> Greg Tucker 4 years ago
2 changed file(s) with 20 addition(s) and 6 deletion(s). Raw diff Collapse all Expand all
391391 %endmacro
392392 %else
393393 %macro mbin_dispatch_init7 7
394 mbin_dispatch_init5 %1, %2, %3, %4, %5
394 mbin_dispatch_init6 %1, %2, %3, %4, %5, %6
395395 %endmacro
396396 %endif
397397
163163 $(all_llvm_fuzz_tests): % : %.o $(lib_name)
164164 $(CXX) $(CXXFLAGS) $^ $(LDLIBS) $(FUZZLINK) -o $@
165165
166
166167 # Check for modern as
167 tmpfile := $(shell mktemp)
168 have_as_w_avx512 ?= $(shell printf "vinserti32x8 zmm0, ymm1, 1;" > ${tmpfile} && $(AS) $(ASFLAGS) ${tmpfile} -o /dev/null 2> /dev/null && echo y; rm ${tmpfile})
169 D_HAVE_AS_KNOWS_AVX512_$(have_as_w_avx512) := -DHAVE_AS_KNOWS_AVX512
170 CFLAGS += $(D_HAVE_AS_KNOWS_AVX512_y)
171 ASFLAGS += $(D_HAVE_AS_KNOWS_AVX512_y)
168 test-as = $(shell hash printf && printf $(3) > $(2) && $(AS) $(ASFLAGS) ${tmpf} -o /dev/null 2> /dev/null && echo $(1) || echo $(4))
169 as_4 := "pblendvb xmm2, xmm1;"
170 as_6 := "vinserti32x8 zmm0, ymm1, 1;"
171 as_10 := "vpcompressb zmm0 {k1}, zmm1;"
172
173 tmpf := $(shell mktemp)
174 as_feature_level := $(call test-as, 4, $(tmpf), $(as_4), $(as_feature_level))
175 as_feature_level := $(call test-as, 6, $(tmpf), $(as_6), $(as_feature_level))
176 as_feature_level := $(call test-as, 10, $(tmpf), $(as_10), $(as_feature_level))
177 tmpf := $(shell rm ${tmpf})
178
179 ifneq ($(findstring $(as_feature_level),6 10),)
180 D_HAVE_AS_KNOWS_AVX512_y := -DHAVE_AS_KNOWS_AVX512
181 endif
182
183 CFLAGS += -DAS_FEATURE_LEVEL=$(as_feature_level) $(D_HAVE_AS_KNOWS_AVX512_y)
184 ASFLAGS += -DAS_FEATURE_LEVEL=$(as_feature_level) $(D_HAVE_AS_KNOWS_AVX512_y)
185
172186
173187 # Check for pthreads
174188 have_threads ?= $(shell printf "\#include <pthread.h>\nint main(void){return 0;}\n" | $(CC) -x c - -o /dev/null -lpthread && echo y )