1; RUN: llc < %s
2; PR3288
3
4define void @a() {
5  %i = insertvalue [2 x [2 x i32]] undef, [2 x i32] undef, 1
6  ret void
7}
8define void @b() {
9  %i = insertvalue {{i32,float},{i16,double}} undef, {i16,double} undef, 1
10  ret void
11}
12define void @c() {
13  %i = insertvalue [2 x [2 x i32]] zeroinitializer, [2 x i32] zeroinitializer, 1
14  ret void
15}
16define void @d() {
17  %i = insertvalue {{i32,float},{i16,double}} zeroinitializer, {i16,double} zeroinitializer, 1
18  ret void
19}
20define void @e() {
21  %i = insertvalue [2 x [2 x i32]] undef, [2 x i32] undef, 0
22  ret void
23}
24define void @f() {
25  %i = insertvalue {{i32,float},{i16,double}} undef, {i32,float} undef, 0
26  ret void
27}
28define void @g() {
29  %i = insertvalue [2 x [2 x i32]] zeroinitializer, [2 x i32] zeroinitializer, 0
30  ret void
31}
32define void @h() {
33  %i = insertvalue {{i32,float},{i16,double}} zeroinitializer, {i32,float} zeroinitializer, 0
34  ret void
35}
36define void @ax() {
37  %i = insertvalue [2 x [2 x i32]] undef, i32 undef, 1, 1
38  ret void
39}
40define void @bx() {
41  %i = insertvalue {{i32,float},{i16,double}} undef, double undef, 1, 1
42  ret void
43}
44define void @cx() {
45  %i = insertvalue [2 x [2 x i32]] zeroinitializer, i32 zeroinitializer, 1, 1
46  ret void
47}
48define void @dx() {
49  %i = insertvalue {{i32,float},{i16,double}} zeroinitializer, double zeroinitializer, 1, 1
50  ret void
51}
52define void @ex() {
53  %i = insertvalue [2 x [2 x i32]] undef, i32 undef, 0, 1
54  ret void
55}
56define void @fx() {
57  %i = insertvalue {{i32,float},{i16,double}} undef, float undef, 0, 1
58  ret void
59}
60define void @gx() {
61  %i = insertvalue [2 x [2 x i32]] zeroinitializer, i32 zeroinitializer, 0, 1
62  ret void
63}
64define void @hx() {
65  %i = insertvalue {{i32,float},{i16,double}} zeroinitializer, float zeroinitializer, 0, 1
66  ret void
67}
68