xref: /aosp_15_r20/external/llvm/test/Transforms/Inline/inline-invoke-tail.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -inline -S | not grep "tail call void @llvm.memcpy.p0i8.p0i8.i32"
2*9880d681SAndroid Build Coastguard Worker; PR3550
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine internal void @foo(i32* %p, i32* %q) {
5*9880d681SAndroid Build Coastguard Worker	%pp = bitcast i32* %p to i8*
6*9880d681SAndroid Build Coastguard Worker	%qq = bitcast i32* %q to i8*
7*9880d681SAndroid Build Coastguard Worker	tail call void @llvm.memcpy.p0i8.p0i8.i32(i8* %pp, i8* %qq, i32 4, i32 1, i1 false)
8*9880d681SAndroid Build Coastguard Worker	ret void
9*9880d681SAndroid Build Coastguard Worker}
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdefine i32 @main() personality i32 (...)* @__gxx_personality_v0 {
12*9880d681SAndroid Build Coastguard Worker	%a = alloca i32		; <i32*> [#uses=3]
13*9880d681SAndroid Build Coastguard Worker	%b = alloca i32		; <i32*> [#uses=2]
14*9880d681SAndroid Build Coastguard Worker	store i32 1, i32* %a, align 4
15*9880d681SAndroid Build Coastguard Worker	store i32 0, i32* %b, align 4
16*9880d681SAndroid Build Coastguard Worker	invoke void @foo(i32* %a, i32* %b)
17*9880d681SAndroid Build Coastguard Worker			to label %invcont unwind label %lpad
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Workerinvcont:
20*9880d681SAndroid Build Coastguard Worker	%retval = load i32, i32* %a, align 4
21*9880d681SAndroid Build Coastguard Worker	ret i32 %retval
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Workerlpad:
24*9880d681SAndroid Build Coastguard Worker        %exn = landingpad {i8*, i32}
25*9880d681SAndroid Build Coastguard Worker            catch i8* null
26*9880d681SAndroid Build Coastguard Worker	unreachable
27*9880d681SAndroid Build Coastguard Worker}
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_v0(...)
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind
32