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 {
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
27 ; Function Attrs: nounwind
28 define void @foo2(i128* %a, i128* readonly %b, i128* readonly %c) #0 {
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
49 ; Function Attrs: nounwind
50 define void @foo3(i128* %a, i128* readonly %b, i128* readonly %c) #0 {
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
71 attributes #0 = { nounwind }