File tree Expand file tree Collapse file tree 2 files changed +45
-2
lines changed Expand file tree Collapse file tree 2 files changed +45
-2
lines changed Original file line number Diff line number Diff line change @@ -3843,6 +3843,7 @@ bool LLVMToSPIRVBase::isKnownIntrinsic(Intrinsic::ID Id) {
3843
3843
case Intrinsic::dbg_label:
3844
3844
case Intrinsic::trap:
3845
3845
case Intrinsic::ubsantrap:
3846
+ case Intrinsic::debugtrap:
3846
3847
case Intrinsic::uadd_with_overflow:
3847
3848
case Intrinsic::usub_with_overflow:
3848
3849
case Intrinsic::arithmetic_fence:
@@ -4719,10 +4720,12 @@ SPIRVValue *LLVMToSPIRVBase::transIntrinsicInst(IntrinsicInst *II,
4719
4720
case Intrinsic::invariant_start:
4720
4721
case Intrinsic::invariant_end:
4721
4722
case Intrinsic::dbg_label:
4722
- // llvm.trap intrinsic is not implemented. But for now don't crash. This
4723
- // change is pending the trap/abort intrinsic implementation.
4723
+ // llvm.trap and llvm.debugtrap intrinsics are not implemented. But for now
4724
+ // don't crash. This change is pending the trap/abort intrinsic
4725
+ // implementation.
4724
4726
case Intrinsic::trap:
4725
4727
case Intrinsic::ubsantrap:
4728
+ case Intrinsic::debugtrap:
4726
4729
// llvm.instrprof.* intrinsics are not supported
4727
4730
case Intrinsic::instrprof_increment:
4728
4731
case Intrinsic::instrprof_increment_step:
Original file line number Diff line number Diff line change
1
+ ; RUN: llvm-as %s -o %t.bc
2
+ ; RUN: llvm-spirv %t.bc -spirv-text -o %t
3
+ ; RUN: FileCheck < %t %s
4
+ ; RUN: llvm-spirv %t.bc -o %t.spv
5
+ ; RUN: spirv-val %t.spv
6
+ target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
7
+ target triple = "spir-unknown-unknown"
8
+
9
+ ; Function Attrs: nounwind
10
+ ; CHECK: Capability Addresses
11
+ ; CHECK: "foo"
12
+
13
+ ; Function Attrs: cold noreturn nounwind
14
+ declare void @llvm.debugtrap () #8
15
+
16
+ define spir_kernel void @foo (ptr addrspace (1 ) %a ) #0 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !4 !kernel_arg_type_qual !5 {
17
+ entry:
18
+ %a.addr = alloca ptr addrspace (1 ), align 4
19
+ store ptr addrspace (1 ) %a , ptr %a.addr , align 4
20
+ call void @llvm.debugtrap () #12
21
+ ret void
22
+ }
23
+
24
+ attributes #0 = { nounwind "less-precise-fpmad" ="false" "no-frame-pointer-elim" ="false" "no-infs-fp-math" ="false" "no-nans-fp-math" ="false" "no-realign-stack" "stack-protector-buffer-size" ="8" "unsafe-fp-math" ="false" "use-soft-float" ="false" }
25
+ attributes #12 = { noreturn nounwind }
26
+
27
+ !opencl.enable.FP_CONTRACT = !{}
28
+ !opencl.spir.version = !{!6 }
29
+ !opencl.ocl.version = !{!6 }
30
+ !opencl.used.extensions = !{!7 }
31
+ !opencl.used.optional.core.features = !{!7 }
32
+ !opencl.compiler.options = !{!7 }
33
+
34
+ !1 = !{i32 1 }
35
+ !2 = !{!"none" }
36
+ !3 = !{!"int*" }
37
+ !4 = !{!"int*" }
38
+ !5 = !{!"" }
39
+ !6 = !{i32 1 , i32 2 }
40
+ !7 = !{}
You can’t perform that action at this time.
0 commit comments