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