brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 41e5be7 Raw
40 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt -passes=correlated-propagation -S %s | FileCheck %s3 4define i64 @test_self_loop(i64 %x, i1 %cond) {5; CHECK-LABEL: define range(i64 0, 576460752303423488) i64 @test_self_loop(6; CHECK-SAME: i64 [[X:%.*]], i1 [[COND:%.*]]) {7; CHECK-NEXT:  [[ENTRY:.*]]:8; CHECK-NEXT:    [[COND1:%.*]] = icmp ugt i64 [[X]], 5764607523034234879; CHECK-NEXT:    br i1 [[COND1]], label %[[COMMON_RET:.*]], label %[[LOOP:.*]]10; CHECK:       [[LOOP]]:11; CHECK-NEXT:    br i1 [[COND]], label %[[INDIRECT:.*]], label %[[LOOP]]12; CHECK:       [[INDIRECT]]:13; CHECK-NEXT:    [[COND2:%.*]] = icmp eq i64 [[X]], 014; CHECK-NEXT:    br i1 [[COND2]], label %[[COMMON_RET]], label %[[EXIT:.*]]15; CHECK:       [[EXIT]]:16; CHECK-NEXT:    br label %[[COMMON_RET]]17; CHECK:       [[COMMON_RET]]:18; CHECK-NEXT:    [[RES:%.*]] = phi i64 [ [[X]], %[[EXIT]] ], [ 0, %[[INDIRECT]] ], [ 0, %[[ENTRY]] ]19; CHECK-NEXT:    ret i64 [[RES]]20;21entry:22  %cond1 = icmp ugt i64 %x, 57646075230342348723  br i1 %cond1, label %common.ret, label %loop24 25loop:26  br i1 %cond, label %indirect, label %loop27 28indirect:29  %cond2 = icmp eq i64 %x, 030  br i1 %cond2, label %common.ret, label %exit31 32exit:33  %smax = tail call i64 @llvm.smax.i64(i64 %x, i64 1)34  br label %common.ret35 36common.ret:37  %res = phi i64 [ %smax, %exit ], [ 0, %indirect ], [ 0, %entry ]38  ret i64 %res39}40