@@ -133,10 +133,9 @@ define ptr @fold_assume_align_pow2_of_loaded_pointer_into_align_metadata(ptr %p)
133133 ret ptr %p2
134134}
135135
136- define ptr @dont_fold_assume_align_i32_pow2_of_loaded_pointer_into_align_metadata (ptr %p ) {
136+ define ptr @fold_assume_align_i32_pow2_of_loaded_pointer_into_align_metadata (ptr %p ) {
137137; CHECK-LABEL: @dont_fold_assume_align_i32_pow2_of_loaded_pointer_into_align_metadata(
138- ; CHECK-NEXT: [[P2:%.*]] = load ptr, ptr [[P:%.*]], align 8
139- ; CHECK-NEXT: call void @llvm.assume(i1 true) [ "align"(ptr [[P2]], i32 8) ]
138+ ; CHECK-NEXT: [[P2:%.*]] = load ptr, ptr [[P:%.*]], align 8, !align [[META0]]
140139; CHECK-NEXT: ret ptr [[P2]]
141140;
142141 %p2 = load ptr , ptr %p
@@ -184,8 +183,7 @@ define ptr @dont_fold_assume_align_zero_of_loaded_pointer_into_align_metadata(pt
184183; !align must have a constant integer alignment.
185184define ptr @dont_fold_assume_align_not_constant_of_loaded_pointer_into_align_metadata (ptr %p , i64 %align ) {
186185; CHECK-LABEL: @dont_fold_assume_align_not_constant_of_loaded_pointer_into_align_metadata(
187- ; CHECK-NEXT: [[P2:%.*]] = load ptr, ptr [[P:%.*]], align 8
188- ; CHECK-NEXT: call void @llvm.assume(i1 true) [ "align"(ptr [[P2]], i64 [[ALIGN:%.*]]) ]
186+ ; CHECK-NEXT: [[P2:%.*]] = load ptr, ptr [[P:%.*]], align 8, !align [[META1:![0-9]+]]
189187; CHECK-NEXT: ret ptr [[P2]]
190188;
191189 %p2 = load ptr , ptr %p
@@ -195,4 +193,5 @@ define ptr @dont_fold_assume_align_not_constant_of_loaded_pointer_into_align_met
195193
196194;.
197195; CHECK: [[META0]] = !{i64 8}
196+ ; CHECK: [[META1]] = !{i64 1}
198197;.
0 commit comments