brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.2 KiB · 4cdf967 Raw
80 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=slp-vectorizer -S -mtriple=x86_64-unknown-linux-gnu -mcpu=bdver2 < %s | FileCheck %s3 4; Function Attrs: nounwind uwtable5define void @get_block(i32 %y_pos, i1 %arg) local_unnamed_addr #0 {6; CHECK-LABEL: @get_block(7; CHECK-NEXT:  entry:8; CHECK-NEXT:    br label [[LAND_LHS_TRUE:%.*]]9; CHECK:       land.lhs.true:10; CHECK-NEXT:    br i1 %arg, label [[IF_THEN:%.*]], label [[IF_END:%.*]]11; CHECK:       if.then:12; CHECK-NEXT:    unreachable13; CHECK:       if.end:14; CHECK-NEXT:    [[SUB14:%.*]] = sub nsw i32 [[Y_POS:%.*]], undef15; CHECK-NEXT:    [[SHR15:%.*]] = ashr i32 [[SUB14]], 216; CHECK-NEXT:    [[CMP_I_I:%.*]] = icmp sgt i32 [[SHR15]], 017; CHECK-NEXT:    [[COND_I_I:%.*]] = select i1 [[CMP_I_I]], i32 [[SHR15]], i32 018; CHECK-NEXT:    [[CMP_I4_I:%.*]] = icmp slt i32 [[COND_I_I]], undef19; CHECK-NEXT:    [[COND_I5_I:%.*]] = select i1 [[CMP_I4_I]], i32 [[COND_I_I]], i32 undef20; CHECK-NEXT:    [[IDXPROM30:%.*]] = sext i32 [[COND_I5_I]] to i6421; CHECK-NEXT:    [[ARRAYIDX31:%.*]] = getelementptr inbounds ptr, ptr undef, i64 [[IDXPROM30]]22; CHECK-NEXT:    [[CMP_I_I_1:%.*]] = icmp sgt i32 [[SUB14]], -123; CHECK-NEXT:    [[COND_I_I_1:%.*]] = select i1 [[CMP_I_I_1]], i32 undef, i32 024; CHECK-NEXT:    [[CMP_I4_I_1:%.*]] = icmp slt i32 [[COND_I_I_1]], undef25; CHECK-NEXT:    [[COND_I5_I_1:%.*]] = select i1 [[CMP_I4_I_1]], i32 [[COND_I_I_1]], i32 undef26; CHECK-NEXT:    [[IDXPROM30_1:%.*]] = sext i32 [[COND_I5_I_1]] to i6427; CHECK-NEXT:    [[ARRAYIDX31_1:%.*]] = getelementptr inbounds ptr, ptr undef, i64 [[IDXPROM30_1]]28; CHECK-NEXT:    [[CMP_I_I_2:%.*]] = icmp sgt i32 [[SUB14]], -529; CHECK-NEXT:    [[COND_I_I_2:%.*]] = select i1 [[CMP_I_I_2]], i32 undef, i32 030; CHECK-NEXT:    [[CMP_I4_I_2:%.*]] = icmp slt i32 [[COND_I_I_2]], undef31; CHECK-NEXT:    [[COND_I5_I_2:%.*]] = select i1 [[CMP_I4_I_2]], i32 [[COND_I_I_2]], i32 undef32; CHECK-NEXT:    [[IDXPROM30_2:%.*]] = sext i32 [[COND_I5_I_2]] to i6433; CHECK-NEXT:    [[ARRAYIDX31_2:%.*]] = getelementptr inbounds ptr, ptr undef, i64 [[IDXPROM30_2]]34; CHECK-NEXT:    [[CMP_I_I_3:%.*]] = icmp sgt i32 [[SUB14]], -935; CHECK-NEXT:    [[COND_I_I_3:%.*]] = select i1 [[CMP_I_I_3]], i32 undef, i32 036; CHECK-NEXT:    [[CMP_I4_I_3:%.*]] = icmp slt i32 [[COND_I_I_3]], undef37; CHECK-NEXT:    [[COND_I5_I_3:%.*]] = select i1 [[CMP_I4_I_3]], i32 [[COND_I_I_3]], i32 undef38; CHECK-NEXT:    [[IDXPROM30_3:%.*]] = sext i32 [[COND_I5_I_3]] to i6439; CHECK-NEXT:    [[ARRAYIDX31_3:%.*]] = getelementptr inbounds ptr, ptr undef, i64 [[IDXPROM30_3]]40; CHECK-NEXT:    ret void41;42entry:43  br label %land.lhs.true44 45land.lhs.true:                                    ; preds = %entry46  br i1 %arg, label %if.then, label %if.end47 48if.then:                                          ; preds = %land.lhs.true49  unreachable50 51if.end:                                           ; preds = %land.lhs.true52  %sub14 = sub nsw i32 %y_pos, undef53  %shr15 = ashr i32 %sub14, 254  %cmp.i.i = icmp sgt i32 %shr15, 055  %cond.i.i = select i1 %cmp.i.i, i32 %shr15, i32 056  %cmp.i4.i = icmp slt i32 %cond.i.i, undef57  %cond.i5.i = select i1 %cmp.i4.i, i32 %cond.i.i, i32 undef58  %idxprom30 = sext i32 %cond.i5.i to i6459  %arrayidx31 = getelementptr inbounds ptr, ptr undef, i64 %idxprom3060  %cmp.i.i.1 = icmp sgt i32 %sub14, -161  %cond.i.i.1 = select i1 %cmp.i.i.1, i32 undef, i32 062  %cmp.i4.i.1 = icmp slt i32 %cond.i.i.1, undef63  %cond.i5.i.1 = select i1 %cmp.i4.i.1, i32 %cond.i.i.1, i32 undef64  %idxprom30.1 = sext i32 %cond.i5.i.1 to i6465  %arrayidx31.1 = getelementptr inbounds ptr, ptr undef, i64 %idxprom30.166  %cmp.i.i.2 = icmp sgt i32 %sub14, -567  %cond.i.i.2 = select i1 %cmp.i.i.2, i32 undef, i32 068  %cmp.i4.i.2 = icmp slt i32 %cond.i.i.2, undef69  %cond.i5.i.2 = select i1 %cmp.i4.i.2, i32 %cond.i.i.2, i32 undef70  %idxprom30.2 = sext i32 %cond.i5.i.2 to i6471  %arrayidx31.2 = getelementptr inbounds ptr, ptr undef, i64 %idxprom30.272  %cmp.i.i.3 = icmp sgt i32 %sub14, -973  %cond.i.i.3 = select i1 %cmp.i.i.3, i32 undef, i32 074  %cmp.i4.i.3 = icmp slt i32 %cond.i.i.3, undef75  %cond.i5.i.3 = select i1 %cmp.i4.i.3, i32 %cond.i.i.3, i32 undef76  %idxprom30.3 = sext i32 %cond.i5.i.3 to i6477  %arrayidx31.3 = getelementptr inbounds ptr, ptr undef, i64 %idxprom30.378  ret void79}80