@@ -153,6 +153,22 @@ define gen_tests
153153 $(TRIGGER_VENDOR_INST ) $(TRIGGER_SKIP_DEFAULT_INST )
154154endef
155155
156+ define gen_test_rule
157+ $(call gen_tests,$(1 ) ,$(2 ) ,$(3 ) $(EXTRA_FLAG ) )
158+ $(call gen_tests,$(4 ) ,$(2 ) ,--has-policy $(3 ) $(EXTRA_FLAG ) )
159+ $(if $(filter --toolchain-type gnu,$(3 ) ) ,,$(call clang_format,$(1 ) ) )
160+ $(if $(filter --toolchain-type gnu,$(3 ) ) ,,$(call clang_format,$(4 ) ) )
161+ endef
162+
163+ define gen_llvm_test_rule
164+ $(call gen_tests,$(1 ) ,$(2 ) ,--toolchain-type llvm $(strip $(3 ) ) $(EXTRA_FLAG ) )
165+ $(call gen_tests,$(4 ) ,$(2 ) ,--toolchain-type llvm --has-policy $(strip $(3 ) ) $(EXTRA_FLAG ) )
166+ $(call replace_float, $(1 ) )
167+ $(call replace_float, $(4 ) )
168+ clang-format -i $(1 ) /*
169+ clang-format -i $(4 ) /*
170+ endef
171+
156172# Compile all *.c under $(1) with $(2), then pretty-print with testing-report
157173# $(1): Path to testing folder, containing .c files
158174# $(2): Path to compiler
@@ -211,45 +227,27 @@ overloaded-docs:
211227
212228# Generate non-overloaded intrinsic testing C source files
213229non-overloaded-test :
214- $(call gen_tests,$(DIR ) /api-testing,non-overloaded-test,$(EXTRA_FLAG ) )
215- $(call gen_tests,$(POLICY_DIR ) /api-testing,non-overloaded-test,--has-policy $(EXTRA_FLAG ) )
216- clang-format -i $(DIR ) /api-testing/*
217- clang-format -i $(POLICY_DIR ) /api-testing/*
230+ $(call gen_test_rule,$(DIR ) /api-testing,non-overloaded-test,, $(POLICY_DIR ) /api-testing)
218231
219232# Generate overloaded intrinsic testing C source files
220233overloaded-test :
221- $(call gen_tests,$(DIR ) /overloaded-api-testing,overloaded-test,$(EXTRA_FLAG ) )
222- $(call gen_tests,$(POLICY_DIR ) /overloaded-api-testing,overloaded-test,--has-policy $(EXTRA_FLAG ) )
223- clang-format -i $(DIR ) /overloaded-api-testing/*
224- clang-format -i $(POLICY_DIR ) /overloaded-api-testing/*
234+ $(call gen_test_rule,$(DIR ) /overloaded-api-testing,overloaded-test,, $(POLICY_DIR ) /overloaded-api-testing)
225235
226236# Generate non-overloaded intrinsic testing C source files
227237llvm-non-overloaded-test :
228- $(call gen_tests,$(DIR ) /llvm-api-tests,non-overloaded-test,--toolchain-type llvm $(EXTRA_FLAG ) )
229- $(call gen_tests,$(POLICY_DIR ) /llvm-api-tests,non-overloaded-test,--toolchain-type llvm --has-policy $(EXTRA_FLAG ) )
230- $(call replace_float, $(DIR ) /llvm-api-tests)
231- $(call replace_float, $(POLICY_DIR ) /llvm-api-tests)
232- clang-format -i $(DIR ) /llvm-api-tests/*
233- clang-format -i $(POLICY_DIR ) /llvm-api-tests/*
238+ $(call gen_llvm_test_rule,$(DIR ) /llvm-api-tests,non-overloaded-test,,$(POLICY_DIR ) /llvm-api-tests)
234239
235240# Generate overloaded intrinsic testing C source files
236241llvm-overloaded-test :
237- $(call gen_tests,$(DIR ) /llvm-overloaded-tests,overloaded-test,--toolchain-type llvm $(EXTRA_FLAG ) )
238- $(call gen_tests,$(POLICY_DIR ) /llvm-overloaded-tests,overloaded-test,--toolchain-type llvm --has-policy $(EXTRA_FLAG ) )
239- $(call replace_float, $(DIR ) /llvm-overloaded-tests)
240- $(call replace_float, $(POLICY_DIR ) /llvm-overloaded-tests)
241- clang-format -i $(DIR ) /llvm-overloaded-tests/*
242- clang-format -i $(POLICY_DIR ) /llvm-overloaded-tests/*
242+ $(call gen_llvm_test_rule,$(DIR ) /llvm-overloaded-tests,overloaded-test,,$(POLICY_DIR ) /llvm-overloaded-tests)
243243
244244# Generate GNU non-overloaded intrinsic testing source files
245245gnu-non-overloaded-test :
246- $(call gen_tests,$(DIR ) /gnu-api-tests,non-overloaded-test,--toolchain-type gnu)
247- $(call gen_tests,$(POLICY_DIR ) /gnu-api-tests,non-overloaded-test,--toolchain-type gnu --has-policy)
246+ $(call gen_test_rule,$(DIR ) /gnu-api-tests,non-overloaded-test,--toolchain-type gnu,$(POLICY_DIR ) /gnu-api-tests)
248247
249248# Generate GNU overloaded intrinsic testing source files
250249gnu-overloaded-test :
251- $(call gen_tests,$(DIR ) /gnu-overloaded-tests,overloaded-test,--toolchain-type gnu)
252- $(call gen_tests,$(POLICY_DIR ) /gnu-overloaded-tests,overloaded-test,--toolchain-type gnu --has-policy)
250+ $(call gen_test_rule,$(DIR ) /gnu-overloaded-tests,overloaded-test,--toolchain-type gnu,$(POLICY_DIR ) /gnu-overloaded-tests)
253251
254252# BFloat16 documents
255253bf16-non-overloaded-doc :
@@ -267,35 +265,19 @@ bf16-overloaded-docs:
267265# BFloat16 tests
268266# Generate non-overloaded intrinsic testing C source files
269267bf16-non-overloaded-test :
270- $(call gen_tests,$(BF16_DIR ) /api-testing,non-overloaded-test,--skip-default-inst --vendor-inst $(BF16_INST ) )
271- $(call gen_tests,$(BF16_POLICY_DIR ) /api-testing,non-overloaded-test,--has-policy --skip-default-inst --vendor-inst $(BF16_INST ) )
272- clang-format -i $(BF16_DIR ) /api-testing/*
273- clang-format -i $(BF16_POLICY_DIR ) /api-testing/*
268+ $(call gen_test_rule,$(BF16_DIR ) /api-testing,non-overloaded-test,--skip-default-inst --vendor-inst $(BF16_INST ) ,$(BF16_POLICY_DIR ) /api-testing)
274269
275270# Generate overloaded intrinsic testing C source files
276271bf16-overloaded-test :
277- $(call gen_tests,$(BF16_DIR ) /overloaded-api-testing,overloaded-test,--skip-default-inst --vendor-inst $(BF16_INST ) )
278- $(call gen_tests,$(BF16_POLICY_DIR ) /overloaded-api-testing,overloaded-test,--has-policy --skip-default-inst --vendor-inst $(BF16_INST ) )
279- clang-format -i $(BF16_DIR ) /overloaded-api-testing/*
280- clang-format -i $(BF16_POLICY_DIR ) /overloaded-api-testing/*
272+ $(call gen_test_rule,$(BF16_DIR ) /overloaded-api-testing,overloaded-test,--skip-default-inst --vendor-inst $(BF16_INST ) ,$(BF16_POLICY_DIR ) /overloaded-api-testing)
281273
282274# Generate non-overloaded intrinsic testing C source files
283275bf16-llvm-non-overloaded-test :
284- $(call gen_tests,$(BF16_DIR ) /llvm-api-tests,non-overloaded-test,--toolchain-type llvm --skip-default-inst --vendor-inst $(BF16_INST ) )
285- $(call gen_tests,$(BF16_POLICY_DIR ) /llvm-api-tests,non-overloaded-test,--toolchain-type llvm --has-policy --skip-default-inst --vendor-inst $(BF16_INST ) )
286- $(call replace_float, $(BF16_DIR ) /llvm-api-tests)
287- $(call replace_float, $(BF16_POLICY_DIR ) /llvm-api-tests)
288- clang-format -i $(BF16_DIR ) /llvm-api-tests/*
289- clang-format -i $(BF16_POLICY_DIR ) /llvm-api-tests/*
276+ $(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)
290277
291278# Generate overloaded intrinsic testing C source files
292279bf16-llvm-overloaded-test :
293- $(call gen_tests,$(BF16_DIR ) /llvm-overloaded-tests,overloaded-test,--toolchain-type llvm --skip-default-inst --vendor-inst $(BF16_INST ) )
294- $(call gen_tests,$(BF16_POLICY_DIR ) /llvm-overloaded-tests,overloaded-test,--toolchain-type llvm --has-policy --skip-default-inst --vendor-inst $(BF16_INST ) )
295- $(call replace_float, $(BF16_DIR ) /llvm-overloaded-tests)
296- $(call replace_float, $(BF16_POLICY_DIR ) /llvm-overloaded-tests)
297- clang-format -i $(BF16_DIR ) /llvm-overloaded-tests/*
298- clang-format -i $(BF16_POLICY_DIR ) /llvm-overloaded-tests/*
280+ $(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)
299281
300282# Vector crypto documents
301283vector-crypto-non-overloaded-doc :
@@ -312,32 +294,16 @@ vector-crypto-overloaded-docs:
312294
313295# Vector-crypto tests
314296vector-crypto-non-overloaded-test :
315- $(call gen_tests,$(VECTOR_CRYPTO_DIR ) /api-testing,non-overloaded-test,--gen-vector-crypto $(EXTRA_FLAG ) )
316- $(call gen_tests,$(VECTOR_CRYPTO_POLICY_DIR ) /api-testing,non-overloaded-test,--gen-vector-crypto --has-policy $(EXTRA_FLAG ) )
317- clang-format -i $(VECTOR_CRYPTO_DIR ) /api-testing/*
318- clang-format -i $(VECTOR_CRYPTO_POLICY_DIR ) /api-testing/*
297+ $(call gen_test_rule,$(VECTOR_CRYPTO_DIR ) /api-testing,non-overloaded-test,--gen-vector-crypto, $(VECTOR_CRYPTO_POLICY_DIR ) /api-testing)
319298
320299vector-crypto-overloaded-test :
321- $(call gen_tests,$(VECTOR_CRYPTO_DIR ) /overloaded-api-testing,overloaded-test,--gen-vector-crypto $(EXTRA_FLAG ) )
322- $(call gen_tests,$(VECTOR_CRYPTO_POLICY_DIR ) /overloaded-api-testing,overloaded-test,--gen-vector-crypto --has-policy $(EXTRA_FLAG ) )
323- clang-format -i $(VECTOR_CRYPTO_DIR ) /overloaded-api-testing/*
324- clang-format -i $(VECTOR_CRYPTO_POLICY_DIR ) /overloaded-api-testing/*
300+ $(call gen_test_rule,$(VECTOR_CRYPTO_DIR ) /overloaded-api-testing,overloaded-test,--gen-vector-crypto, $(VECTOR_CRYPTO_POLICY_DIR ) /overloaded-api-testing)
325301
326302vector-crypto-llvm-non-overloaded-test :
327- $(call gen_tests,$(VECTOR_CRYPTO_DIR ) /llvm-api-tests,non-overloaded-test,--toolchain-type llvm --gen-vector-crypto $(EXTRA_FLAG ) )
328- $(call gen_tests,$(VECTOR_CRYPTO_POLICY_DIR ) /llvm-api-tests,non-overloaded-test,--toolchain-type llvm --gen-vector-crypto --has-policy $(EXTRA_FLAG ) )
329- $(call replace_float, $(VECTOR_CRYPTO_DIR ) /llvm-api-tests)
330- $(call replace_float, $(VECTOR_CRYPTO_POLICY_DIR ) /llvm-api-tests)
331- clang-format -i $(VECTOR_CRYPTO_DIR ) /llvm-api-tests/*
332- clang-format -i $(VECTOR_CRYPTO_POLICY_DIR ) /llvm-api-tests/*
303+ $(call gen_llvm_test_rule,$(VECTOR_CRYPTO_DIR ) /llvm-api-tests,non-overloaded-test,--gen-vector-crypto,$(VECTOR_CRYPTO_POLICY_DIR ) /llvm-api-tests)
333304
334305vector-crypto-llvm-overloaded-test :
335- $(call gen_tests,$(VECTOR_CRYPTO_DIR ) /llvm-overloaded-tests,overloaded-test,--toolchain-type llvm --gen-vector-crypto $(EXTRA_FLAG ) )
336- $(call gen_tests,$(VECTOR_CRYPTO_POLICY_DIR ) /llvm-overloaded-tests,overloaded-test,--toolchain-type llvm --gen-vector-crypto --has-policy $(EXTRA_FLAG ) )
337- $(call replace_float, $(VECTOR_CRYPTO_DIR ) /llvm-overloaded-tests)
338- $(call replace_float, $(VECTOR_CRYPTO_POLICY_DIR ) /llvm-overloaded-tests)
339- clang-format -i $(VECTOR_CRYPTO_DIR ) /llvm-overloaded-tests/*
340- clang-format -i $(VECTOR_CRYPTO_POLICY_DIR ) /llvm-overloaded-tests/*
306+ $(call gen_llvm_test_rule,$(VECTOR_CRYPTO_DIR ) /llvm-overloaded-tests,overloaded-test,--gen-vector-crypto,$(VECTOR_CRYPTO_POLICY_DIR ) /llvm-overloaded-tests)
341307
342308# ##############################################################################
343309
0 commit comments