; RUN: llvm-as < %s | llvm-dis > %t1.ll
; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
; RUN: diff %t1.ll %t2.ll
; RUN: not grep cast %t2.ll
; RUN: grep "}>" %t2.ll
; END.

%struct.anon = type <{ i8, i32, i32, i32 }>
@foos = external global %struct.anon 
@bara = external global [2 x <{ i32, i8 }>]

;initializers should work for packed and non-packed the same way
@E1 = global <{i8, i32, i32}> <{i8 1, i32 2, i32 3}>
@E2 = global {i8, i32, i32} {i8 4, i32 5, i32 6}


define i32 @main() 
{
        %tmp = load i32, i32*  getelementptr (%struct.anon, %struct.anon* @foos, i32 0, i32 1)            ; <i32> [#uses=1]
        %tmp3 = load i32, i32* getelementptr (%struct.anon, %struct.anon* @foos, i32 0, i32 2)            ; <i32> [#uses=1]
        %tmp6 = load i32, i32* getelementptr (%struct.anon, %struct.anon* @foos, i32 0, i32 3)            ; <i32> [#uses=1]
        %tmp4 = add i32 %tmp3, %tmp             ; <i32> [#uses=1]
        %tmp7 = add i32 %tmp4, %tmp6            ; <i32> [#uses=1]
        ret i32 %tmp7
}

define i32 @bar() {
entry:
        %tmp = load i32, i32* getelementptr([2 x <{ i32, i8 }>], [2 x <{ i32, i8 }>]* @bara, i32 0, i32 0, i32 0 )            ; <i32> [#uses=1]
        %tmp4 = load i32, i32* getelementptr ([2 x <{ i32, i8 }>], [2 x <{ i32, i8 }>]* @bara, i32 0, i32 1, i32 0)           ; <i32> [#uses=1]
        %tmp5 = add i32 %tmp4, %tmp             ; <i32> [#uses=1]
        ret i32 %tmp5
}
