brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · 8eb98b2 Raw
77 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 32; RUN: opt -passes=instcombine -S < %s | FileCheck %s3 4define void @pr71330(i32 %conv, i1 %tobool19.not4, i16 %lb) {5; CHECK-LABEL: define void @pr71330(6; CHECK-SAME: i32 [[CONV:%.*]], i1 [[TOBOOL19_NOT4:%.*]], i16 [[LB:%.*]]) {7; CHECK-NEXT:  entry:8; CHECK-NEXT:    br label [[FOR_COND7_PREHEADER:%.*]]9; CHECK:       for.cond7.preheader:10; CHECK-NEXT:    br i1 [[TOBOOL19_NOT4]], label [[FOR_COND7_PREHEADER_SPLIT_US:%.*]], label [[FOR_COND7:%.*]]11; CHECK:       for.cond7.preheader.split.us:12; CHECK-NEXT:    br i1 true, label [[FOR_COND7_PREHEADER_SPLIT_US_SPLIT:%.*]], label [[FOR_COND7_US_US:%.*]]13; CHECK:       for.cond7.us.us:14; CHECK-NEXT:    br i1 poison, label [[FOR_COND7_US_US]], label [[FOR_END25:%.*]]15; CHECK:       for.cond7.preheader.split.us.split:16; CHECK-NEXT:    ret void17; CHECK:       for.cond7:18; CHECK-NEXT:    [[CMP12:%.*]] = icmp slt i32 [[CONV]], 019; CHECK-NEXT:    br i1 [[CMP12]], label [[FOR_BODY14:%.*]], label [[FOR_END25]]20; CHECK:       for.body14:21; CHECK-NEXT:    ret void22; CHECK:       for.end25:23; CHECK-NEXT:    br i1 false, label [[FOR_COND7_PREHEADER]], label [[FOR_END36:%.*]]24; CHECK:       for.end36:25; CHECK-NEXT:    ret void26;27entry:28  br label %for.cond7.preheader29 30for.cond7.preheader:  ; preds = %for.end25, %entry31  %storemerge33 = phi i32 [ -3, %entry ], [ 0, %for.end25 ]32  %sm8 = and i32 %storemerge33, 133  %add = add i32 %storemerge33, 834  %cmp.i.i.not = icmp eq i32 %sm8, 035  %cmp3.i.i = icmp eq i32 %add, 036  %and7.i.i = and i32 %storemerge33, 137  %cmp8.i.i = icmp eq i32 %and7.i.i, 038  %tobool.not.i.i = icmp eq i32 %add, 039  %..i.i = select i1 %tobool.not.i.i, i32 1, i32 340  br i1 %tobool19.not4, label %for.cond7.preheader.split.us, label %for.cond741 42for.cond7.preheader.split.us:  ; preds = %for.cond7.preheader43  br i1 %cmp.i.i.not, label %for.cond7.us.us, label %for.cond7.preheader.split.us.split44 45for.cond7.us.us:  ; preds = %for.cond7.us.us, %for.cond7.preheader.split.us46  %spec.select = select i1 %cmp8.i.i, i32 1, i32 %..i.i47  %retval.0.i.i.us.us = select i1 %cmp3.i.i, i32 0, i32 %spec.select48  %add9.us.us = add i32 %retval.0.i.i.us.us, %conv49  %conv10.us.us = sext i32 %add9.us.us to i6450  %cmp12.us.us = icmp slt i64 %conv10.us.us, 051  br i1 %cmp12.us.us, label %for.cond7.us.us, label %for.end2552 53for.cond7.preheader.split.us.split:  ; preds = %for.cond7.preheader.split.us54  ret void55 56for.cond7:  ; preds = %for.cond7.preheader57  %cmp.i.i.not.not = xor i1 %cmp.i.i.not, true58  %brmerge = select i1 %cmp.i.i.not.not, i1 true, i1 %cmp3.i.i59  %spec.select34 = select i1 %cmp8.i.i, i32 1, i32 %..i.i60  %retval.0.i.i = select i1 %brmerge, i32 0, i32 %spec.select3461  %add9 = add i32 %retval.0.i.i, %conv62  %conv10 = sext i32 %add9 to i6463  %cmp12 = icmp slt i64 %conv10, 064  br i1 %cmp12, label %for.body14, label %for.end2565 66for.body14:  ; preds = %for.cond767  ret void68 69for.end25:  ; preds = %for.cond7, %for.cond7.us.us70  %conv35 = zext i16 %lb to i3271  %cmp = icmp slt i32 %conv35, 072  br i1 %cmp, label %for.cond7.preheader, label %for.end3673 74for.end36:  ; preds = %for.end2575  ret void76}77