Add a missing error handling to llvm-lto.
[oota-llvm.git] / test / ExecutionEngine / test-interp-vec-select.ll
1 ; RUN: %lli -force-interpreter=true %s > /dev/null
2
3 define i32 @main() {
4
5   ; Vector values
6   %a2_i8 = add <2 x i8> zeroinitializer, <i8 0, i8 1>
7   %a3_i8 = add <3 x i8> zeroinitializer, <i8 0, i8 1, i8 2>
8   %a4_i8 = add <4 x i8> zeroinitializer, <i8 0, i8 1, i8 2, i8 3>
9   %a8_i8 = add <8 x i8> zeroinitializer, <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7>
10   %a16_i8 = add <16 x i8> zeroinitializer, <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>
11
12   %a2_i16 = add <2 x i16> zeroinitializer, <i16 0, i16 1>
13   %a3_i16 = add <3 x i16> zeroinitializer, <i16 0, i16 1, i16 2>
14   %a4_i16 = add <4 x i16> zeroinitializer, <i16 0, i16 1, i16 2, i16 3>
15   %a8_i16 = add <8 x i16> zeroinitializer, <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>
16   %a16_i16 = add <16 x i16> zeroinitializer, <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15>
17
18   %a2_i32 = add <2 x i32> zeroinitializer, <i32 0, i32 1>
19   %a3_i32 = add <3 x i32> zeroinitializer, <i32 0, i32 1, i32 2>
20   %a4_i32 = add <4 x i32> zeroinitializer, <i32 0, i32 1, i32 2, i32 3>
21   %a8_i32 = add <8 x i32> zeroinitializer, <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
22   %a16_i32 = add <16 x i32> zeroinitializer, <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
23
24   %a2_i64 = add <2 x i64> zeroinitializer, <i64 0, i64 1>
25   %a3_i64 = add <3 x i64> zeroinitializer, <i64 0, i64 1, i64 2>
26   %a4_i64 = add <4 x i64> zeroinitializer, <i64 0, i64 1, i64 2, i64 3>
27   %a8_i64 = add <8 x i64> zeroinitializer, <i64 0, i64 1, i64 2, i64 3, i64 4, i64 5, i64 6, i64 7>
28   %a16_i64 = add <16 x i64> zeroinitializer, <i64 0, i64 1, i64 2, i64 3, i64 4, i64 5, i64 6, i64 7, i64 8, i64 9, i64 10, i64 11, i64 12, i64 13, i64 14, i64 15>
29
30   %a2_float = fadd <2 x float> zeroinitializer, <float 0.0, float 1.0>
31   %a3_float = fadd <3 x float> zeroinitializer, <float 0.0, float 1.0, float 2.0>
32   %a4_float = fadd <4 x float> zeroinitializer, <float 0.0, float 1.0, float 2.0, float 3.0>
33   %a8_float = fadd <8 x float> zeroinitializer, <float 0.0, float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0>
34   %a16_float = fadd <16 x float> zeroinitializer, <float 0.0, float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, float 11.0, float 12.0, float 13.0, float 14.0, float 15.0>
35
36   %a2_double = fadd <2 x double> zeroinitializer, <double 0.0, double 1.0>
37   %a3_double = fadd <3 x double> zeroinitializer, <double 0.0, double 1.0, double 2.0>
38   %a4_double = fadd <4 x double> zeroinitializer, <double 0.0, double 1.0, double 2.0, double 3.0>
39   %a8_double = fadd <8 x double> zeroinitializer, <double 0.0, double 1.0, double 2.0, double 3.0, double 4.0, double 5.0, double 6.0, double 7.0>
40   %a16_double = fadd <16 x double> zeroinitializer, <double 0.0, double 1.0, double 2.0, double 3.0, double 4.0, double 5.0, double 6.0, double 7.0, double 8.0, double 9.0, double 10.0, double 11.0, double 12.0, double 13.0, double 14.0, double 15.0>
41
42   %b2_i8  = sub <2 x i8> zeroinitializer, %a2_i8
43   %b3_i8  = sub <3 x i8> zeroinitializer, %a3_i8
44   %b4_i8  = sub <4 x i8> zeroinitializer, %a4_i8
45   %b8_i8  = sub <8 x i8> zeroinitializer, %a8_i8
46   %b16_i8 = sub <16 x i8> zeroinitializer, %a16_i8
47
48   %b2_i16  = sub <2 x i16> zeroinitializer, %a2_i16
49   %b3_i16  = sub <3 x i16> zeroinitializer, %a3_i16
50   %b4_i16  = sub <4 x i16> zeroinitializer, %a4_i16
51   %b8_i16  = sub <8 x i16> zeroinitializer, %a8_i16
52   %b16_i16 = sub <16 x i16> zeroinitializer, %a16_i16
53
54   %b2_i32  = sub <2 x i32> zeroinitializer, %a2_i32
55   %b3_i32  = sub <3 x i32> zeroinitializer, %a3_i32
56   %b4_i32  = sub <4 x i32> zeroinitializer, %a4_i32
57   %b8_i32  = sub <8 x i32> zeroinitializer, %a8_i32
58   %b16_i32 = sub <16 x i32> zeroinitializer, %a16_i32
59
60   %b2_i64  = sub <2 x i64> zeroinitializer, %a2_i64
61   %b3_i64  = sub <3 x i64> zeroinitializer, %a3_i64
62   %b4_i64  = sub <4 x i64> zeroinitializer, %a4_i64
63   %b8_i64  = sub <8 x i64> zeroinitializer, %a8_i64
64   %b16_i64 = sub <16 x i64> zeroinitializer, %a16_i64
65
66   %b2_float  = fsub <2 x float> zeroinitializer, %a2_float
67   %b3_float  = fsub <3 x float> zeroinitializer, %a3_float
68   %b4_float  = fsub <4 x float> zeroinitializer, %a4_float
69   %b8_float  = fsub <8 x float> zeroinitializer, %a8_float
70   %b16_float = fsub <16 x float> zeroinitializer, %a16_float
71
72   %b2_double  = fsub <2 x double> zeroinitializer, %a2_double
73   %b3_double  = fsub <3 x double> zeroinitializer, %a3_double
74   %b4_double  = fsub <4 x double> zeroinitializer, %a4_double
75   %b8_double  = fsub <8 x double> zeroinitializer, %a8_double
76   %b16_double = fsub <16 x double> zeroinitializer, %a16_double
77
78
79
80   %v0 = select <2 x i1> <i1 true, i1 false>, <2 x i8> %a2_i8, <2 x i8> %b2_i8
81   %v1 = select <3 x i1> <i1 true, i1 false, i1 true>, <3 x i8> %a3_i8, <3 x i8> %b3_i8
82   %v2 = select <4 x i1> <i1 true, i1 false, i1 true, i1 false>, <4 x i8> %a4_i8, <4 x i8> %b4_i8
83   %v3 = select <8 x i1> <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>, <8 x i8> %a8_i8, <8 x i8> %b8_i8
84   %v4 = select <16 x i1> <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>, <16 x i8> %a16_i8, <16 x i8> %b16_i8
85
86   %v5 = select <2 x i1> <i1 true, i1 false>, <2 x i16> %a2_i16, <2 x i16> %b2_i16
87   %v6 = select <3 x i1> <i1 true, i1 false, i1 true>, <3 x i16> %a3_i16, <3 x i16> %b3_i16
88   %v7 = select <4 x i1> <i1 true, i1 false, i1 true, i1 false>, <4 x i16> %a4_i16, <4 x i16> %b4_i16
89   %v8 = select <8 x i1> <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>, <8 x i16> %a8_i16, <8 x i16> %b8_i16
90   %v9 = select <16 x i1> <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>, <16 x i16> %a16_i16, <16 x i16> %b16_i16
91
92   %v10 = select <2 x i1> <i1 true, i1 false>, <2 x i32> %a2_i32, <2 x i32> %b2_i32
93   %v11 = select <3 x i1> <i1 true, i1 false, i1 true>, <3 x i32> %a3_i32, <3 x i32> %b3_i32
94   %v12 = select <4 x i1> <i1 true, i1 false, i1 true, i1 false>, <4 x i32> %a4_i32, <4 x i32> %b4_i32
95   %v13 = select <8 x i1> <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>, <8 x i32> %a8_i32, <8 x i32> %b8_i32
96   %v14 = select <16 x i1> <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>, <16 x i32> %a16_i32, <16 x i32> %b16_i32
97
98   %v15 = select <2 x i1> <i1 true, i1 false>, <2 x i64> %a2_i64, <2 x i64> %b2_i64
99   %v16 = select <3 x i1> <i1 true, i1 false, i1 true>, <3 x i64> %a3_i64, <3 x i64> %b3_i64
100   %v17 = select <4 x i1> <i1 true, i1 false, i1 true, i1 false>, <4 x i64> %a4_i64, <4 x i64> %b4_i64
101   %v18 = select <8 x i1> <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>, <8 x i64> %a8_i64, <8 x i64> %b8_i64
102   %v19 = select <16 x i1> <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>, <16 x i64> %a16_i64, <16 x i64> %b16_i64
103
104   %v20 = select <2 x i1> <i1 true, i1 false>, <2 x float> %a2_float, <2 x float> %b2_float
105   %v21 = select <3 x i1> <i1 true, i1 false, i1 true>, <3 x float> %a3_float, <3 x float> %b3_float
106   %v22 = select <4 x i1> <i1 true, i1 false, i1 true, i1 false>, <4 x float> %a4_float, <4 x float> %b4_float
107   %v23 = select <8 x i1> <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>, <8 x float> %a8_float, <8 x float> %b8_float
108   %v24 = select <16 x i1> <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>, <16 x float> %a16_float, <16 x float> %b16_float
109
110   %v25 = select <2 x i1> <i1 true, i1 false>, <2 x double> %a2_double, <2 x double> %b2_double
111   %v26 = select <3 x i1> <i1 true, i1 false, i1 true>, <3 x double> %a3_double, <3 x double> %b3_double
112   %v27 = select <4 x i1> <i1 true, i1 false, i1 true, i1 false>, <4 x double> %a4_double, <4 x double> %b4_double
113   %v28 = select <8 x i1> <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>, <8 x double> %a8_double, <8 x double> %b8_double
114   %v29 = select <16 x i1> <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>, <16 x double> %a16_double, <16 x double> %b16_double
115
116
117   ret i32 0
118 }