blob: d07a11fe60fb6f8b88808c75e9c43054dcbde135 [file] [log] [blame]
Hal Finkel22304042014-02-25 20:51:50 +00001; RUN: llc < %s -march=ppc64 | FileCheck %s
2target datalayout = "E-m:e-i64:64-n32:64"
3target triple = "powerpc64-unknown-linux-gnu"
4
5; Function Attrs: nounwind
6define hidden void @_mpd_shortdiv(i64 %n) #0 {
7entry:
8 br i1 undef, label %for.end, label %for.body.lr.ph
9
10for.body.lr.ph: ; preds = %entry
11 br label %for.body
12
13for.body: ; preds = %for.body, %for.body.lr.ph
14 %i.018.in = phi i64 [ %n, %for.body.lr.ph ], [ %i.018, %for.body ]
15 %i.018 = add i64 %i.018.in, -1
16 %add.i = or i128 undef, undef
17 %div.i = udiv i128 %add.i, 0
18 %conv3.i11 = trunc i128 %div.i to i64
19 store i64 %conv3.i11, i64* undef, align 8
20 %cmp = icmp eq i64 %i.018, 0
21 br i1 %cmp, label %for.end, label %for.body
22
23for.end: ; preds = %for.body, %entry
24 ret void
25}
26
27; CHECK-LABEL: @_mpd_shortdiv
28; CHECK-NOT: mtctr
29
30attributes #0 = { nounwind }
31