brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 346eaea Raw
32 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt < %s -passes=correlated-propagation -S | FileCheck %s3 4; Make sure that we apply trunc to the edge value of %x.5@g = external global i86 7define i16 @pr161367(i64 %x) {8; CHECK-LABEL: define i16 @pr161367(9; CHECK-SAME: i64 [[X:%.*]]) {10; CHECK-NEXT:  [[ENTRY:.*]]:11; CHECK-NEXT:    [[TRUNC:%.*]] = trunc i64 [[X]] to i1612; CHECK-NEXT:    [[EXITCOND:%.*]] = icmp eq i64 [[X]], sub (i64 0, i64 ptrtoint (ptr @g to i64))13; CHECK-NEXT:    br i1 [[EXITCOND]], label %[[EXIT:.*]], label %[[ELSE:.*]]14; CHECK:       [[ELSE]]:15; CHECK-NEXT:    br label %[[EXIT]]16; CHECK:       [[EXIT]]:17; CHECK-NEXT:    [[RET:%.*]] = phi i16 [ trunc (i64 sub (i64 0, i64 ptrtoint (ptr @g to i64)) to i16), %[[ENTRY]] ], [ 0, %[[ELSE]] ]18; CHECK-NEXT:    ret i16 [[RET]]19;20entry:21  %trunc = trunc i64 %x to i1622  %exitcond = icmp eq i64 %x, sub (i64 0, i64 ptrtoint (ptr @g to i64))23  br i1 %exitcond, label %exit, label %else24 25else:26  br label %exit27 28exit:29  %ret = phi i16 [ %trunc, %entry ], [ 0, %else ]30  ret i16 %ret31}32