[llvm] [NFC][SPIRV] Add test for untested case in SPIRVEmitIntrinsics (PR #189413)

via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 31 01:25:30 PDT 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-spir-v

Author: ambergorzynski

<details>
<summary>Changes</summary>

[This case](https://github.com/llvm/llvm-project/blob/af98e3c2cb07af90029785a78e49c2761f20088e/llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp#L1233-L1236) is not tested by any existing test (checked using code coverage and by inserting an `abort`). The case marks type deduction as incomplete. 

I suggest a new test to cover this case; it's specific to `-mtriple=spirv64-amd-amdhsa`. 

---
Full diff: https://github.com/llvm/llvm-project/pull/189413.diff


1 Files Affected:

- (added) llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-fnptr-todo-type.ll (+21) 


``````````diff
diff --git a/llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-fnptr-todo-type.ll b/llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-fnptr-todo-type.ll
new file mode 100644
index 0000000000000..8ea0d1d017d77
--- /dev/null
+++ b/llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-fnptr-todo-type.ll
@@ -0,0 +1,21 @@
+; 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-amd-amdhsa -o - | FileCheck %s
+
+define void @test() addrspace(4) {
+; CHECK-LABEL: define void @test() addrspace(4) {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    call addrspace(4) void @llvm.spv.init.global.p1.i32(ptr addrspace(1) @[[GLOB0:[0-9]+]], i32 0)
+; CHECK-NEXT:    call addrspace(4) void @llvm.spv.assign.ptr.type.p4(ptr addrspace(4) null, metadata i8 poison, i32 4)
+; CHECK-NEXT:    [[TMP0:%.*]] = call addrspace(4) ptr addrspace(4) @llvm.spv.ptrcast.p4.p4(ptr addrspace(4) null, metadata ptr poison, i32 4)
+; CHECK-NEXT:    call addrspace(4) void @llvm.spv.assign.ptr.type.p4(ptr addrspace(4) [[TMP0]], metadata ptr poison, i32 4)
+; CHECK-NEXT:    [[A:%.*]] = call addrspace(4) ptr addrspace(4) (i1, ptr addrspace(4), ...) @llvm.spv.gep.p4.p4(i1 false, ptr addrspace(4) [[TMP0]], i64 42)
+; CHECK-NEXT:    call addrspace(4) void @llvm.spv.assign.ptr.type.p4(ptr addrspace(4) [[A]], metadata target("spirv.$TypedPointerType", i8, 4) (i64) poison, i32 4)
+; CHECK-NEXT:    [[B:%.*]] = call spir_func addrspace(4) ptr addrspace(4) [[A]](i64 0)
+; CHECK-NEXT:    call addrspace(4) void @llvm.spv.assign.ptr.type.p4(ptr addrspace(4) [[B]], metadata i8 poison, i32 4)
+; CHECK-NEXT:    ret void
+;
+entry:
+  %A = getelementptr ptr, ptr addrspace(4) null, i64 42
+  %B = call spir_func addrspace(4) ptr addrspace(4) %A(i64 0)
+  ret void
+}

``````````

</details>


https://github.com/llvm/llvm-project/pull/189413


More information about the llvm-commits mailing list