1; RUN: llvm-upgrade < %s | llvm-as | llc 2 3%a_str = internal constant [8 x sbyte] c"a = %d\0A\00" 4%b_str = internal constant [8 x sbyte] c"b = %d\0A\00" 5 6;; shl 7%a_shl_str = internal constant [14 x sbyte] c"a << %d = %d\0A\00" 8 9declare int %printf(sbyte*, ...) 10%A = global int 2 11%B = global int 5 12 13int %main() { 14entry: 15 %a = load int* %A 16 %b = load int* %B 17 %a_s = getelementptr [8 x sbyte]* %a_str, long 0, long 0 18 %b_s = getelementptr [8 x sbyte]* %b_str, long 0, long 0 19 %a_shl_s = getelementptr [14 x sbyte]* %a_shl_str, long 0, long 0 20 call int (sbyte*, ...)* %printf(sbyte* %a_s, int %a) 21 call int (sbyte*, ...)* %printf(sbyte* %b_s, int %b) 22 br label %shl_test 23 24shl_test: 25 ;; test left shifts 0-31 26 %s = phi ubyte [ 0, %entry ], [ %s_inc, %shl_test ] 27 %result = shl int %a, ubyte %s 28 call int (sbyte*, ...)* %printf(sbyte* %a_shl_s, ubyte %s, int %result) 29 %s_inc = add ubyte %s, 1 30 %done = seteq ubyte %s, 32 31 br bool %done, label %fini, label %shl_test 32 33fini: 34 ret int 0 35} 36