xref: /llvm-project/llvm/test/Transforms/RewriteStatepointsForGC/pr56493.ll (revision f01a3a893c147c1594b9a3fbd817456b209dabbf)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt -passes=rewrite-statepoints-for-gc -S < %s | FileCheck %s
3
4; Make sure this doesn't crash.
5define void @test() gc "statepoint-example" personality ptr @zot {
6; CHECK-LABEL: @test(
7; CHECK-NEXT:  bb:
8; CHECK-NEXT:    [[STATEPOINT_TOKEN:%.*]] = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 2882400000, i32 0, ptr elementtype(void (ptr addrspace(1), i64, ptr addrspace(1), i64, i64)) @__llvm_memcpy_element_unordered_atomic_safepoint_4, i32 5, i32 0, ptr addrspace(1) null, i64 undef, ptr addrspace(1) null, i64 ptrtoint (ptr addrspace(1) getelementptr inbounds (i8, ptr addrspace(1) null, i64 16) to i64), i64 undef, i32 0, i32 0) [ "deopt"() ]
9; CHECK-NEXT:    ret void
10;
11bb:
12  call void @llvm.memcpy.element.unordered.atomic.p1.p1.i64(ptr addrspace(1) elementtype(i32) align 8 undef, ptr addrspace(1) elementtype(i32) align 16 getelementptr inbounds (i8, ptr addrspace(1) null, i64 16), i64 undef, i32 4) #3 [ "deopt"() ]
13  ret void
14}
15
16declare ptr @zot()
17
18declare void @llvm.memcpy.element.unordered.atomic.p1.p1.i64(ptr addrspace(1) nocapture writeonly, ptr addrspace(1) nocapture readonly, i64, i32 immarg)
19