brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · 689b505 Raw
79 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -ppc-vsr-nums-as-vr -mtriple=powerpc64-unknown-linux-gnu \3; RUN:       -verify-machineinstrs -ppc-asm-full-reg-names -mcpu=pwr9 --ppc-enable-pipeliner \4; RUN:       | FileCheck %s5 6@x = dso_local local_unnamed_addr global <{ i32, i32, i32, i32, [1020 x i32] }> <{ i32 1, i32 2, i32 3, i32 4, [1020 x i32] zeroinitializer }>, align 47@y = dso_local global [1024 x i32] zeroinitializer, align 48 9define dso_local ptr @foo() local_unnamed_addr {10; CHECK-LABEL: foo:11; CHECK:       # %bb.0: # %entry12; CHECK-NEXT:    addis r5, r2, y@toc@ha13; CHECK-NEXT:    li r7, 34014; CHECK-NEXT:    addi r3, r5, y@toc@l15; CHECK-NEXT:    lwz r6, y@toc@l(r5)16; CHECK-NEXT:    addis r5, r2, x@toc@ha17; CHECK-NEXT:    mtctr r718; CHECK-NEXT:    addi r5, r5, x@toc@l19; CHECK-NEXT:    addi r4, r3, -820; CHECK-NEXT:    addi r5, r5, -821; CHECK-NEXT:    lwzu r7, 12(r5)22; CHECK-NEXT:    maddld r6, r7, r7, r623; CHECK-NEXT:    lwz r7, 4(r5)24; CHECK-NEXT:    stwu r6, 12(r4)25; CHECK-NEXT:    maddld r6, r7, r7, r626; CHECK-NEXT:    lwz r7, 8(r5)27; CHECK-NEXT:    .p2align 428; CHECK-NEXT:  .LBB0_1: # %for.body29; CHECK-NEXT:    #30; CHECK-NEXT:    maddld r7, r7, r7, r631; CHECK-NEXT:    lwzu r8, 12(r5)32; CHECK-NEXT:    stw r6, 4(r4)33; CHECK-NEXT:    lwz r6, 4(r5)34; CHECK-NEXT:    maddld r8, r8, r8, r735; CHECK-NEXT:    stw r7, 8(r4)36; CHECK-NEXT:    lwz r7, 8(r5)37; CHECK-NEXT:    maddld r6, r6, r6, r838; CHECK-NEXT:    stwu r8, 12(r4)39; CHECK-NEXT:    bdnz .LBB0_140; CHECK-NEXT:  # %bb.2:41; CHECK-NEXT:    maddld r5, r7, r7, r642; CHECK-NEXT:    stw r6, 4(r4)43; CHECK-NEXT:    stw r5, 8(r4)44; CHECK-NEXT:    blr45entry:46  %.pre = load i32, ptr @y, align 447  br label %for.body48 49for.cond.cleanup:                                 ; preds = %for.body50  ret ptr @y51 52for.body:                                         ; preds = %for.body, %entry53  %0 = phi i32 [ %.pre, %entry ], [ %add.2, %for.body ]54  %indvars.iv = phi i64 [ 1, %entry ], [ %indvars.iv.next.2, %for.body ]55  %arrayidx2 = getelementptr inbounds [1024 x i32], ptr @x, i64 0, i64 %indvars.iv56  %1 = load i32, ptr %arrayidx2, align 457  %mul = mul nsw i32 %1, %158  %add = add nsw i32 %mul, %059  %arrayidx6 = getelementptr inbounds [1024 x i32], ptr @y, i64 0, i64 %indvars.iv60  store i32 %add, ptr %arrayidx6, align 461  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 162  %arrayidx2.1 = getelementptr inbounds [1024 x i32], ptr @x, i64 0, i64 %indvars.iv.next63  %2 = load i32, ptr %arrayidx2.1, align 464  %mul.1 = mul nsw i32 %2, %265  %add.1 = add nsw i32 %mul.1, %add66  %arrayidx6.1 = getelementptr inbounds [1024 x i32], ptr @y, i64 0, i64 %indvars.iv.next67  store i32 %add.1, ptr %arrayidx6.1, align 468  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 269  %arrayidx2.2 = getelementptr inbounds [1024 x i32], ptr @x, i64 0, i64 %indvars.iv.next.170  %3 = load i32, ptr %arrayidx2.2, align 471  %mul.2 = mul nsw i32 %3, %372  %add.2 = add nsw i32 %mul.2, %add.173  %arrayidx6.2 = getelementptr inbounds [1024 x i32], ptr @y, i64 0, i64 %indvars.iv.next.174  store i32 %add.2, ptr %arrayidx6.2, align 475  %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 376  %exitcond.2 = icmp eq i64 %indvars.iv.next.2, 102477  br i1 %exitcond.2, label %for.cond.cleanup, label %for.body78}79