--- /dev/null
+; RUN: llvm-as < %s | opt -lower-packed | llvm-dis
+
+%foo = uninitialized global <2 x int>;
+%bar = uninitialized global <2 x int>;
+
+implementation ; Functions:
+
+void %main()
+{
+ %t0 = load <2 x int>* %foo
+ %t2 = add <2 x int> %t0, %t0
+ %t3 = select bool false, <2 x int> %t0, <2 x int> %t2
+ store <2 x int> %t3, <2 x int>* %bar
+
+ %c0 = add <2 x int> <int 1, int 1>, %t0
+ %c1 = add <2 x int> %t0, <int 0, int 0>
+ %c2 = select bool true, <2 x int> <int 1, int 1>, <2 x int> %t0
+ store <2 x int> <int 4, int 4>, <2 x int>* %foo
+ ret void
+}
\ No newline at end of file
--- /dev/null
+; RUN: llvm-as < %s | llvm-dis
+
+%bar = external global <2 x int> ; <<2 x int>*> [#uses=1]
+
+implementation ; Functions:
+
+void %main()
+{
+ store <2 x int> < int 0, int 1 >, <2 x int>* %bar
+ ret void
+}
--- /dev/null
+; RUN: llvm-as < %s | llvm-dis
+
+%foo = global <2 x int> <int 0, int 1>;
+%bar = uninitialized global <2 x int>;
+
+implementation ; Functions:
+
+void %main()
+{
+ %t0 = load <2 x int>* %foo;
+ store <2 x int> %t0, <2 x int>* %bar
+ ret void
+}
\ No newline at end of file
--- /dev/null
+; RUN: llvm-as < %s | llvm-dis
+
+%foo = uninitialized global <4 x float>;
+%bar = uninitialized global <4 x float>;
+
+implementation ; Functions:
+
+void %main()
+{
+ %t0 = load <4 x float>* %foo
+ %t1 = add <4 x float> %t0, %t0
+ %t2 = select bool true, <4 x float> %t0, <4 x float> %t1
+ store <4 x float> %t2, <4 x float>* %bar
+ ret void
+}
\ No newline at end of file
--- /dev/null
+; RUN: llvm-as < %s | llvm-dis
+
+%foo = uninitialized global <4 x float>;
+%bar = uninitialized global <4 x float>;
+
+implementation ; Functions:
+
+void %main()
+{
+ %t0 = load <4 x float>* %foo
+ %t2 = add <4 x float> %t0, %t0
+ %t3 = select bool false, <4 x float> %t0, <4 x float> %t2
+ store <4 x float> %t3, <4 x float>* %bar
+ ret void
+}
\ No newline at end of file