1; RUN: opt < %s -inline -S | not grep {tail call void @llvm.memcpy.i32} 2; PR3550 3 4define internal void @foo(i32* %p, i32* %q) { 5 %pp = bitcast i32* %p to i8* 6 %qq = bitcast i32* %q to i8* 7 tail call void @llvm.memcpy.p0i8.p0i8.i32(i8* %pp, i8* %qq, i32 4, i32 1, i1 false) 8 ret void 9} 10 11declare void @llvm.memcpy.i32(i8* nocapture, i8* nocapture, i32, i32) nounwind 12 13define i32 @main() { 14 %a = alloca i32 ; <i32*> [#uses=3] 15 %b = alloca i32 ; <i32*> [#uses=2] 16 store i32 1, i32* %a, align 4 17 store i32 0, i32* %b, align 4 18 invoke void @foo(i32* %a, i32* %b) 19 to label %invcont unwind label %lpad 20 21invcont: 22 %retval = load i32* %a, align 4 23 ret i32 %retval 24 25lpad: 26 %eh_ptr = call i8* @llvm.eh.exception() 27 %eh_select = call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) 28 unreachable 29} 30 31declare i8* @llvm.eh.exception() nounwind readonly 32 33declare i32 @llvm.eh.selector(i8*, i8*, ...) nounwind 34 35declare i32 @__gxx_personality_v0(...) 36 37declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind 38