Skip to content

Commit 37efdd5

Browse files
committed
[NFC] Simplify test generation targets
Signed-off-by: Jerry Zhang Jian <[email protected]>
1 parent 3d10e8b commit 37efdd5

File tree

1 file changed

+35
-64
lines changed

1 file changed

+35
-64
lines changed

rvv-intrinsic-generator/Makefile

Lines changed: 35 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,27 @@ define gen_tests
156156
$(TRIGGER_VENDOR_INST) $(TRIGGER_SKIP_DEFAULT_INST)
157157
endef
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
216237
non-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
223241
overloaded-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
230245
llvm-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
239249
llvm-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
248253
gnu-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
253257
gnu-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
258261
bf16-non-overloaded-doc:
@@ -270,35 +273,19 @@ bf16-overloaded-docs:
270273
# BFloat16 tests
271274
# Generate non-overloaded intrinsic testing C source files
272275
bf16-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
279279
bf16-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
286283
bf16-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
295287
bf16-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
304291
vector-crypto-non-overloaded-doc:
@@ -315,32 +302,16 @@ vector-crypto-overloaded-docs:
315302

316303
# Vector-crypto tests
317304
vector-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

323307
vector-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

329310
vector-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

337313
vector-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

Comments
 (0)