@@ -35,13 +35,18 @@ define i32 @foo1(ptr %a) #0 {
3535}
3636
3737define i32 @align_assume_trunc_cond (ptr %a ) #0 {
38- ; CHECK-LABEL: @align_assume_trunc_cond(
39- ; CHECK-NEXT: [[T0:%.*]] = load i32, ptr [[A:%.*]], align 4
40- ; CHECK-NEXT: [[PTRINT:%.*]] = ptrtoint ptr [[A]] to i64
41- ; CHECK-NEXT: [[TRUNC:%.*]] = trunc i64 [[PTRINT]] to i1
42- ; CHECK-NEXT: [[MASKCOND:%.*]] = xor i1 [[TRUNC]], true
43- ; CHECK-NEXT: tail call void @llvm.assume(i1 [[MASKCOND]])
44- ; CHECK-NEXT: ret i32 [[T0]]
38+ ; DEFAULT-LABEL: @align_assume_trunc_cond(
39+ ; DEFAULT-NEXT: [[T0:%.*]] = load i32, ptr [[A:%.*]], align 4
40+ ; DEFAULT-NEXT: [[PTRINT:%.*]] = ptrtoint ptr [[A]] to i64
41+ ; DEFAULT-NEXT: [[TRUNC:%.*]] = trunc i64 [[PTRINT]] to i1
42+ ; DEFAULT-NEXT: [[MASKCOND:%.*]] = xor i1 [[TRUNC]], true
43+ ; DEFAULT-NEXT: tail call void @llvm.assume(i1 [[MASKCOND]])
44+ ; DEFAULT-NEXT: ret i32 [[T0]]
45+ ;
46+ ; BUNDLES-LABEL: @align_assume_trunc_cond(
47+ ; BUNDLES-NEXT: [[T0:%.*]] = load i32, ptr [[A:%.*]], align 4
48+ ; BUNDLES-NEXT: call void @llvm.assume(i1 true) [ "align"(ptr [[A]], i64 2) ]
49+ ; BUNDLES-NEXT: ret i32 [[T0]]
4550;
4651 %t0 = load i32 , ptr %a , align 4
4752 %ptrint = ptrtoint ptr %a to i64
0 commit comments