@@ -156,6 +156,27 @@ define gen_tests
156156 $(TRIGGER_VENDOR_INST ) $(TRIGGER_SKIP_DEFAULT_INST )
157157endef
158158
159+ # Helper to run clang-format over generated C files in a folder
160+ define clang_format_c
161+ clang-format -i $(1 ) /*.c
162+ endef
163+
164+ define gen_test_rule
165+ $(call gen_tests,$(1 ) ,$(2 ) ,$(3 ) $(EXTRA_FLAG ) )
166+ $(call gen_tests,$(4 ) ,$(2 ) ,--has-policy $(3 ) $(EXTRA_FLAG ) )
167+ $(if $(filter --toolchain-type gnu,$(3 ) ) ,,$(call clang_format_c,$(1 ) ) )
168+ $(if $(filter --toolchain-type gnu,$(3 ) ) ,,$(call clang_format_c,$(4 ) ) )
169+ endef
170+
171+ define gen_llvm_test_rule
172+ $(call gen_tests,$(1 ) ,$(2 ) ,--toolchain-type llvm $(strip $(3 ) ) $(EXTRA_FLAG ) )
173+ $(call gen_tests,$(4 ) ,$(2 ) ,--toolchain-type llvm --has-policy $(strip $(3 ) ) $(EXTRA_FLAG ) )
174+ $(call replace_float, $(1 ) )
175+ $(call replace_float, $(4 ) )
176+ $(call clang_format_c,$(1 ) )
177+ $(call clang_format_c,$(4 ) )
178+ endef
179+
159180# Compile all *.c under $(1) with $(2), then pretty-print with testing-report
160181# $(1): Path to testing folder, containing .c files
161182# $(2): Path to compiler
@@ -214,45 +235,27 @@ overloaded-docs:
214235
215236# Generate non-overloaded intrinsic testing C source files
216237non-overloaded-test :
217- $(call gen_tests,$(DIR ) /api-testing,non-overloaded-test,$(EXTRA_FLAG ) )
218- $(call gen_tests,$(POLICY_DIR ) /api-testing,non-overloaded-test,--has-policy $(EXTRA_FLAG ) )
219- clang-format -i $(DIR ) /api-testing/*
220- clang-format -i $(POLICY_DIR ) /api-testing/*
238+ $(call gen_test_rule,$(DIR ) /api-testing,non-overloaded-test,, $(POLICY_DIR ) /api-testing)
221239
222240# Generate overloaded intrinsic testing C source files
223241overloaded-test :
224- $(call gen_tests,$(DIR ) /overloaded-api-testing,overloaded-test,$(EXTRA_FLAG ) )
225- $(call gen_tests,$(POLICY_DIR ) /overloaded-api-testing,overloaded-test,--has-policy $(EXTRA_FLAG ) )
226- clang-format -i $(DIR ) /overloaded-api-testing/*
227- clang-format -i $(POLICY_DIR ) /overloaded-api-testing/*
242+ $(call gen_test_rule,$(DIR ) /overloaded-api-testing,overloaded-test,, $(POLICY_DIR ) /overloaded-api-testing)
228243
229244# Generate non-overloaded intrinsic testing C source files
230245llvm-non-overloaded-test :
231- $(call gen_tests,$(DIR ) /llvm-api-tests,non-overloaded-test,--toolchain-type llvm $(EXTRA_FLAG ) )
232- $(call gen_tests,$(POLICY_DIR ) /llvm-api-tests,non-overloaded-test,--toolchain-type llvm --has-policy $(EXTRA_FLAG ) )
233- $(call replace_float, $(DIR ) /llvm-api-tests)
234- $(call replace_float, $(POLICY_DIR ) /llvm-api-tests)
235- clang-format -i $(DIR ) /llvm-api-tests/*
236- clang-format -i $(POLICY_DIR ) /llvm-api-tests/*
246+ $(call gen_llvm_test_rule,$(DIR ) /llvm-api-tests,non-overloaded-test,,$(POLICY_DIR ) /llvm-api-tests)
237247
238248# Generate overloaded intrinsic testing C source files
239249llvm-overloaded-test :
240- $(call gen_tests,$(DIR ) /llvm-overloaded-tests,overloaded-test,--toolchain-type llvm $(EXTRA_FLAG ) )
241- $(call gen_tests,$(POLICY_DIR ) /llvm-overloaded-tests,overloaded-test,--toolchain-type llvm --has-policy $(EXTRA_FLAG ) )
242- $(call replace_float, $(DIR ) /llvm-overloaded-tests)
243- $(call replace_float, $(POLICY_DIR ) /llvm-overloaded-tests)
244- clang-format -i $(DIR ) /llvm-overloaded-tests/*
245- clang-format -i $(POLICY_DIR ) /llvm-overloaded-tests/*
250+ $(call gen_llvm_test_rule,$(DIR ) /llvm-overloaded-tests,overloaded-test,,$(POLICY_DIR ) /llvm-overloaded-tests)
246251
247252# Generate GNU non-overloaded intrinsic testing source files
248253gnu-non-overloaded-test :
249- $(call gen_tests,$(DIR ) /gnu-api-tests,non-overloaded-test,--toolchain-type gnu)
250- $(call gen_tests,$(POLICY_DIR ) /gnu-api-tests,non-overloaded-test,--toolchain-type gnu --has-policy)
254+ $(call gen_test_rule,$(DIR ) /gnu-api-tests,non-overloaded-test,--toolchain-type gnu,$(POLICY_DIR ) /gnu-api-tests)
251255
252256# Generate GNU overloaded intrinsic testing source files
253257gnu-overloaded-test :
254- $(call gen_tests,$(DIR ) /gnu-overloaded-tests,overloaded-test,--toolchain-type gnu)
255- $(call gen_tests,$(POLICY_DIR ) /gnu-overloaded-tests,overloaded-test,--toolchain-type gnu --has-policy)
258+ $(call gen_test_rule,$(DIR ) /gnu-overloaded-tests,overloaded-test,--toolchain-type gnu,$(POLICY_DIR ) /gnu-overloaded-tests)
256259
257260# BFloat16 documents
258261bf16-non-overloaded-doc :
@@ -270,35 +273,19 @@ bf16-overloaded-docs:
270273# BFloat16 tests
271274# Generate non-overloaded intrinsic testing C source files
272275bf16-non-overloaded-test :
273- $(call gen_tests,$(BF16_DIR ) /api-testing,non-overloaded-test,--skip-default-inst --vendor-inst $(BF16_INST ) )
274- $(call gen_tests,$(BF16_POLICY_DIR ) /api-testing,non-overloaded-test,--has-policy --skip-default-inst --vendor-inst $(BF16_INST ) )
275- clang-format -i $(BF16_DIR ) /api-testing/*
276- clang-format -i $(BF16_POLICY_DIR ) /api-testing/*
276+ $(call gen_test_rule,$(BF16_DIR ) /api-testing,non-overloaded-test,--skip-default-inst --vendor-inst $(BF16_INST ) ,$(BF16_POLICY_DIR ) /api-testing)
277277
278278# Generate overloaded intrinsic testing C source files
279279bf16-overloaded-test :
280- $(call gen_tests,$(BF16_DIR ) /overloaded-api-testing,overloaded-test,--skip-default-inst --vendor-inst $(BF16_INST ) )
281- $(call gen_tests,$(BF16_POLICY_DIR ) /overloaded-api-testing,overloaded-test,--has-policy --skip-default-inst --vendor-inst $(BF16_INST ) )
282- clang-format -i $(BF16_DIR ) /overloaded-api-testing/*
283- clang-format -i $(BF16_POLICY_DIR ) /overloaded-api-testing/*
280+ $(call gen_test_rule,$(BF16_DIR ) /overloaded-api-testing,overloaded-test,--skip-default-inst --vendor-inst $(BF16_INST ) ,$(BF16_POLICY_DIR ) /overloaded-api-testing)
284281
285282# Generate non-overloaded intrinsic testing C source files
286283bf16-llvm-non-overloaded-test :
287- $(call gen_tests,$(BF16_DIR ) /llvm-api-tests,non-overloaded-test,--toolchain-type llvm --skip-default-inst --vendor-inst $(BF16_INST ) )
288- $(call gen_tests,$(BF16_POLICY_DIR ) /llvm-api-tests,non-overloaded-test,--toolchain-type llvm --has-policy --skip-default-inst --vendor-inst $(BF16_INST ) )
289- $(call replace_float, $(BF16_DIR ) /llvm-api-tests)
290- $(call replace_float, $(BF16_POLICY_DIR ) /llvm-api-tests)
291- clang-format -i $(BF16_DIR ) /llvm-api-tests/*
292- clang-format -i $(BF16_POLICY_DIR ) /llvm-api-tests/*
284+ $(call gen_llvm_test_rule,$(BF16_DIR ) /llvm-api-tests,non-overloaded-test,--skip-default-inst --vendor-inst $(BF16_INST ) ,$(BF16_POLICY_DIR ) /llvm-api-tests)
293285
294286# Generate overloaded intrinsic testing C source files
295287bf16-llvm-overloaded-test :
296- $(call gen_tests,$(BF16_DIR ) /llvm-overloaded-tests,overloaded-test,--toolchain-type llvm --skip-default-inst --vendor-inst $(BF16_INST ) )
297- $(call gen_tests,$(BF16_POLICY_DIR ) /llvm-overloaded-tests,overloaded-test,--toolchain-type llvm --has-policy --skip-default-inst --vendor-inst $(BF16_INST ) )
298- $(call replace_float, $(BF16_DIR ) /llvm-overloaded-tests)
299- $(call replace_float, $(BF16_POLICY_DIR ) /llvm-overloaded-tests)
300- clang-format -i $(BF16_DIR ) /llvm-overloaded-tests/*
301- clang-format -i $(BF16_POLICY_DIR ) /llvm-overloaded-tests/*
288+ $(call gen_llvm_test_rule,$(BF16_DIR ) /llvm-overloaded-tests,overloaded-test,--skip-default-inst --vendor-inst $(BF16_INST ) ,$(BF16_POLICY_DIR ) /llvm-overloaded-tests)
302289
303290# Vector crypto documents
304291vector-crypto-non-overloaded-doc :
@@ -315,32 +302,16 @@ vector-crypto-overloaded-docs:
315302
316303# Vector-crypto tests
317304vector-crypto-non-overloaded-test :
318- $(call gen_tests,$(VECTOR_CRYPTO_DIR ) /api-testing,non-overloaded-test,--gen-vector-crypto $(EXTRA_FLAG ) )
319- $(call gen_tests,$(VECTOR_CRYPTO_POLICY_DIR ) /api-testing,non-overloaded-test,--gen-vector-crypto --has-policy $(EXTRA_FLAG ) )
320- clang-format -i $(VECTOR_CRYPTO_DIR ) /api-testing/*
321- clang-format -i $(VECTOR_CRYPTO_POLICY_DIR ) /api-testing/*
305+ $(call gen_test_rule,$(VECTOR_CRYPTO_DIR ) /api-testing,non-overloaded-test,--gen-vector-crypto, $(VECTOR_CRYPTO_POLICY_DIR ) /api-testing)
322306
323307vector-crypto-overloaded-test :
324- $(call gen_tests,$(VECTOR_CRYPTO_DIR ) /overloaded-api-testing,overloaded-test,--gen-vector-crypto $(EXTRA_FLAG ) )
325- $(call gen_tests,$(VECTOR_CRYPTO_POLICY_DIR ) /overloaded-api-testing,overloaded-test,--gen-vector-crypto --has-policy $(EXTRA_FLAG ) )
326- clang-format -i $(VECTOR_CRYPTO_DIR ) /overloaded-api-testing/*
327- clang-format -i $(VECTOR_CRYPTO_POLICY_DIR ) /overloaded-api-testing/*
308+ $(call gen_test_rule,$(VECTOR_CRYPTO_DIR ) /overloaded-api-testing,overloaded-test,--gen-vector-crypto, $(VECTOR_CRYPTO_POLICY_DIR ) /overloaded-api-testing)
328309
329310vector-crypto-llvm-non-overloaded-test :
330- $(call gen_tests,$(VECTOR_CRYPTO_DIR ) /llvm-api-tests,non-overloaded-test,--toolchain-type llvm --gen-vector-crypto $(EXTRA_FLAG ) )
331- $(call gen_tests,$(VECTOR_CRYPTO_POLICY_DIR ) /llvm-api-tests,non-overloaded-test,--toolchain-type llvm --gen-vector-crypto --has-policy $(EXTRA_FLAG ) )
332- $(call replace_float, $(VECTOR_CRYPTO_DIR ) /llvm-api-tests)
333- $(call replace_float, $(VECTOR_CRYPTO_POLICY_DIR ) /llvm-api-tests)
334- clang-format -i $(VECTOR_CRYPTO_DIR ) /llvm-api-tests/*
335- clang-format -i $(VECTOR_CRYPTO_POLICY_DIR ) /llvm-api-tests/*
311+ $(call gen_llvm_test_rule,$(VECTOR_CRYPTO_DIR ) /llvm-api-tests,non-overloaded-test,--gen-vector-crypto,$(VECTOR_CRYPTO_POLICY_DIR ) /llvm-api-tests)
336312
337313vector-crypto-llvm-overloaded-test :
338- $(call gen_tests,$(VECTOR_CRYPTO_DIR ) /llvm-overloaded-tests,overloaded-test,--toolchain-type llvm --gen-vector-crypto $(EXTRA_FLAG ) )
339- $(call gen_tests,$(VECTOR_CRYPTO_POLICY_DIR ) /llvm-overloaded-tests,overloaded-test,--toolchain-type llvm --gen-vector-crypto --has-policy $(EXTRA_FLAG ) )
340- $(call replace_float, $(VECTOR_CRYPTO_DIR ) /llvm-overloaded-tests)
341- $(call replace_float, $(VECTOR_CRYPTO_POLICY_DIR ) /llvm-overloaded-tests)
342- clang-format -i $(VECTOR_CRYPTO_DIR ) /llvm-overloaded-tests/*
343- clang-format -i $(VECTOR_CRYPTO_POLICY_DIR ) /llvm-overloaded-tests/*
314+ $(call gen_llvm_test_rule,$(VECTOR_CRYPTO_DIR ) /llvm-overloaded-tests,overloaded-test,--gen-vector-crypto,$(VECTOR_CRYPTO_POLICY_DIR ) /llvm-overloaded-tests)
344315
345316# ##############################################################################
346317
0 commit comments