[clang] Add spirv-val compilation step when targeting SPIR-V (PR #188150)
Finn Plummer via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 26 13:50:00 PDT 2026
================
@@ -0,0 +1,26 @@
+// RUN: mkdir -p %t.dir
+// RUN: env PATH="" %clang_dxc -spirv -I test -Tlib_6_3 -Fo %t.dir/a.spv -### %s 2>&1 | FileCheck %s
+
+// Make sure report warning, and only once.
+// CHECK:spirv-val not found
+// CHECK-NOT:spirv-val not found
+
+// RUN: echo "spirv-val" > %t.dir/spirv-val && chmod 754 %t.dir/spirv-val && %clang_dxc -spirv --spirv-val-path=%t.dir %s -Tlib_6_3 -Fo %t.dir/a.spv -### 2>&1 | FileCheck %s --check-prefix=SPIRV_VAL_PATH
+// SPIRV_VAL_PATH:spirv-val{{(.exe)?}}" "{{.*}}.spv"
+
+// RUN: %clang_dxc -spirv -I test -Vd -Tlib_6_3 -### %s 2>&1 | FileCheck %s --check-prefix=VD
+// VD:"-cc1"{{.*}}"-triple" "spirv1.6-unknown-vulkan1.3-library"
+// VD-NOT:spirv-val not found
+
+// RUN: %clang_dxc -spirv -Tlib_6_3 -ccc-print-bindings --spirv-val-path=%t.dir -Fo %t.spv %s 2>&1 | FileCheck %s --check-prefix=BINDINGS
+// BINDINGS: "spirv1.6-unknown-vulkan1.3-library" - "clang", inputs: ["[[INPUT:.+]]"], output: "[[spv:.+]].spv"
+// BINDINGS-NEXT: "spirv1.6-unknown-vulkan1.3-library" - "hlsl::SPIRV_Validator", inputs: ["[[spv]].spv"], output: "{{.+}}.obj"
+
+// RUN: %clang_dxc -spirv -Tlib_6_3 -ccc-print-phases --spirv-val-path=%t.dir -Fo %t.spv %s 2>&1 | FileCheck %s --check-prefix=PHASES
+
+// PHASES: 0: input, "[[INPUT:.+]]", hlsl
+// PHASES-NEXT: 1: preprocessor, {0}, c++-cpp-output
+// PHASES-NEXT: 2: compiler, {1}, ir
+// PHASES-NEXT: 3: backend, {2}, assembler
+// PHASES-NEXT: 4: assembler, {3}, object
+// PHASES-NEXT: 5: binary-analyzer, {4}, object
----------------
inbelic wrote:
nit: file ending
https://github.com/llvm/llvm-project/pull/188150
More information about the cfe-commits
mailing list