1 ; RUN: llvm-uselistorder < %s -preserve-bc-use-list-order -num-shuffles=5
3 @a = global [4 x i1] [i1 0, i1 1, i1 0, i1 1]
4 @b = alias i1* getelementptr ([4 x i1]* @a, i64 0, i64 2)
6 ; Check use-list order of constants used by globals.
11 ; Check use-list order between variables and aliases.
12 @target = global i3 zeroinitializer
13 @alias1 = alias i3* @target
14 @alias2 = alias i3* @target
15 @alias3 = alias i3* @target
16 @var1 = global i3* @target
17 @var2 = global i3* @target
18 @var3 = global i3* @target
20 define i64 @f(i64 %f) {
26 define i64 @g(i64 %g) {
32 define i64 @h(i64 %h) {
38 define i64 @i(i64 %i) {
44 define i64 @j(i64 %j) {
50 define i64 @k(i64 %k) {
56 define i64 @l(i64 %l) {
70 %a = load i1* getelementptr ([4 x i1]* @a, i64 0, i64 2)
74 define i32 @f32(i32 %a, i32 %b, i32 %c, i32 %d) {
80 %sum = add i32 %eh, %ef
84 %product = phi i32 [%ef, %first], [%sum, %second]
94 %gotosecond = icmp slt i32 %gh, -9
95 br i1 %gotosecond, label %second, label %exit