On this code, llc did not pass the sixth argument (%reg321) to printf.
[oota-llvm.git] / test / LLC / badarg6.ll
1 ; On this code, llc did not pass the sixth argument (%reg321) to printf.
2 ; It passed the first five in %o0 - %o4, but never initialized %o5.
3 ; Fix in  SparcInstrSelection.cpp: 
4 ; 2030c2030
5 ; -                 if (i < target.getRegInfo().GetNumOfIntArgRegs())
6 ; +                 if (i <= target.getRegInfo().GetNumOfIntArgRegs())
7
8
9 %.LC12 = internal global [44 x sbyte] c"\09\09M = %g, I = %g, V = %g\0A\09\09O = %g, E = %g\0A\0A\00"           ; <[44 x sbyte]*>
10
11 implementation;
12
13 declare int %printf(sbyte*, ...)
14
15 declare double %opaque(double)
16
17 int %main(int %argc, sbyte** %argv) {
18
19 bb25:
20         %b = setle int %argc, 2
21         br bool %b, label %bb42, label %bb43
22
23 bb42:
24         %reg315 = call double (double)* %opaque(double 3.0)
25         %reg316 = call double (double)* %opaque(double 3.1)
26         %reg317 = call double (double)* %opaque(double 3.2)
27         %reg318 = call double (double)* %opaque(double 3.3)
28         %reg319 = call double (double)* %opaque(double 3.4)
29         br label %bb43
30
31 bb43:
32         %reg321 = phi double [ 2.000000e-01, %bb25 ], [ %reg315, %bb42 ]        
33         %reg322 = phi double [ 6.000000e+00, %bb25 ], [ %reg316, %bb42 ]        
34         %reg323 = phi double [ 0xBFF0000000000000, %bb25 ], [ %reg317, %bb42 ]  
35         %reg324 = phi double [ 0xBFF0000000000000, %bb25 ], [ %reg318, %bb42 ]  
36         %reg325 = phi double [ 1.000000e+00, %bb25 ], [ %reg319, %bb42 ]        
37
38         %reg609 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([44 x sbyte]* %.LC12, long 0, long 0), double %reg325, double %reg324, double %reg323, double %reg322, double %reg321 )
39
40         ret int 0
41 }