-
Notifications
You must be signed in to change notification settings - Fork 13.4k
[SPIRV] Fix test with VK1.3 validation #137633
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
@llvm/pr-subscribers-backend-spir-v Author: Steven Perron (s-perron) ChangesAn update to the spirv validator is now correctly rejecting vulkan Fixes #136344 Full diff: https://github.com/llvm/llvm-project/pull/137633.diff 2 Files Affected:
diff --git a/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/SV_GroupIndex.ll b/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/SV_GroupIndex.ll
index 1b89485654727..e1d8e4917f411 100644
--- a/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/SV_GroupIndex.ll
+++ b/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/SV_GroupIndex.ll
@@ -1,9 +1,6 @@
; RUN: llc -O0 -verify-machineinstrs -mtriple=spirv-vulkan-unknown %s -o - | FileCheck %s
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-vulkan-unknown %s -o - -filetype=obj | spirv-val --target-env vulkan1.3 %}
-; TODO(#136344): This test currently fails when --target-env vulkan1.3 is specified.
-; XFAIL: spirv-tools
-
; CHECK-DAG: %[[#int:]] = OpTypeInt 32 0
; CHECK-DAG: %[[#ptr_Input_int:]] = OpTypePointer Input %[[#int]]
; CHECK-DAG: %[[#LocalInvocationIndex:]] = OpVariable %[[#ptr_Input_int]] Input
@@ -14,7 +11,10 @@
target triple = "spirv-unknown-vulkan-library"
-declare void @local_index_user(i32)
+define internal void @local_index_user(i32) {
+entry:
+ ret void
+}
; Function Attrs: convergent noinline norecurse
define void @main() #1 {
diff --git a/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/smoothstep.ll b/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/smoothstep.ll
index 789b0cb15c9e2..2b2ddcfee4cba 100644
--- a/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/smoothstep.ll
+++ b/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/smoothstep.ll
@@ -1,9 +1,6 @@
; RUN: llc -O0 -verify-machineinstrs -mtriple=spirv-unknown-unknown %s -o - | FileCheck %s
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-unknown %s -o - -filetype=obj | spirv-val --target-env vulkan1.3 %}
-; TODO(#136344): This test currently fails when --target-env vulkan1.3 is specified.
-; XFAIL: spirv-tools
-
; Make sure SPIRV operation function calls for smoothstep are lowered correctly.
; CHECK-DAG: %[[#op_ext_glsl:]] = OpExtInstImport "GLSL.std.450"
@@ -12,7 +9,7 @@
; CHECK-DAG: %[[#float_32:]] = OpTypeFloat 32
; CHECK-DAG: %[[#vec4_float_32:]] = OpTypeVector %[[#float_32]] 4
-define noundef half @smoothstep_half(half noundef %a, half noundef %b, half noundef %c) {
+define internal noundef half @smoothstep_half(half noundef %a, half noundef %b, half noundef %c) {
entry:
; CHECK: %[[#]] = OpFunction %[[#float_16]] None %[[#]]
; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#float_16]]
@@ -23,7 +20,7 @@ entry:
ret half %spv.smoothstep
}
-define noundef float @smoothstep_float(float noundef %a, float noundef %b, float noundef %c) {
+define internal noundef float @smoothstep_float(float noundef %a, float noundef %b, float noundef %c) {
entry:
; CHECK: %[[#]] = OpFunction %[[#float_32]] None %[[#]]
; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#float_32]]
@@ -34,7 +31,7 @@ entry:
ret float %spv.smoothstep
}
-define noundef <4 x half> @smoothstep_half4(<4 x half> noundef %a, <4 x half> noundef %b, <4 x half> noundef %c) {
+define internal noundef <4 x half> @smoothstep_half4(<4 x half> noundef %a, <4 x half> noundef %b, <4 x half> noundef %c) {
entry:
; CHECK: %[[#]] = OpFunction %[[#vec4_float_16]] None %[[#]]
; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#vec4_float_16]]
@@ -45,7 +42,7 @@ entry:
ret <4 x half> %spv.smoothstep
}
-define noundef <4 x float> @smoothstep_float4(<4 x float> noundef %a, <4 x float> noundef %b, <4 x float> noundef %c) {
+define internal noundef <4 x float> @smoothstep_float4(<4 x float> noundef %a, <4 x float> noundef %b, <4 x float> noundef %c) {
entry:
; CHECK: %[[#]] = OpFunction %[[#vec4_float_32]] None %[[#]]
; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#vec4_float_32]]
@@ -56,8 +53,16 @@ entry:
ret <4 x float> %spv.smoothstep
}
+; The other fucntions are the test, but a entry point is required to have a valid SPIR-V module.
+define void @main() #1 {
+entry:
+ ret void
+}
+
declare half @llvm.spv.smoothstep.f16(half, half, half)
declare float @llvm.spv.smoothstep.f32(float, float, float)
declare <4 x half> @llvm.spv.smoothstep.v4f16(<4 x half>, <4 x half>, <4 x half>)
declare <4 x float> @llvm.spv.smoothstep.v4f32(<4 x float>, <4 x float>, <4 x float>)
+
+attributes #1 = { convergent noinline norecurse "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" "no-trapping-math"="true" "stack-protector-buffer-size"="8" }
|
Keenuts
approved these changes
Apr 29, 2025
cassiebeckley
approved these changes
Apr 29, 2025
charles-zablit
pushed a commit
to charles-zablit/llvm-project
that referenced
this pull request
May 1, 2025
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
IanWood1
pushed a commit
to IanWood1/llvm-project
that referenced
this pull request
May 6, 2025
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
IanWood1
pushed a commit
to IanWood1/llvm-project
that referenced
this pull request
May 6, 2025
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
IanWood1
pushed a commit
to IanWood1/llvm-project
that referenced
this pull request
May 6, 2025
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
GeorgeARM
pushed a commit
to GeorgeARM/llvm-project
that referenced
this pull request
May 7, 2025
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 #136344