[Demangle] Add a few more options to the microsoft demangler
[llvm-complete.git] / test / CodeGen / PowerPC / ctrloop-sh.ll
blobc808537bf888658a519dfdc6ee2144d670f16e6c
1 ; RUN: llc -verify-machineinstrs < %s | FileCheck %s
2 target datalayout = "E-m:e-p:32:32-i128:64-n32"
3 target triple = "powerpc-ellcc-linux"
5 ; Function Attrs: nounwind
6 define void @foo1(i128* %a, i128* readonly %b, i128* readonly %c) #0 {
7 entry:
8   br label %for.body
10 for.body:                                         ; preds = %for.body, %entry
11   %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ]
12   %0 = load i128, i128* %b, align 16
13   %1 = load i128, i128* %c, align 16
14   %shl = shl i128 %0, %1
15   store i128 %shl, i128* %a, align 16
16   %inc = add nsw i32 %i.02, 1
17   %exitcond = icmp eq i32 %inc, 2048
18   br i1 %exitcond, label %for.end, label %for.body
20 for.end:                                          ; preds = %for.body
21   ret void
23 ; CHECK-LABEL: @foo1
24 ; CHECK-NOT: mtctr
27 ; Function Attrs: nounwind
28 define void @foo2(i128* %a, i128* readonly %b, i128* readonly %c) #0 {
29 entry:
30   br label %for.body
32 for.body:                                         ; preds = %for.body, %entry
33   %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ]
34   %0 = load i128, i128* %b, align 16
35   %1 = load i128, i128* %c, align 16
36   %shl = ashr i128 %0, %1
37   store i128 %shl, i128* %a, align 16
38   %inc = add nsw i32 %i.02, 1
39   %exitcond = icmp eq i32 %inc, 2048
40   br i1 %exitcond, label %for.end, label %for.body
42 for.end:                                          ; preds = %for.body
43   ret void
45 ; CHECK-LABEL: @foo2
46 ; CHECK-NOT: mtctr
49 ; Function Attrs: nounwind
50 define void @foo3(i128* %a, i128* readonly %b, i128* readonly %c) #0 {
51 entry:
52   br label %for.body
54 for.body:                                         ; preds = %for.body, %entry
55   %i.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ]
56   %0 = load i128, i128* %b, align 16
57   %1 = load i128, i128* %c, align 16
58   %shl = lshr i128 %0, %1
59   store i128 %shl, i128* %a, align 16
60   %inc = add nsw i32 %i.02, 1
61   %exitcond = icmp eq i32 %inc, 2048
62   br i1 %exitcond, label %for.end, label %for.body
64 for.end:                                          ; preds = %for.body
65   ret void
67 ; CHECK-LABEL: @foo3
68 ; CHECK-NOT: mtctr
71 attributes #0 = { nounwind }