Make the reassociation pass more powerful so that it can handle expressions
[oota-llvm.git] / test / Transforms / Reassociate / 2012-05-08-UndefLeak.ll
1 ; RUN: opt < %s -reassociate -S | FileCheck %s
2 ; PR12169
3 ; PR12764
4
5 define i64 @f(i64 %x0) {
6 ; CHECK: @f
7 ; CHECK-NEXT: mul i64 %x0, 208
8 ; CHECK-NEXT: add i64 %{{.*}}, 1617
9 ; CHECK-NEXT: ret i64
10   %t0 = add i64 %x0, 1
11   %t1 = add i64 %x0, 2
12   %t2 = add i64 %x0, 3
13   %t3 = add i64 %x0, 4
14   %t4 = add i64 %x0, 5
15   %t5 = add i64 %x0, 6
16   %t6 = add i64 %x0, 7
17   %t7 = add i64 %x0, 8
18   %t8 = add i64 %x0, 9
19   %t9 = add i64 %x0, 10
20   %t10 = add i64 %x0, 11
21   %t11 = add i64 %x0, 12
22   %t12 = add i64 %x0, 13
23   %t13 = add i64 %x0, 14
24   %t14 = add i64 %x0, 15
25   %t15 = add i64 %x0, 16
26   %t16 = add i64 %x0, 17
27   %t17 = add i64 %x0, 18
28   %t18 = add i64 %t17, %t0
29   %t19 = add i64 %t18, %t1
30   %t20 = add i64 %t19, %t2
31   %t21 = add i64 %t20, %t3
32   %t22 = add i64 %t21, %t4
33   %t23 = add i64 %t22, %t5
34   %t24 = add i64 %t23, %t6
35   %t25 = add i64 %t24, %t7
36   %t26 = add i64 %t25, %t8
37   %t27 = add i64 %t26, %t9
38   %t28 = add i64 %t27, %t10
39   %t29 = add i64 %t28, %t11
40   %t30 = add i64 %t29, %t12
41   %t31 = add i64 %t30, %t13
42   %t32 = add i64 %t31, %t14
43   %t33 = add i64 %t32, %t15
44   %t34 = add i64 %t33, %t16
45   %t35 = add i64 %t34, %x0
46   %t36 = add i64 %t0, %t1
47   %t37 = add i64 %t36, %t2
48   %t38 = add i64 %t37, %t3
49   %t39 = add i64 %t38, %t4
50   %t40 = add i64 %t39, %t5
51   %t41 = add i64 %t40, %t6
52   %t42 = add i64 %t41, %t7
53   %t43 = add i64 %t42, %t8
54   %t44 = add i64 %t43, %t9
55   %t45 = add i64 %t44, %t10
56   %t46 = add i64 %t45, %t11
57   %t47 = add i64 %t46, %t12
58   %t48 = add i64 %t47, %t13
59   %t49 = add i64 %t48, %t14
60   %t50 = add i64 %t49, %t15
61   %t51 = add i64 %t50, %t16
62   %t52 = add i64 %t51, %t17
63   %t53 = add i64 %t52, %t18
64   %t54 = add i64 %t53, %t19
65   %t55 = add i64 %t54, %t20
66   %t56 = add i64 %t55, %t21
67   %t57 = add i64 %t56, %t22
68   %t58 = add i64 %t57, %t23
69   %t59 = add i64 %t58, %t24
70   %t60 = add i64 %t59, %t25
71   %t61 = add i64 %t60, %t26
72   %t62 = add i64 %t61, %t27
73   %t63 = add i64 %t62, %t28
74   %t64 = add i64 %t63, %t29
75   %t65 = add i64 %t64, %t30
76   %t66 = add i64 %t65, %t31
77   %t67 = add i64 %t66, %t32
78   %t68 = add i64 %t67, %t33
79   %t69 = add i64 %t68, %t34
80   %t70 = add i64 %t69, %t35
81   %t71 = add i64 %t70, %x0
82   ret i64 %t71
83 }