+; RUN: llvm-as < %s | llvm-dis > %t1.ll
+; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
+; RUN: diff %t1.ll %t2.ll
-global %MyVar = int *
-global %MyIntList = { \2 *, int } *
-global int * ; int*:0
+@MyVar = external global i32 ; <i32*> [#uses=1]
+@MyIntList = external global { \2*, i32 } ; <{ \2*, i32 }*> [#uses=1]
+external global i32 ; <i32*>:0 [#uses=0]
+@AConst = constant i32 123 ; <i32*> [#uses=0]
+@AString = constant [4 x i8] c"test" ; <[4 x i8]*> [#uses=0]
+@ZeroInit = global { [100 x i32], [40 x float] } zeroinitializer ; <{ [100 x i32], [40 x float] }*> [#uses=0]
-implementation
-
-int "foo"(int %blah)
-begin
- store int 5, int *%MyVar
- store int 12, { \2 *, int } * %MyIntList, ubyte 1
- ret int %blah
-end
+define i32 @foo(i32 %blah) {
+ store i32 5, i32* @MyVar
+ %idx = getelementptr { \2*, i32 }* @MyIntList, i64 0, i32 1 ; <i32*> [#uses=1]
+ store i32 12, i32* %idx
+ ret i32 %blah
+}