Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/Transforms/MemCpyOpt/callslot.ll
Show First 20 Lines • Show All 85 Lines • ▼ Show 20 Lines | ; | ||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest.i8, i8* %src.i8, i64 16, i1 false) | call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest.i8, i8* %src.i8, i64 16, i1 false) | ||||
ret void | ret void | ||||
} | } | ||||
define void @throw_between_call_and_mempy(i8* dereferenceable(16) %dest.i8) { | define void @throw_between_call_and_mempy(i8* dereferenceable(16) %dest.i8) { | ||||
; CHECK-LABEL: @throw_between_call_and_mempy( | ; CHECK-LABEL: @throw_between_call_and_mempy( | ||||
; CHECK-NEXT: [[SRC:%.*]] = alloca [16 x i8], align 1 | ; CHECK-NEXT: [[SRC:%.*]] = alloca [16 x i8], align 1 | ||||
; CHECK-NEXT: [[SRC_I8:%.*]] = bitcast [16 x i8]* [[SRC]] to i8* | ; CHECK-NEXT: [[SRC_I8:%.*]] = bitcast [16 x i8]* [[SRC]] to i8* | ||||
; CHECK-NEXT: [[DEST_I81:%.*]] = bitcast i8* [[DEST_I8:%.*]] to [16 x i8]* | ; CHECK-NEXT: call void @llvm.memset.p0i8.i64(i8* [[SRC_I8]], i8 0, i64 16, i1 false) | ||||
; CHECK-NEXT: [[DEST_I812:%.*]] = bitcast [16 x i8]* [[DEST_I81]] to i8* | |||||
; CHECK-NEXT: call void @llvm.memset.p0i8.i64(i8* [[DEST_I812]], i8 0, i64 16, i1 false) | |||||
; CHECK-NEXT: call void @may_throw() [[ATTR2:#.*]] | ; CHECK-NEXT: call void @may_throw() [[ATTR2:#.*]] | ||||
; CHECK-NEXT: call void @llvm.memset.p0i8.i64(i8* [[DEST_I8:%.*]], i8 0, i64 16, i1 false) | |||||
; CHECK-NEXT: ret void | ; CHECK-NEXT: ret void | ||||
; | ; | ||||
%src = alloca [16 x i8] | %src = alloca [16 x i8] | ||||
%src.i8 = bitcast [16 x i8]* %src to i8* | %src.i8 = bitcast [16 x i8]* %src to i8* | ||||
call void @llvm.memset.p0i8.i64(i8* %src.i8, i8 0, i64 16, i1 false) | call void @llvm.memset.p0i8.i64(i8* %src.i8, i8 0, i64 16, i1 false) | ||||
call void @may_throw() readnone | call void @may_throw() readnone | ||||
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest.i8, i8* %src.i8, i64 16, i1 false) | call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest.i8, i8* %src.i8, i64 16, i1 false) | ||||
ret void | ret void | ||||
▲ Show 20 Lines • Show All 63 Lines • Show Last 20 Lines |