brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 902aea2 Raw
39 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4; %cmp should not vanish5define i1 @f(i32 %i1) {6; CHECK-LABEL: @f(7; CHECK-NEXT:  entry:8; CHECK-NEXT:    [[CMP:%.*]] = icmp slt i32 [[I1:%.*]], 09; CHECK-NEXT:    [[SHR:%.*]] = lshr i32 7, [[I1]]10; CHECK-NEXT:    [[CMP4:%.*]] = icmp sgt i32 [[I1]], [[SHR]]11; CHECK-NEXT:    [[I2:%.*]] = select i1 [[CMP]], i1 true, i1 [[CMP4]]12; CHECK-NEXT:    ret i1 [[I2]]13;14entry:15  %cmp = icmp slt i32 %i1, 016  %shr = ashr i32 7, %i117  %cmp4 = icmp sgt i32 %i1, %shr18  %i2 = select i1 %cmp, i1 true, i1 %cmp419  ret i1 %i220}21 22; %cmp should not vanish23define i32 @f2(i32 signext %g, i32 zeroext %h) {24; CHECK-LABEL: @f2(25; CHECK-NEXT:    [[CMP:%.*]] = icmp slt i32 [[G:%.*]], 026; CHECK-NEXT:    [[SHR:%.*]] = lshr i32 7, [[H:%.*]]27; CHECK-NEXT:    [[CMP1:%.*]] = icmp sgt i32 [[G]], [[SHR]]28; CHECK-NEXT:    [[DOT0:%.*]] = select i1 [[CMP]], i1 true, i1 [[CMP1]]29; CHECK-NEXT:    [[LOR_EXT:%.*]] = zext i1 [[DOT0]] to i3230; CHECK-NEXT:    ret i32 [[LOR_EXT]]31;32  %cmp = icmp slt i32 %g, 033  %shr = ashr i32 7, %h34  %cmp1 = icmp sgt i32 %g, %shr35  %.0 = select i1 %cmp, i1 true, i1 %cmp136  %lor.ext = zext i1 %.0 to i3237  ret i32 %lor.ext38}39