@@ -186,12 +186,12 @@ entry:
186
186
ret i32 %c
187
187
}
188
188
189
- ; FIXME: Should preserve none-UB metadata on loads.
189
+ ; Preserve none-UB metadata on loads.
190
190
define ptr @preserve_load_metadata_after_select_transform1 (i1 %c , ptr dereferenceable (8 ) %a , ptr dereferenceable (8 ) %b ) {
191
191
; CHECK-LABEL: @preserve_load_metadata_after_select_transform1(
192
192
; CHECK-NEXT: entry:
193
- ; CHECK-NEXT: [[B_VAL:%.*]] = load ptr, ptr [[B:%.*]], align 1
194
- ; CHECK-NEXT: [[A_VAL:%.*]] = load ptr, ptr [[A:%.*]], align 1
193
+ ; CHECK-NEXT: [[B_VAL:%.*]] = load ptr, ptr [[B:%.*]], align 1, !nonnull [[META6]], !align [[META8]]
194
+ ; CHECK-NEXT: [[A_VAL:%.*]] = load ptr, ptr [[A:%.*]], align 1, !nonnull [[META6]], !align [[META8]]
195
195
; CHECK-NEXT: [[L_SEL:%.*]] = select i1 [[C:%.*]], ptr [[B_VAL]], ptr [[A_VAL]]
196
196
; CHECK-NEXT: ret ptr [[L_SEL]]
197
197
;
@@ -201,12 +201,12 @@ entry:
201
201
ret ptr %l.sel
202
202
}
203
203
204
- ; FIXME: Should preserve none-UB metadata on loads.
204
+ ; Preserve none-UB metadata on loads.
205
205
define i32 @preserve_load_metadata_after_select_transform_range (i1 %c , ptr dereferenceable (8 ) %a , ptr dereferenceable (8 ) %b ) {
206
206
; CHECK-LABEL: @preserve_load_metadata_after_select_transform_range(
207
207
; CHECK-NEXT: entry:
208
- ; CHECK-NEXT: [[B_VAL:%.*]] = load i32, ptr [[B:%.*]], align 1
209
- ; CHECK-NEXT: [[A_VAL:%.*]] = load i32, ptr [[A:%.*]], align 1
208
+ ; CHECK-NEXT: [[B_VAL:%.*]] = load i32, ptr [[B:%.*]], align 1, !range [[RNG10:![0-9]+]]
209
+ ; CHECK-NEXT: [[A_VAL:%.*]] = load i32, ptr [[A:%.*]], align 1, !range [[RNG10]]
210
210
; CHECK-NEXT: [[L_SEL:%.*]] = select i1 [[C:%.*]], i32 [[B_VAL]], i32 [[A_VAL]]
211
211
; CHECK-NEXT: ret i32 [[L_SEL]]
212
212
;
@@ -294,7 +294,7 @@ define double @preserve_load_metadata_after_select_transform_metadata_missing_4(
294
294
; CHECK-LABEL: @preserve_load_metadata_after_select_transform_metadata_missing_4(
295
295
; CHECK-NEXT: entry:
296
296
; CHECK-NEXT: [[L_A:%.*]] = load double, ptr [[A:%.*]], align 8, !tbaa [[TBAA0]], !alias.scope [[META3]], !noalias [[META3]], !llvm.access.group [[META6]]
297
- ; CHECK-NEXT: [[L_B:%.*]] = load double, ptr [[B:%.*]], align 8, !tbaa [[TBAA0]], !alias.scope [[META10 :![0-9]+]], !noalias [[META10 ]], !llvm.access.group [[ACC_GRP13 :![0-9]+]]
297
+ ; CHECK-NEXT: [[L_B:%.*]] = load double, ptr [[B:%.*]], align 8, !tbaa [[TBAA0]], !alias.scope [[META11 :![0-9]+]], !noalias [[META11 ]], !llvm.access.group [[ACC_GRP14 :![0-9]+]]
298
298
; CHECK-NEXT: [[CMP_I:%.*]] = fcmp fast olt double [[L_A]], [[L_B]]
299
299
; CHECK-NEXT: [[L_SEL:%.*]] = select i1 [[CMP_I]], double [[L_B]], double [[L_A]]
300
300
; CHECK-NEXT: ret double [[L_SEL]]
@@ -337,8 +337,9 @@ entry:
337
337
; CHECK: [[META7]] = !{i32 1}
338
338
; CHECK: [[META8]] = !{i64 8}
339
339
; CHECK: [[ACC_GRP9]] = distinct !{}
340
- ; CHECK: [[META10]] = !{[[META11:![0-9]+]]}
341
- ; CHECK: [[META11]] = distinct !{[[META11]], [[META12:![0-9]+]]}
342
- ; CHECK: [[META12]] = distinct !{[[META12]]}
343
- ; CHECK: [[ACC_GRP13]] = distinct !{}
340
+ ; CHECK: [[RNG10]] = !{i32 0, i32 42}
341
+ ; CHECK: [[META11]] = !{[[META12:![0-9]+]]}
342
+ ; CHECK: [[META12]] = distinct !{[[META12]], [[META13:![0-9]+]]}
343
+ ; CHECK: [[META13]] = distinct !{[[META13]]}
344
+ ; CHECK: [[ACC_GRP14]] = distinct !{}
344
345
;.
0 commit comments