brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · b5f6884 Raw
99 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt < %s -passes="correlated-propagation"  -S 2>&1 | FileCheck %s3; RUN: opt < %s -passes="correlated-propagation" -lvi-per-pred-ranges -S 2>&1 | FileCheck %s -check-prefix=LVI-PRED-RANGES4 5@global = external local_unnamed_addr global [4338 x i32], align 166 7define dso_local noundef zeroext i1 @bar(i64 noundef %arg, ptr noundef writeonly captures(none) %arg1) local_unnamed_addr {8; CHECK-LABEL: define dso_local noundef zeroext i1 @bar(9; CHECK-SAME: i64 noundef [[ARG:%.*]], ptr noundef writeonly captures(none) [[ARG1:%.*]]) local_unnamed_addr {10; CHECK-NEXT:  [[BB:.*]]:11; CHECK-NEXT:    [[ICMP:%.*]] = icmp ult i64 [[ARG]], 102512; CHECK-NEXT:    br i1 [[ICMP]], label %[[BB4:.*]], label %[[BB2:.*]]13; CHECK:       [[BB2]]:14; CHECK-NEXT:    [[ICMP3:%.*]] = icmp ult i64 [[ARG]], 26214515; CHECK-NEXT:    br i1 [[ICMP3]], label %[[BB4]], label %[[BB9:.*]]16; CHECK:       [[BB4]]:17; CHECK-NEXT:    [[PHI:%.*]] = phi i64 [ 7, %[[BB]] ], [ 15487, %[[BB2]] ]18; CHECK-NEXT:    [[PHI5:%.*]] = phi i64 [ 3, %[[BB]] ], [ 7, %[[BB2]] ]19; CHECK-NEXT:    [[ADD:%.*]] = add nuw nsw i64 [[PHI]], [[ARG]]20; CHECK-NEXT:    [[LSHR:%.*]] = lshr i64 [[ADD]], [[PHI5]]21; CHECK-NEXT:    [[ICMP6:%.*]] = icmp samesign ult i64 [[LSHR]], 433822; CHECK-NEXT:    br i1 [[ICMP6]], label %[[BB8:.*]], label %[[BB7:.*]]23; CHECK:       [[BB7]]:24; CHECK-NEXT:    tail call void @llvm.ubsantrap(i8 18)25; CHECK-NEXT:    unreachable26; CHECK:       [[BB8]]:27; CHECK-NEXT:    [[GETELEMENTPTR:%.*]] = getelementptr inbounds nuw [4338 x i32], ptr @global, i64 0, i64 [[LSHR]]28; CHECK-NEXT:    [[LOAD:%.*]] = load i32, ptr [[GETELEMENTPTR]], align 429; CHECK-NEXT:    [[SEXT:%.*]] = sext i32 [[LOAD]] to i6430; CHECK-NEXT:    store i64 [[SEXT]], ptr [[ARG1]], align 831; CHECK-NEXT:    br label %[[BB9]]32; CHECK:       [[BB9]]:33; CHECK-NEXT:    [[PHI10:%.*]] = phi i1 [ true, %[[BB8]] ], [ false, %[[BB2]] ]34; CHECK-NEXT:    ret i1 [[PHI10]]35;36; LVI-PRED-RANGES-LABEL: define dso_local noundef zeroext i1 @bar(37; LVI-PRED-RANGES-SAME: i64 noundef [[ARG:%.*]], ptr noundef writeonly captures(none) [[ARG1:%.*]]) local_unnamed_addr {38; LVI-PRED-RANGES-NEXT:  [[BB:.*]]:39; LVI-PRED-RANGES-NEXT:    [[ICMP:%.*]] = icmp ult i64 [[ARG]], 102540; LVI-PRED-RANGES-NEXT:    br i1 [[ICMP]], label %[[BB4:.*]], label %[[BB2:.*]]41; LVI-PRED-RANGES:       [[BB2]]:42; LVI-PRED-RANGES-NEXT:    [[ICMP3:%.*]] = icmp ult i64 [[ARG]], 26214543; LVI-PRED-RANGES-NEXT:    br i1 [[ICMP3]], label %[[BB4]], label %[[BB9:.*]]44; LVI-PRED-RANGES:       [[BB4]]:45; LVI-PRED-RANGES-NEXT:    [[PHI:%.*]] = phi i64 [ 7, %[[BB]] ], [ 15487, %[[BB2]] ]46; LVI-PRED-RANGES-NEXT:    [[PHI5:%.*]] = phi i64 [ 3, %[[BB]] ], [ 7, %[[BB2]] ]47; LVI-PRED-RANGES-NEXT:    [[ADD:%.*]] = add nuw nsw i64 [[PHI]], [[ARG]]48; LVI-PRED-RANGES-NEXT:    [[LSHR:%.*]] = lshr i64 [[ADD]], [[PHI5]]49; LVI-PRED-RANGES-NEXT:    br i1 true, label %[[BB8:.*]], label %[[BB7:.*]]50; LVI-PRED-RANGES:       [[BB7]]:51; LVI-PRED-RANGES-NEXT:    tail call void @llvm.ubsantrap(i8 18)52; LVI-PRED-RANGES-NEXT:    unreachable53; LVI-PRED-RANGES:       [[BB8]]:54; LVI-PRED-RANGES-NEXT:    [[GETELEMENTPTR:%.*]] = getelementptr inbounds nuw [4338 x i32], ptr @global, i64 0, i64 [[LSHR]]55; LVI-PRED-RANGES-NEXT:    [[LOAD:%.*]] = load i32, ptr [[GETELEMENTPTR]], align 456; LVI-PRED-RANGES-NEXT:    [[SEXT:%.*]] = sext i32 [[LOAD]] to i6457; LVI-PRED-RANGES-NEXT:    store i64 [[SEXT]], ptr [[ARG1]], align 858; LVI-PRED-RANGES-NEXT:    br label %[[BB9]]59; LVI-PRED-RANGES:       [[BB9]]:60; LVI-PRED-RANGES-NEXT:    [[PHI10:%.*]] = phi i1 [ true, %[[BB8]] ], [ false, %[[BB2]] ]61; LVI-PRED-RANGES-NEXT:    ret i1 [[PHI10]]62;63bb:64  %icmp = icmp ult i64 %arg, 102565  br i1 %icmp, label %bb4, label %bb266 67bb2:                                              ; preds = %bb68  %icmp3 = icmp ult i64 %arg, 26214569  br i1 %icmp3, label %bb4, label %bb970 71bb4:                                              ; preds = %bb2, %bb72  %phi = phi i64 [ 7, %bb ], [ 15487, %bb2 ]73  %phi5 = phi i64 [ 3, %bb ], [ 7, %bb2 ]74  %add = add nuw nsw i64 %phi, %arg75  %lshr = lshr i64 %add, %phi576  %icmp6 = icmp samesign ult i64 %lshr, 433877  br i1 %icmp6, label %bb8, label %bb778 79bb7:                                              ; preds = %bb480  tail call void @llvm.ubsantrap(i8 18)81  unreachable82 83bb8:                                              ; preds = %bb484  %getelementptr = getelementptr inbounds nuw [4338 x i32], ptr @global, i64 0, i64 %lshr85  %load = load i32, ptr %getelementptr, align 486  %sext = sext i32 %load to i6487  store i64 %sext, ptr %arg1, align 888  br label %bb989 90bb9:                                              ; preds = %bb8, %bb291  %phi10 = phi i1 [ true, %bb8 ], [ false, %bb2 ]92  ret i1 %phi1093}94 95; Function Attrs: cold noreturn nounwind96declare void @llvm.ubsantrap(i8 immarg) #097 98attributes #0 = { cold noreturn nounwind }99