@@ -133,10 +133,9 @@ define ptr @fold_assume_align_pow2_of_loaded_pointer_into_align_metadata(ptr %p)
133
133
ret ptr %p2
134
134
}
135
135
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 ) {
137
137
; 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]]
140
139
; CHECK-NEXT: ret ptr [[P2]]
141
140
;
142
141
%p2 = load ptr , ptr %p
@@ -184,8 +183,7 @@ define ptr @dont_fold_assume_align_zero_of_loaded_pointer_into_align_metadata(pt
184
183
; !align must have a constant integer alignment.
185
184
define ptr @dont_fold_assume_align_not_constant_of_loaded_pointer_into_align_metadata (ptr %p , i64 %align ) {
186
185
; 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]+]]
189
187
; CHECK-NEXT: ret ptr [[P2]]
190
188
;
191
189
%p2 = load ptr , ptr %p
@@ -195,4 +193,5 @@ define ptr @dont_fold_assume_align_not_constant_of_loaded_pointer_into_align_met
195
193
196
194
;.
197
195
; CHECK: [[META0]] = !{i64 8}
196
+ ; CHECK: [[META1]] = !{i64 1}
198
197
;.
0 commit comments