Skip to content

Commit 8034a6d

Browse files
s-perroncharles-zablit
authored andcommitted
[SPIRV] Fix test with VK1.3 validation (llvm#137633)
An update to the spirv validator is now correctly rejecting vulkan shaders with the linkage capability. We have a couple tests that need updating to remove the capability. Fixes llvm#136344
1 parent db3929d commit 8034a6d

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed

llvm/test/CodeGen/SPIRV/hlsl-intrinsics/SV_GroupIndex.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
; RUN: llc -O0 -verify-machineinstrs -mtriple=spirv-vulkan-unknown %s -o - | FileCheck %s
2-
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-vulkan-unknown %s -o - -filetype=obj | spirv-val --target-env vulkan1.3 %}
3-
4-
; TODO(#136344): This test currently fails when --target-env vulkan1.3 is specified.
5-
; XFAIL: spirv-tools
1+
; RUN: llc -O0 -verify-machineinstrs -mtriple=spirv-vulkan1.3-unknown %s -o - | FileCheck %s
2+
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-vulkan1.3-unknown %s -o - -filetype=obj | spirv-val --target-env vulkan1.3 %}
63

74
; CHECK-DAG: %[[#int:]] = OpTypeInt 32 0
85
; CHECK-DAG: %[[#ptr_Input_int:]] = OpTypePointer Input %[[#int]]
@@ -14,7 +11,10 @@
1411

1512
target triple = "spirv-unknown-vulkan-library"
1613

17-
declare void @local_index_user(i32)
14+
define internal void @local_index_user(i32) {
15+
entry:
16+
ret void
17+
}
1818

1919
; Function Attrs: convergent noinline norecurse
2020
define void @main() #1 {

llvm/test/CodeGen/SPIRV/hlsl-intrinsics/smoothstep.ll

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
; RUN: llc -O0 -verify-machineinstrs -mtriple=spirv-unknown-unknown %s -o - | FileCheck %s
2-
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-unknown %s -o - -filetype=obj | spirv-val --target-env vulkan1.3 %}
3-
4-
; TODO(#136344): This test currently fails when --target-env vulkan1.3 is specified.
5-
; XFAIL: spirv-tools
1+
; RUN: llc -O0 -verify-machineinstrs -mtriple=spirv-vulkan1.3-unknown %s -o - | FileCheck %s
2+
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-vulkan1.3-unknown %s -o - -filetype=obj | spirv-val --target-env vulkan1.3 %}
63

74
; Make sure SPIRV operation function calls for smoothstep are lowered correctly.
85

@@ -12,7 +9,7 @@
129
; CHECK-DAG: %[[#float_32:]] = OpTypeFloat 32
1310
; CHECK-DAG: %[[#vec4_float_32:]] = OpTypeVector %[[#float_32]] 4
1411

15-
define noundef half @smoothstep_half(half noundef %a, half noundef %b, half noundef %c) {
12+
define internal noundef half @smoothstep_half(half noundef %a, half noundef %b, half noundef %c) {
1613
entry:
1714
; CHECK: %[[#]] = OpFunction %[[#float_16]] None %[[#]]
1815
; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#float_16]]
@@ -23,7 +20,7 @@ entry:
2320
ret half %spv.smoothstep
2421
}
2522

26-
define noundef float @smoothstep_float(float noundef %a, float noundef %b, float noundef %c) {
23+
define internal noundef float @smoothstep_float(float noundef %a, float noundef %b, float noundef %c) {
2724
entry:
2825
; CHECK: %[[#]] = OpFunction %[[#float_32]] None %[[#]]
2926
; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#float_32]]
@@ -34,7 +31,7 @@ entry:
3431
ret float %spv.smoothstep
3532
}
3633

37-
define noundef <4 x half> @smoothstep_half4(<4 x half> noundef %a, <4 x half> noundef %b, <4 x half> noundef %c) {
34+
define internal noundef <4 x half> @smoothstep_half4(<4 x half> noundef %a, <4 x half> noundef %b, <4 x half> noundef %c) {
3835
entry:
3936
; CHECK: %[[#]] = OpFunction %[[#vec4_float_16]] None %[[#]]
4037
; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#vec4_float_16]]
@@ -45,7 +42,7 @@ entry:
4542
ret <4 x half> %spv.smoothstep
4643
}
4744

48-
define noundef <4 x float> @smoothstep_float4(<4 x float> noundef %a, <4 x float> noundef %b, <4 x float> noundef %c) {
45+
define internal noundef <4 x float> @smoothstep_float4(<4 x float> noundef %a, <4 x float> noundef %b, <4 x float> noundef %c) {
4946
entry:
5047
; CHECK: %[[#]] = OpFunction %[[#vec4_float_32]] None %[[#]]
5148
; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#vec4_float_32]]
@@ -56,8 +53,16 @@ entry:
5653
ret <4 x float> %spv.smoothstep
5754
}
5855

56+
; The other fucntions are the test, but a entry point is required to have a valid SPIR-V module.
57+
define void @main() #1 {
58+
entry:
59+
ret void
60+
}
61+
5962
declare half @llvm.spv.smoothstep.f16(half, half, half)
6063
declare float @llvm.spv.smoothstep.f32(float, float, float)
6164

6265
declare <4 x half> @llvm.spv.smoothstep.v4f16(<4 x half>, <4 x half>, <4 x half>)
6366
declare <4 x float> @llvm.spv.smoothstep.v4f32(<4 x float>, <4 x float>, <4 x float>)
67+
68+
attributes #1 = { convergent noinline norecurse "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" "no-trapping-math"="true" "stack-protector-buffer-size"="8" }

0 commit comments

Comments
 (0)