DebugInfo: Keep track of subprograms who's arguments have been promoted.
[oota-llvm.git] / test / Transforms / ArgumentPromotion / aggregate-promote.ll
index d6041f644febb40995e8b7492d51db0cc3934142..12de51172739763165cda9c6fc9f649a8f6f34ed 100644 (file)
@@ -1,21 +1,24 @@
-; RUN: llvm-as < %s | opt -argpromotion -instcombine | not grep load
+; RUN: opt < %s -argpromotion -instcombine -S | not grep load
+target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
 
-%QuadTy = type {int, int, int, int}
+%QuadTy = type { i32, i32, i32, i32 }
+@G = constant %QuadTy {
+    i32 0, 
+    i32 0, 
+    i32 17, 
+    i32 25 }            ; <%QuadTy*> [#uses=1]
 
-%G = constant %QuadTy {int 0, int 0, int 17, int 25 }
-
-implementation
-
-internal int %test(%QuadTy* %P) {
-       %A = getelementptr %QuadTy* %P, long 0, ubyte 3
-       %B = getelementptr %QuadTy* %P, long 0, ubyte 2
-       %a = load int* %A
-       %b = load int* %B
-       %V = add int %a, %b
-       ret int %V
+define internal i32 @test(%QuadTy* %P) {
+        %A = getelementptr %QuadTy* %P, i64 0, i32 3            ; <i32*> [#uses=1]
+        %B = getelementptr %QuadTy* %P, i64 0, i32 2            ; <i32*> [#uses=1]
+        %a = load i32* %A               ; <i32> [#uses=1]
+        %b = load i32* %B               ; <i32> [#uses=1]
+        %V = add i32 %a, %b             ; <i32> [#uses=1]
+        ret i32 %V
 }
 
-int %caller() {
-       %V = call int %test(%QuadTy* %G)
-       ret int %V
+define i32 @caller() {
+        %V = call i32 @test( %QuadTy* @G )              ; <i32> [#uses=1]
+        ret i32 %V
 }
+