brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.1 KiB · 2c7eeab Raw
187 lines · plain
1; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc-unknown-linux-gnu -mcpu=g4 -disable-ppc-ilp-pref | FileCheck %s2; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=g4 -disable-ppc-ilp-pref | FileCheck %s3 4; ModuleID = 'tsc.c'5target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32:64"6target triple = "powerpc64-unknown-linux-gnu"7 8@a = common global [32000 x float] zeroinitializer, align 169@b = common global [32000 x float] zeroinitializer, align 1610@c = common global [32000 x float] zeroinitializer, align 1611@d = common global [32000 x float] zeroinitializer, align 1612@e = common global [32000 x float] zeroinitializer, align 1613@aa = common global [256 x [256 x float]] zeroinitializer, align 1614@bb = common global [256 x [256 x float]] zeroinitializer, align 1615@cc = common global [256 x [256 x float]] zeroinitializer, align 1616 17@.str11 = private unnamed_addr constant [6 x i8] c"s122 \00", align 118@.str152 = private unnamed_addr constant [14 x i8] c"S122\09 %.2f \09\09\00", align 119 20declare i32 @printf(ptr nocapture, ...) nounwind21declare i32 @init(ptr %name) nounwind22declare i64 @clock() nounwind23declare i32 @dummy(ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, float)24declare void @check(i32 %name) nounwind25 26; CHECK: mfcr27; CHECK: mtcr28 29define i32 @s122(i32 %n1, i32 %n3) nounwind {30entry:31  %call = tail call i32 @init(ptr @.str11)32  %call1 = tail call i64 @clock() nounwind33  %sub = add nsw i32 %n1, -134  %cmp316 = icmp slt i32 %sub, 3200035  br i1 %cmp316, label %entry.split.us, label %for.end.736 37entry.split.us:                                   ; preds = %entry38  %0 = sext i32 %sub to i6439  %1 = sext i32 %n3 to i6440  br label %for.body4.lr.ph.us41 42for.body4.us:                                     ; preds = %for.body4.lr.ph.us, %for.body4.us43  %indvars.iv20 = phi i64 [ 0, %for.body4.lr.ph.us ], [ %indvars.iv.next21, %for.body4.us ]44  %indvars.iv = phi i64 [ %0, %for.body4.lr.ph.us ], [ %indvars.iv.next, %for.body4.us ]45  %indvars.iv.next21 = add i64 %indvars.iv20, 146  %sub5.us = sub i64 31999, %indvars.iv2047  %sext = shl i64 %sub5.us, 3248  %idxprom.us = ashr exact i64 %sext, 3249  %arrayidx.us = getelementptr inbounds [32000 x float], ptr @b, i64 0, i64 %idxprom.us50  %2 = load float, ptr %arrayidx.us, align 451  %arrayidx7.us = getelementptr inbounds [32000 x float], ptr @a, i64 0, i64 %indvars.iv52  %3 = load float, ptr %arrayidx7.us, align 453  %add8.us = tail call float asm "fadd $0, $1, $2", "=f,f,f,~{cr2}"(float %3, float %2)54  store float %add8.us, ptr %arrayidx7.us, align 455  %indvars.iv.next = add i64 %indvars.iv, %156  %4 = trunc i64 %indvars.iv.next to i3257  %cmp3.us = icmp slt i32 %4, 3200058  br i1 %cmp3.us, label %for.body4.us, label %for.body4.lr.ph.us.159 60for.body4.lr.ph.us:                               ; preds = %entry.split.us, %for.end.us.461  %nl.019.us = phi i32 [ 0, %entry.split.us ], [ %inc.us.4, %for.end.us.4 ]62  br label %for.body4.us63 64for.end12:                                        ; preds = %for.end.7, %for.end.us.465  %call13 = tail call i64 @clock() nounwind66  %sub14 = sub nsw i64 %call13, %call167  %conv = sitofp i64 %sub14 to double68  %div = fdiv double %conv, 1.000000e+0669  %call15 = tail call i32 (ptr, ...) @printf(ptr @.str152, double %div) nounwind70  tail call void @check(i32 1)71  ret i32 072 73for.body4.lr.ph.us.1:                             ; preds = %for.body4.us74  %call10.us = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind75  br label %for.body4.us.176 77for.body4.us.1:                                   ; preds = %for.body4.us.1, %for.body4.lr.ph.us.178  %indvars.iv20.1 = phi i64 [ 0, %for.body4.lr.ph.us.1 ], [ %indvars.iv.next21.1, %for.body4.us.1 ]79  %indvars.iv.1 = phi i64 [ %0, %for.body4.lr.ph.us.1 ], [ %indvars.iv.next.1, %for.body4.us.1 ]80  %indvars.iv.next21.1 = add i64 %indvars.iv20.1, 181  %sub5.us.1 = sub i64 31999, %indvars.iv20.182  %sext23 = shl i64 %sub5.us.1, 3283  %idxprom.us.1 = ashr exact i64 %sext23, 3284  %arrayidx.us.1 = getelementptr inbounds [32000 x float], ptr @b, i64 0, i64 %idxprom.us.185  %5 = load float, ptr %arrayidx.us.1, align 486  %arrayidx7.us.1 = getelementptr inbounds [32000 x float], ptr @a, i64 0, i64 %indvars.iv.187  %6 = load float, ptr %arrayidx7.us.1, align 488  %add8.us.1 = fadd float %6, %589  store float %add8.us.1, ptr %arrayidx7.us.1, align 490  %indvars.iv.next.1 = add i64 %indvars.iv.1, %191  %7 = trunc i64 %indvars.iv.next.1 to i3292  %cmp3.us.1 = icmp slt i32 %7, 3200093  br i1 %cmp3.us.1, label %for.body4.us.1, label %for.body4.lr.ph.us.294 95for.body4.lr.ph.us.2:                             ; preds = %for.body4.us.196  %call10.us.1 = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind97  br label %for.body4.us.298 99for.body4.us.2:                                   ; preds = %for.body4.us.2, %for.body4.lr.ph.us.2100  %indvars.iv20.2 = phi i64 [ 0, %for.body4.lr.ph.us.2 ], [ %indvars.iv.next21.2, %for.body4.us.2 ]101  %indvars.iv.2 = phi i64 [ %0, %for.body4.lr.ph.us.2 ], [ %indvars.iv.next.2, %for.body4.us.2 ]102  %indvars.iv.next21.2 = add i64 %indvars.iv20.2, 1103  %sub5.us.2 = sub i64 31999, %indvars.iv20.2104  %sext24 = shl i64 %sub5.us.2, 32105  %idxprom.us.2 = ashr exact i64 %sext24, 32106  %arrayidx.us.2 = getelementptr inbounds [32000 x float], ptr @b, i64 0, i64 %idxprom.us.2107  %8 = load float, ptr %arrayidx.us.2, align 4108  %arrayidx7.us.2 = getelementptr inbounds [32000 x float], ptr @a, i64 0, i64 %indvars.iv.2109  %9 = load float, ptr %arrayidx7.us.2, align 4110  %add8.us.2 = fadd float %9, %8111  store float %add8.us.2, ptr %arrayidx7.us.2, align 4112  %indvars.iv.next.2 = add i64 %indvars.iv.2, %1113  %10 = trunc i64 %indvars.iv.next.2 to i32114  %cmp3.us.2 = icmp slt i32 %10, 32000115  br i1 %cmp3.us.2, label %for.body4.us.2, label %for.body4.lr.ph.us.3116 117for.body4.lr.ph.us.3:                             ; preds = %for.body4.us.2118  %call10.us.2 = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind119  br label %for.body4.us.3120 121for.body4.us.3:                                   ; preds = %for.body4.us.3, %for.body4.lr.ph.us.3122  %indvars.iv20.3 = phi i64 [ 0, %for.body4.lr.ph.us.3 ], [ %indvars.iv.next21.3, %for.body4.us.3 ]123  %indvars.iv.3 = phi i64 [ %0, %for.body4.lr.ph.us.3 ], [ %indvars.iv.next.3, %for.body4.us.3 ]124  %indvars.iv.next21.3 = add i64 %indvars.iv20.3, 1125  %sub5.us.3 = sub i64 31999, %indvars.iv20.3126  %sext25 = shl i64 %sub5.us.3, 32127  %idxprom.us.3 = ashr exact i64 %sext25, 32128  %arrayidx.us.3 = getelementptr inbounds [32000 x float], ptr @b, i64 0, i64 %idxprom.us.3129  %11 = load float, ptr %arrayidx.us.3, align 4130  %arrayidx7.us.3 = getelementptr inbounds [32000 x float], ptr @a, i64 0, i64 %indvars.iv.3131  %12 = load float, ptr %arrayidx7.us.3, align 4132  %add8.us.3 = fadd float %12, %11133  store float %add8.us.3, ptr %arrayidx7.us.3, align 4134  %indvars.iv.next.3 = add i64 %indvars.iv.3, %1135  %13 = trunc i64 %indvars.iv.next.3 to i32136  %cmp3.us.3 = icmp slt i32 %13, 32000137  br i1 %cmp3.us.3, label %for.body4.us.3, label %for.body4.lr.ph.us.4138 139for.body4.lr.ph.us.4:                             ; preds = %for.body4.us.3140  %call10.us.3 = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind141  br label %for.body4.us.4142 143for.body4.us.4:                                   ; preds = %for.body4.us.4, %for.body4.lr.ph.us.4144  %indvars.iv20.4 = phi i64 [ 0, %for.body4.lr.ph.us.4 ], [ %indvars.iv.next21.4, %for.body4.us.4 ]145  %indvars.iv.4 = phi i64 [ %0, %for.body4.lr.ph.us.4 ], [ %indvars.iv.next.4, %for.body4.us.4 ]146  %indvars.iv.next21.4 = add i64 %indvars.iv20.4, 1147  %sub5.us.4 = sub i64 31999, %indvars.iv20.4148  %sext26 = shl i64 %sub5.us.4, 32149  %idxprom.us.4 = ashr exact i64 %sext26, 32150  %arrayidx.us.4 = getelementptr inbounds [32000 x float], ptr @b, i64 0, i64 %idxprom.us.4151  %14 = load float, ptr %arrayidx.us.4, align 4152  %arrayidx7.us.4 = getelementptr inbounds [32000 x float], ptr @a, i64 0, i64 %indvars.iv.4153  %15 = load float, ptr %arrayidx7.us.4, align 4154  %add8.us.4 = fadd float %15, %14155  store float %add8.us.4, ptr %arrayidx7.us.4, align 4156  %indvars.iv.next.4 = add i64 %indvars.iv.4, %1157  %16 = trunc i64 %indvars.iv.next.4 to i32158  %cmp3.us.4 = icmp slt i32 %16, 32000159  br i1 %cmp3.us.4, label %for.body4.us.4, label %for.end.us.4160 161for.end.us.4:                                     ; preds = %for.body4.us.4162  %call10.us.4 = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind163  %inc.us.4 = add nsw i32 %nl.019.us, 5164  %exitcond.4 = icmp eq i32 %inc.us.4, 200000165  br i1 %exitcond.4, label %for.end12, label %for.body4.lr.ph.us166 167for.end.7:                                        ; preds = %entry, %for.end.7168  %nl.019 = phi i32 [ %inc.7, %for.end.7 ], [ 0, %entry ]169  %call10 = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind170  %call10.1 = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind171  %call10.2 = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind172  %call10.3 = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind173  %call10.4 = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind174  %call10.5 = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind175  %call10.6 = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind176  %call10.7 = tail call i32 @dummy(ptr @a, ptr @b, ptr @c, ptr @d, ptr @e, ptr @aa, ptr @bb, ptr @cc, float 0.000000e+00) nounwind177  %inc.7 = add nsw i32 %nl.019, 8178  %exitcond.7 = icmp eq i32 %inc.7, 200000179  br i1 %exitcond.7, label %for.end12, label %for.end.7180}181 182declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture, i64, i1) nounwind183 184declare i32 @puts(ptr nocapture) nounwind185 186!3 = !{!"branch_weights", i32 64, i32 4}187