109 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mcpu=pwr8 -mtriple=powerpc64le-unknown-unknown \3; RUN: -verify-machineinstrs < %s | FileCheck %s4define signext i32 @test(ptr noalias %PtrA, ptr noalias %PtrB, i32 signext %LenA, i32 signext %LenB) #0 {5; CHECK-LABEL: test:6; CHECK: # %bb.0: # %entry7; CHECK-NEXT: addi 6, 3, 48; CHECK-NEXT: addi 4, 4, -49; CHECK-NEXT: li 8, 010; CHECK-NEXT: li 7, 011; CHECK-NEXT: .LBB0_1: # %block312; CHECK-NEXT: # =>This Loop Header: Depth=113; CHECK-NEXT: # Child Loop BB0_2 Depth 214; CHECK-NEXT: extsw 9, 815; CHECK-NEXT: addi 8, 8, 116; CHECK-NEXT: extsw 7, 717; CHECK-NEXT: cmpw 8, 518; CHECK-NEXT: sldi 10, 7, 219; CHECK-NEXT: sldi 9, 9, 220; CHECK-NEXT: addi 7, 7, 121; CHECK-NEXT: add 10, 4, 1022; CHECK-NEXT: crnot 20, 023; CHECK-NEXT: bc 12, 20, .LBB0_524; CHECK-NEXT: .p2align 525; CHECK-NEXT: .LBB0_2: # %if.end26; CHECK-NEXT: # Parent Loop BB0_1 Depth=127; CHECK-NEXT: # => This Inner Loop Header: Depth=228; CHECK-NEXT: lwz 12, 4(10)29; CHECK-NEXT: addi 11, 10, 430; CHECK-NEXT: cmplwi 12, 031; CHECK-NEXT: beq 0, .LBB0_432; CHECK-NEXT: # %bb.3: # %if.then433; CHECK-NEXT: #34; CHECK-NEXT: lwzx 12, 6, 935; CHECK-NEXT: addi 7, 7, 136; CHECK-NEXT: stw 12, 8(10)37; CHECK-NEXT: mr 10, 1138; CHECK-NEXT: bc 4, 20, .LBB0_239; CHECK-NEXT: b .LBB0_540; CHECK-NEXT: .p2align 441; CHECK-NEXT: .LBB0_4: # %if.end942; CHECK-NEXT: #43; CHECK-NEXT: add 9, 3, 944; CHECK-NEXT: lwz 10, 4(9)45; CHECK-NEXT: addi 10, 10, 146; CHECK-NEXT: stw 10, 4(9)47; CHECK-NEXT: b .LBB0_148; CHECK-NEXT: .LBB0_5: # %if.then49; CHECK-NEXT: lwax 3, 9, 350; CHECK-NEXT: blr51entry:52 br label %block253 54block2: ; preds = %entry55 br label %block356 57block3: ; preds = %block8, %block258 %OuterInd.0 = phi i32 [ 0, %block2 ], [ %inc, %block8 ]59 %InnerInd.0 = phi i32 [ 0, %block2 ], [ %inc1, %block8 ]60 %inc = add nsw i32 %OuterInd.0, 161 br label %block462 63block4: ; preds = %if.then4, %block364 %InnerInd.1 = phi i32 [ %InnerInd.0, %block3 ], [ %inc1, %if.then4 ]65 %cmp = icmp sge i32 %inc, %LenA66 br i1 %cmp, label %if.then, label %if.end67 68if.then: ; preds = %block469 %sub = sub nsw i32 %inc, 170 %idxprom = sext i32 %sub to i6471 %arrayidx = getelementptr inbounds i32, ptr %PtrA, i64 %idxprom72 %0 = load i32, ptr %arrayidx, align 473 ret i32 %074 75if.end: ; preds = %block476 br label %block577 78block5: ; preds = %if.end79 %inc1 = add nsw i32 %InnerInd.1, 180 %idxprom2 = sext i32 %InnerInd.1 to i6481 %arrayidx3 = getelementptr inbounds i32, ptr %PtrB, i64 %idxprom282 %1 = load i32, ptr %arrayidx3, align 483 %tobool = icmp ne i32 %1, 084 br i1 %tobool, label %if.then4, label %if.end985 86if.then4: ; preds = %block587 %idxprom5 = sext i32 %inc to i6488 %arrayidx6 = getelementptr inbounds i32, ptr %PtrA, i64 %idxprom589 %2 = load i32, ptr %arrayidx6, align 490 %idxprom7 = sext i32 %inc1 to i6491 %arrayidx8 = getelementptr inbounds i32, ptr %PtrB, i64 %idxprom792 store i32 %2, ptr %arrayidx8, align 493 br label %block494 95if.end9: ; preds = %block596 br label %block697 98block6: ; preds = %if.end999 %idxprom10 = sext i32 %inc to i64100 %arrayidx11 = getelementptr inbounds i32, ptr %PtrA, i64 %idxprom10101 %3 = load i32, ptr %arrayidx11, align 4102 %inc12 = add nsw i32 %3, 1103 store i32 %inc12, ptr %arrayidx11, align 4104 br label %block8105 106block8: ; preds = %block6107 br label %block3108}109