34 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 42; RUN: opt -S -passes=instcombine < %s | FileCheck %s3 4define i64 @pr80597(i1 %cond) {5; CHECK-LABEL: define i64 @pr80597(6; CHECK-SAME: i1 [[COND:%.*]]) {7; CHECK-NEXT: entry:8; CHECK-NEXT: [[ADD:%.*]] = select i1 [[COND]], i64 0, i64 -128849018889; CHECK-NEXT: [[SEXT1:%.*]] = add nsw i64 [[ADD]], 883683951438410547210; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[SEXT1]], -3435973836811; CHECK-NEXT: br i1 [[CMP]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]12; CHECK: if.else:13; CHECK-NEXT: [[SEXT2:%.*]] = ashr exact i64 [[ADD]], 114; CHECK-NEXT: [[ASHR:%.*]] = or disjoint i64 [[SEXT2]], 441841976148702003215; CHECK-NEXT: ret i64 [[ASHR]]16; CHECK: if.then:17; CHECK-NEXT: ret i64 018;19entry:20 %add = select i1 %cond, i64 0, i64 429496729321 %add8 = shl i64 %add, 3222 %sext1 = add i64 %add8, 883683951438410547223 %cmp = icmp ult i64 %sext1, -3435973836824 br i1 %cmp, label %if.then, label %if.else25 26if.else:27 %sext2 = or i64 %add8, 883683952297404006428 %ashr = ashr i64 %sext2, 129 ret i64 %ashr30 31if.then:32 ret i64 033}34