94 lines · plain
1; RUN: llc -verify-machineinstrs < %s -mcpu=ppc | FileCheck %s2 3target datalayout = "E-p:32:32:32-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"4target triple = "powerpc-unknown-linux-gnu"5 6define i64 @foo(ptr nocapture %n, i64 %d) nounwind readonly {7entry:8 br label %for.body9 10for.body: ; preds = %for.body, %entry11 %i.06 = phi i32 [ 0, %entry ], [ %inc, %for.body ]12 %x.05 = phi i64 [ 0, %entry ], [ %conv1, %for.body ]13 %arrayidx = getelementptr inbounds i64, ptr %n, i32 %i.0614 %0 = load i64, ptr %arrayidx, align 815 %conv = udiv i64 %x.05, %d16 %conv1 = add i64 %conv, %017 %inc = add nsw i32 %i.06, 118 %exitcond = icmp eq i32 %inc, 204819 br i1 %exitcond, label %for.end, label %for.body20 21for.end: ; preds = %for.body22 ret i64 %conv123}24 25; CHECK: @foo26; CHECK-NOT: mtctr27 28define i64 @foo2(ptr nocapture %n, i64 %d) nounwind readonly {29entry:30 br label %for.body31 32for.body: ; preds = %for.body, %entry33 %i.06 = phi i32 [ 0, %entry ], [ %inc, %for.body ]34 %x.05 = phi i64 [ 0, %entry ], [ %conv1, %for.body ]35 %arrayidx = getelementptr inbounds i64, ptr %n, i32 %i.0636 %0 = load i64, ptr %arrayidx, align 837 %conv = sdiv i64 %x.05, %d38 %conv1 = add i64 %conv, %039 %inc = add nsw i32 %i.06, 140 %exitcond = icmp eq i32 %inc, 204841 br i1 %exitcond, label %for.end, label %for.body42 43for.end: ; preds = %for.body44 ret i64 %conv145}46 47; CHECK: @foo248; CHECK-NOT: mtctr49 50define i64 @foo3(ptr nocapture %n, i64 %d) nounwind readonly {51entry:52 br label %for.body53 54for.body: ; preds = %for.body, %entry55 %i.06 = phi i32 [ 0, %entry ], [ %inc, %for.body ]56 %x.05 = phi i64 [ 0, %entry ], [ %conv1, %for.body ]57 %arrayidx = getelementptr inbounds i64, ptr %n, i32 %i.0658 %0 = load i64, ptr %arrayidx, align 859 %conv = urem i64 %x.05, %d60 %conv1 = add i64 %conv, %061 %inc = add nsw i32 %i.06, 162 %exitcond = icmp eq i32 %inc, 204863 br i1 %exitcond, label %for.end, label %for.body64 65for.end: ; preds = %for.body66 ret i64 %conv167}68 69; CHECK: @foo370; CHECK-NOT: mtctr71 72define i64 @foo4(ptr nocapture %n, i64 %d) nounwind readonly {73entry:74 br label %for.body75 76for.body: ; preds = %for.body, %entry77 %i.06 = phi i32 [ 0, %entry ], [ %inc, %for.body ]78 %x.05 = phi i64 [ 0, %entry ], [ %conv1, %for.body ]79 %arrayidx = getelementptr inbounds i64, ptr %n, i32 %i.0680 %0 = load i64, ptr %arrayidx, align 881 %conv = srem i64 %x.05, %d82 %conv1 = add i64 %conv, %083 %inc = add nsw i32 %i.06, 184 %exitcond = icmp eq i32 %inc, 204885 br i1 %exitcond, label %for.end, label %for.body86 87for.end: ; preds = %for.body88 ret i64 %conv189}90 91; CHECK: @foo492; CHECK-NOT: mtctr93 94