Fix thumbv4t indirect calls
[oota-llvm.git] / test / CodeGen / Generic / badCallArgLRLLVM.ll
index 47a2aff073d0f1b4629bc2606a88c65d5f9b3a14..4ed88df4a538c5f31c98a6d454d847e9dca96fbd 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llvm-as -f %s -o - | llc
+; RUN: llc < %s
 
 ; This caused a problem because the argument of a call was defined by
 ; the return value of another call that appears later in the code.
@@ -8,25 +8,24 @@
 ; llc dies in UltraSparcRegInfo::suggestRegs4CallArgs() with:
 ;     ERROR: In call instr, no LR for arg: 0x1009e0740 
 ;
-implementation   ; Functions:
 
-declare int %getInt(int);
+declare i32 @getInt(i32)
 
-int %main(int %argc, sbyte** %argv) {
-bb0:                                   ;[#uses=0]
+define i32 @main(i32 %argc, i8** %argv) {
+bb0:
         br label %bb2
 
-bb1:
-       %reg222 = call int (int)* %getInt(int %reg218) ;; ARG #1 HAS NO LR
-       %reg110 = add int %reg222, 1
-       %b = setle int %reg110, 0
-       br bool %b, label %bb2, label %bb3
+bb1:            ; preds = %bb2
+        %reg222 = call i32 @getInt( i32 %reg218 )               ; <i32> [#uses=1]
+        %reg110 = add i32 %reg222, 1            ; <i32> [#uses=2]
+        %b = icmp sle i32 %reg110, 0            ; <i1> [#uses=1]
+        br i1 %b, label %bb2, label %bb3
 
-bb2:
-       %reg218 = call int (int)* %getInt(int %argc)   ;; THIS CALL NOT YET SEEN
-       br label %bb1
+bb2:            ; preds = %bb1, %bb0
+        %reg218 = call i32 @getInt( i32 %argc )         ; <i32> [#uses=1]
+        br label %bb1
 
-bb3:
-       ret int %reg110
+bb3:            ; preds = %bb1
+        ret i32 %reg110
 }