[LLVM][Alignment] Make functions using log of alignment explicit
[llvm-complete.git] / test / CodeGen / PowerPC / ppc64-r2-alloc.ll
blobd8ca6da57494acfb5437d4f0ee6e7ddf7fb37c92
1 ; RUN: llc -verify-machineinstrs -mcpu=pwr7 < %s | FileCheck %s
2 target datalayout = "E-m:e-i64:64-n32:64"
3 target triple = "powerpc64-unknown-linux-gnu"
5 define signext i32 @foo(i32 signext %a, i32 signext %d) #0 {
6 entry:
7   %div = sdiv i32 %a, %d
8   %div1 = sdiv i32 %div, %d
9   %div2 = sdiv i32 %div1, %d
10   %div3 = sdiv i32 %div2, %d
11   %div4 = sdiv i32 %div3, %d
12   %div5 = sdiv i32 %div4, %d
13   %div6 = sdiv i32 %div5, %d
14   %div7 = sdiv i32 %div6, %d
15   %div8 = sdiv i32 %div7, %d
16   %div9 = sdiv i32 %div8, %d
17   %div10 = sdiv i32 %div9, %d
18   %div11 = sdiv i32 %div10, %d
19   %div12 = sdiv i32 %div11, %d
20   %div13 = sdiv i32 %div12, %d
21   %div14 = sdiv i32 %div13, %d
22   %div15 = sdiv i32 %div14, %d
23   %div16 = sdiv i32 %div15, %d
24   %div17 = sdiv i32 %div16, %d
25   %div18 = sdiv i32 %div17, %d
26   %div19 = sdiv i32 %div18, %d
27   %div20 = sdiv i32 %div19, %d
28   %div21 = sdiv i32 %div20, %d
29   %div22 = sdiv i32 %div21, %d
30   %div23 = sdiv i32 %div22, %d
31   %div24 = sdiv i32 %div23, %d
32   %div25 = sdiv i32 %div24, %d
33   %div26 = sdiv i32 %div25, %d
34   %div27 = sdiv i32 %div26, %d
35   %div28 = sdiv i32 %div27, %d
36   %div29 = sdiv i32 %div28, %d
37   %div30 = sdiv i32 %div29, %d
38   %div31 = sdiv i32 %div30, %d
39   %div32 = sdiv i32 %div31, %d
40   %div33 = sdiv i32 %div32, %div31
41   %div34 = sdiv i32 %div33, %div30
42   %div35 = sdiv i32 %div34, %div29
43   %div36 = sdiv i32 %div35, %div28
44   %div37 = sdiv i32 %div36, %div27
45   %div38 = sdiv i32 %div37, %div26
46   %div39 = sdiv i32 %div38, %div25
47   %div40 = sdiv i32 %div39, %div24
48   %div41 = sdiv i32 %div40, %div23
49   %div42 = sdiv i32 %div41, %div22
50   %div43 = sdiv i32 %div42, %div21
51   %div44 = sdiv i32 %div43, %div20
52   %div45 = sdiv i32 %div44, %div19
53   %div46 = sdiv i32 %div45, %div18
54   %div47 = sdiv i32 %div46, %div17
55   %div48 = sdiv i32 %div47, %div16
56   %div49 = sdiv i32 %div48, %div15
57   %div50 = sdiv i32 %div49, %div14
58   %div51 = sdiv i32 %div50, %div13
59   %div52 = sdiv i32 %div51, %div12
60   %div53 = sdiv i32 %div52, %div11
61   %div54 = sdiv i32 %div53, %div10
62   %div55 = sdiv i32 %div54, %div9
63   %div56 = sdiv i32 %div55, %div8
64   %div57 = sdiv i32 %div56, %div7
65   %div58 = sdiv i32 %div57, %div6
66   %div59 = sdiv i32 %div58, %div5
67   %div60 = sdiv i32 %div59, %div4
68   %div61 = sdiv i32 %div60, %div3
69   %div62 = sdiv i32 %div61, %div2
70   %div63 = sdiv i32 %div62, %div1
71   %div64 = sdiv i32 %div63, %div
72   ret i32 %div64
75 ; This function will need to use all non-reserved GPRs (and then some), make
76 ; sure that r2 is among them.
77 ; CHECK-LABEL: @foo
78 ; CHECK: std 2,
79 ; CHECK: ld 2,
80 ; CHECK: blr