[llvm] [WIP][NFC][SPIRV] New test for untested case in SPIRVEmitIntrinsics (PR #188950)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 27 04:26:34 PDT 2026
https://github.com/ambergorzynski updated https://github.com/llvm/llvm-project/pull/188950
>From dfca6862684d552ca45be4f2c4c7e564ae71cbde Mon Sep 17 00:00:00 2001
From: agorzyns <amber.gorzynski at amd.com>
Date: Fri, 27 Mar 2026 05:09:53 -0500
Subject: [PATCH 1/3] [NFC][SPIRV] Add test for pass spirv-emit-intrinsics to
test uncovered code in SPIRVEmitIntrinsics.cpp
---
.../SPIRVEmitIntrinsics-infer-ptr-type.ll | 28 +++++++++++++++++++
1 file changed, 28 insertions(+)
create mode 100644 llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-ptr-type.ll
diff --git a/llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-ptr-type.ll b/llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-ptr-type.ll
new file mode 100644
index 0000000000000..5c44f9e4e3bb9
--- /dev/null
+++ b/llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-ptr-type.ll
@@ -0,0 +1,28 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
+; RUN: opt -S -passes=spirv-emit-intrinsics %s -mtriple=spirv64-unknown-unknown -o - | FileCheck %s
+; RUN: opt -S -passes=spirv-emit-intrinsics %s -mtriple=spirv64-unknown-vulkan -o - | FileCheck %s
+
+define spir_func i32 @foo(ptr %fn) {
+; CHECK-LABEL: define spir_func i32 @foo(
+; CHECK-SAME: ptr [[FN:%.*]]) {
+; CHECK-NEXT: [[ENTRY:.*:]]
+; CHECK-NEXT: call void @llvm.spv.assign.ptr.type.p0(ptr [[FN]], metadata void () poison, i32 0)
+; CHECK-NEXT: ret i32 0
+;
+entry:
+ ret i32 0
+}
+
+declare spir_func void @bar()
+
+define spir_kernel void @infer_ptr_type() {
+; CHECK-LABEL: define spir_kernel void @infer_ptr_type() {
+; CHECK-NEXT: [[ENTRY:.*:]]
+; CHECK-NEXT: [[C:%.*]] = call spir_func i32 @foo(ptr @bar)
+; CHECK-NEXT: call void @llvm.spv.assign.type.i32(i32 [[C]], metadata i32 poison)
+; CHECK-NEXT: ret void
+;
+entry:
+ %C = call spir_func i32 @foo(ptr @bar)
+ ret void
+}
>From bc3571569685bfa4671e80d112dc0d5c8fc7b25d Mon Sep 17 00:00:00 2001
From: agorzyns <amber.gorzynski at amd.com>
Date: Fri, 27 Mar 2026 05:12:56 -0500
Subject: [PATCH 2/3] [NFC][SPIRV] Add temporary abort to demonstrate new test
---
llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp b/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
index be071baf7fa72..d93e91e34a192 100644
--- a/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
@@ -2812,8 +2812,10 @@ Type *SPIRVEmitIntrinsics::deduceFunParamElementType(
return KnownTy;
// try to deduce from the operand itself
Visited.clear();
- if (Type *Ty = deduceElementTypeHelper(OpArg, Visited, false))
+ if (Type *Ty = deduceElementTypeHelper(OpArg, Visited, false)) {
+ abort();
return Ty;
+ }
// search in actual parameter's users
for (User *OpU : OpArg->users()) {
Instruction *Inst = dyn_cast<Instruction>(OpU);
>From dff468e3b1652ee047648948c9cffe834aa5516c Mon Sep 17 00:00:00 2001
From: agorzyns <amber.gorzynski at amd.com>
Date: Fri, 27 Mar 2026 06:26:11 -0500
Subject: [PATCH 3/3] [NFC][SPIRV] Remove temporary abort
---
llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp b/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
index d93e91e34a192..be071baf7fa72 100644
--- a/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
@@ -2812,10 +2812,8 @@ Type *SPIRVEmitIntrinsics::deduceFunParamElementType(
return KnownTy;
// try to deduce from the operand itself
Visited.clear();
- if (Type *Ty = deduceElementTypeHelper(OpArg, Visited, false)) {
- abort();
+ if (Type *Ty = deduceElementTypeHelper(OpArg, Visited, false))
return Ty;
- }
// search in actual parameter's users
for (User *OpU : OpArg->users()) {
Instruction *Inst = dyn_cast<Instruction>(OpU);
More information about the llvm-commits
mailing list