-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Open
Description
The following IR can be transformed from load i24, ptr %dest to load i24, ptr %src so that we can know %arg equals %arg2.
define noundef i1 @wombat(ptr align 4 %src) {
bb:
%dest = alloca [3 x i8], align 4
%arg = load i24, ptr %src, align 4
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(3) %dest, ptr noundef nonnull align 4 dereferenceable(3) %src, i64 3, i1 false)
%arg2 = load i24, ptr %dest, align 4
%select = icmp eq i24 %arg, %arg2
call void @snork(ptr nonnull %dest)
ret i1 %select
}
declare void @snork(ptr)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg)dtcxzyw