blob: 6d87dedee5171c5b96e58ce3e3cdb3294d24a2fd [file] [log] [blame]
Duncan P. N. Exon Smith6b6fdc92014-07-25 14:49:26 +00001; RUN: opt -S < %s -preserve-bc-use-list-order -verify-use-list-order
2; XFAIL: *
3
4@a = global [4 x i1] [i1 0, i1 1, i1 0, i1 1]
5@b = alias i1* getelementptr ([4 x i1]* @a, i64 0, i64 2)
6
7define i64 @f(i64 %f) {
8entry:
9 %sum = add i64 %f, 0
10 ret i64 %sum
11}
12
13define i64 @g(i64 %g) {
14entry:
15 %sum = add i64 %g, 0
16 ret i64 %sum
17}
18
19define i64 @h(i64 %h) {
20entry:
21 %sum = add i64 %h, 0
22 ret i64 %sum
23}
24
25define i64 @i(i64 %i) {
26entry:
27 %sum = add i64 %i, 1
28 ret i64 %sum
29}
30
31define i64 @j(i64 %j) {
32entry:
33 %sum = add i64 %j, 1
34 ret i64 %sum
35}
36
37define i64 @k(i64 %k) {
38entry:
39 %sum = add i64 %k, 1
40 ret i64 %sum
41}
42
43define i64 @l(i64 %l) {
44entry:
45 %sum = add i64 %l, 1
46 ret i64 %sum
47}
48
49define i1 @loadb() {
50entry:
51 %b = load i1* @b
52 ret i1 %b
53}
54
55define i1 @loada() {
56entry:
57 %a = load i1* getelementptr ([4 x i1]* @a, i64 0, i64 2)
58 ret i1 %a
59}
60
61define i32 @f32(i32 %a, i32 %b, i32 %c, i32 %d) {
62entry:
63 br label %first
64
65second:
66 %eh = mul i32 %e, %h
67 %sum = add i32 %eh, %ef
68 br label %exit
69
70exit:
71 %product = phi i32 [%ef, %first], [%sum, %second]
72 ret i32 %product
73
74first:
75 %e = add i32 %a, 7
76 %f = add i32 %b, 7
77 %g = add i32 %c, 8
78 %h = add i32 %d, 8
79 %ef = mul i32 %e, %f
80 %gh = mul i32 %g, %h
81 %gotosecond = icmp slt i32 %gh, -9
82 br i1 %gotosecond, label %second, label %exit
83}