54 lines · plain
1; RUN: llc < %s -ppc-vsr-nums-as-vr -mtriple=powerpc64-unknown-linux-gnu \2; RUN: -verify-machineinstrs -ppc-asm-full-reg-names -mcpu=pwr9 --ppc-enable-pipeliner \3; RUN: -pass-remarks-analysis=pipeliner -pass-remarks=pipeliner -o /dev/null 2>&1 \4; RUN: | FileCheck %s --check-prefix=ENABLED5; RUN: llc < %s -ppc-vsr-nums-as-vr -mtriple=powerpc64-unknown-linux-gnu \6; RUN: -verify-machineinstrs -ppc-asm-full-reg-names -mcpu=pwr8 --ppc-enable-pipeliner \7; RUN: -pass-remarks-analysis=pipeliner -pass-remarks=pipeliner -o /dev/null 2>&1 \8; RUN: | FileCheck %s --check-prefix=ENABLED9; RUN: llc < %s -ppc-vsr-nums-as-vr -mtriple=powerpc64-unknown-linux-gnu \10; RUN: -verify-machineinstrs -ppc-asm-full-reg-names -mcpu=pwr7 --ppc-enable-pipeliner \11; RUN: -pass-remarks-analysis=pipeliner -pass-remarks=pipeliner -o /dev/null 2>&1 \12; RUN: | FileCheck %s --allow-empty --check-prefix=ENABLED13 14@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 415@y = dso_local global [1024 x i32] zeroinitializer, align 416 17define dso_local ptr @foo() local_unnamed_addr {18;ENABLED: Schedule found with Initiation Interval19;ENABLED: Pipelined succesfully!20entry:21 %.pre = load i32, ptr @y, align 422 br label %for.body23 24for.cond.cleanup: ; preds = %for.body25 ret ptr @y26 27for.body: ; preds = %for.body, %entry28 %0 = phi i32 [ %.pre, %entry ], [ %add.2, %for.body ]29 %indvars.iv = phi i64 [ 1, %entry ], [ %indvars.iv.next.2, %for.body ]30 %arrayidx2 = getelementptr inbounds [1024 x i32], ptr @x, i64 0, i64 %indvars.iv31 %1 = load i32, ptr %arrayidx2, align 432 %mul = mul nsw i32 %1, %133 %add = add nsw i32 %mul, %034 %arrayidx6 = getelementptr inbounds [1024 x i32], ptr @y, i64 0, i64 %indvars.iv35 store i32 %add, ptr %arrayidx6, align 436 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 137 %arrayidx2.1 = getelementptr inbounds [1024 x i32], ptr @x, i64 0, i64 %indvars.iv.next38 %2 = load i32, ptr %arrayidx2.1, align 439 %mul.1 = mul nsw i32 %2, %240 %add.1 = add nsw i32 %mul.1, %add41 %arrayidx6.1 = getelementptr inbounds [1024 x i32], ptr @y, i64 0, i64 %indvars.iv.next42 store i32 %add.1, ptr %arrayidx6.1, align 443 %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 244 %arrayidx2.2 = getelementptr inbounds [1024 x i32], ptr @x, i64 0, i64 %indvars.iv.next.145 %3 = load i32, ptr %arrayidx2.2, align 446 %mul.2 = mul nsw i32 %3, %347 %add.2 = add nsw i32 %mul.2, %add.148 %arrayidx6.2 = getelementptr inbounds [1024 x i32], ptr @y, i64 0, i64 %indvars.iv.next.149 store i32 %add.2, ptr %arrayidx6.2, align 450 %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 351 %exitcond.2 = icmp eq i64 %indvars.iv.next.2, 102452 br i1 %exitcond.2, label %for.cond.cleanup, label %for.body53}54