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