Skip to content

Commit 5193281

Browse files
add a test case
1 parent 557e327 commit 5193281

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1386,6 +1386,10 @@ static bool generateSampleImageInst(const StringRef DemangledCall,
13861386
ReturnType = ReturnType.substr(0, ReturnType.find('('));
13871387
}
13881388
SPIRVType *Type = GR->getOrCreateSPIRVTypeByName(ReturnType, MIRBuilder);
1389+
if (!Type) {
1390+
std::string DiagMsg = "Unable to recognize SPIRV type name: " + ReturnType;
1391+
report_fatal_error(DiagMsg.c_str());
1392+
}
13891393
MRI->setRegClass(Call->Arguments[0], &SPIRV::IDRegClass);
13901394
MRI->setRegClass(Call->Arguments[1], &SPIRV::IDRegClass);
13911395
MRI->setRegClass(Call->Arguments[3], &SPIRV::IDRegClass);
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s
2+
3+
; CHECK: %[[TyInt:.*]] = OpTypeInt 8 0
4+
; CHECK: %[[TyPtr:.*]] = OpTypePointer {{[a-zA-Z]+}} %[[TyInt]]
5+
; CHECK: OpFunctionParameter %[[TyPtr]]
6+
; CHECK: OpFunctionParameter %[[TyPtr]]
7+
8+
%struct.my_kernel_data = type { i32, i32, i32, i32, i32 }
9+
%struct.my_struct = type { i32, i32 }
10+
11+
define spir_kernel void @test(ptr addrspace(1) %in, ptr addrspace(1) %outData) !kernel_arg_type !5 {
12+
entry:
13+
ret void
14+
}
15+
16+
!llvm.module.flags = !{!0}
17+
!opencl.enable.FP_CONTRACT = !{}
18+
!opencl.ocl.version = !{!1}
19+
!opencl.spir.version = !{!2}
20+
!opencl.used.extensions = !{!3}
21+
!opencl.used.optional.core.features = !{!3}
22+
!opencl.compiler.options = !{!3}
23+
!llvm.ident = !{!4}
24+
!opencl.kernels = !{!6}
25+
26+
!0 = !{i32 1, !"wchar_size", i32 4}
27+
!1 = !{i32 1, i32 0}
28+
!2 = !{i32 1, i32 2}
29+
!3 = !{}
30+
!4 = !{!"clang version 6.0.0"}
31+
!5 = !{!"my_kernel_data*", !"struct my_struct*"}
32+
!6 = !{ptr @test}
33+

0 commit comments

Comments
 (0)