brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 241942d Raw
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