[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / Analysis / CostModel / SystemZ / cmp-ext-01.ll
blobba60f08f5f45a469dda82bc9e4023789ec72460b
1 ; RUN: opt < %s -cost-model -analyze -mtriple=systemz-unknown -mcpu=z13 | FileCheck %s
4 define i8 @fun0(i8 %val1, i8 %val2) {
5   %cmp = icmp eq i8 %val1, %val2
6   %v = sext i1 %cmp to i8
7   ret i8 %v
9 ; CHECK: fun0
10 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val2
11 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i8
14 define i16 @fun1(i8 %val1, i8 %val2) {
15   %cmp = icmp eq i8 %val1, %val2
16   %v = sext i1 %cmp to i16
17   ret i16 %v
19 ; CHECK: fun1
20 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val2
21 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i16
24 define i32 @fun2(i8 %val1, i8 %val2) {
25   %cmp = icmp eq i8 %val1, %val2
26   %v = sext i1 %cmp to i32
27   ret i32 %v
29 ; CHECK: fun2
30 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val2
31 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i32
34 define i64 @fun3(i8 %val1, i8 %val2) {
35   %cmp = icmp eq i8 %val1, %val2
36   %v = sext i1 %cmp to i64
37   ret i64 %v
39 ; CHECK: fun3
40 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val2
41 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i64
44 define i8 @fun4(i16 %val1, i16 %val2) {
45   %cmp = icmp eq i16 %val1, %val2
46   %v = sext i1 %cmp to i8
47   ret i8 %v
49 ; CHECK: fun4
50 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val2
51 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i8
54 define i16 @fun5(i16 %val1, i16 %val2) {
55   %cmp = icmp eq i16 %val1, %val2
56   %v = sext i1 %cmp to i16
57   ret i16 %v
59 ; CHECK: fun5
60 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val2
61 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i16
64 define i32 @fun6(i16 %val1, i16 %val2) {
65   %cmp = icmp eq i16 %val1, %val2
66   %v = sext i1 %cmp to i32
67   ret i32 %v
69 ; CHECK: fun6
70 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val2
71 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i32
74 define i64 @fun7(i16 %val1, i16 %val2) {
75   %cmp = icmp eq i16 %val1, %val2
76   %v = sext i1 %cmp to i64
77   ret i64 %v
79 ; CHECK: fun7
80 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val2
81 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i64
84 define i8 @fun8(i32 %val1, i32 %val2) {
85   %cmp = icmp eq i32 %val1, %val2
86   %v = sext i1 %cmp to i8
87   ret i8 %v
89 ; CHECK: fun8
90 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2
91 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i8
94 define i16 @fun9(i32 %val1, i32 %val2) {
95   %cmp = icmp eq i32 %val1, %val2
96   %v = sext i1 %cmp to i16
97   ret i16 %v
99 ; CHECK: fun9
100 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2
101 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i16
104 define i32 @fun10(i32 %val1, i32 %val2) {
105   %cmp = icmp eq i32 %val1, %val2
106   %v = sext i1 %cmp to i32
107   ret i32 %v
109 ; CHECK: fun10
110 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2
111 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i32
114 define i64 @fun11(i32 %val1, i32 %val2) {
115   %cmp = icmp eq i32 %val1, %val2
116   %v = sext i1 %cmp to i64
117   ret i64 %v
119 ; CHECK: fun11
120 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2
121 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i64
124 define i8 @fun12(i64 %val1, i64 %val2) {
125   %cmp = icmp eq i64 %val1, %val2
126   %v = sext i1 %cmp to i8
127   ret i8 %v
129 ; CHECK: fun12
130 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2
131 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i8
134 define i16 @fun13(i64 %val1, i64 %val2) {
135   %cmp = icmp eq i64 %val1, %val2
136   %v = sext i1 %cmp to i16
137   ret i16 %v
139 ; CHECK: fun13
140 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2
141 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i16
144 define i32 @fun14(i64 %val1, i64 %val2) {
145   %cmp = icmp eq i64 %val1, %val2
146   %v = sext i1 %cmp to i32
147   ret i32 %v
149 ; CHECK: fun14
150 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2
151 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i32
154 define i64 @fun15(i64 %val1, i64 %val2) {
155   %cmp = icmp eq i64 %val1, %val2
156   %v = sext i1 %cmp to i64
157   ret i64 %v
159 ; CHECK: fun15
160 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2
161 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i64
164 define i8 @fun16(float %val1, float %val2) {
165   %cmp = fcmp ogt float %val1, %val2
166   %v = sext i1 %cmp to i8
167   ret i8 %v
169 ; CHECK: fun16
170 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2
171 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i8
174 define i16 @fun17(float %val1, float %val2) {
175   %cmp = fcmp ogt float %val1, %val2
176   %v = sext i1 %cmp to i16
177   ret i16 %v
179 ; CHECK: fun17
180 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2
181 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i16
184 define i32 @fun18(float %val1, float %val2) {
185   %cmp = fcmp ogt float %val1, %val2
186   %v = sext i1 %cmp to i32
187   ret i32 %v
189 ; CHECK: fun18
190 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2
191 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i32
194 define i64 @fun19(float %val1, float %val2) {
195   %cmp = fcmp ogt float %val1, %val2
196   %v = sext i1 %cmp to i64
197   ret i64 %v
199 ; CHECK: fun19
200 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2
201 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i64
204 define i8 @fun20(double %val1, double %val2) {
205   %cmp = fcmp ogt double %val1, %val2
206   %v = sext i1 %cmp to i8
207   ret i8 %v
209 ; CHECK: fun20
210 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2
211 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i8
214 define i16 @fun21(double %val1, double %val2) {
215   %cmp = fcmp ogt double %val1, %val2
216   %v = sext i1 %cmp to i16
217   ret i16 %v
219 ; CHECK: fun21
220 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2
221 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i16
224 define i32 @fun22(double %val1, double %val2) {
225   %cmp = fcmp ogt double %val1, %val2
226   %v = sext i1 %cmp to i32
227   ret i32 %v
229 ; CHECK: fun22
230 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2
231 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i32
234 define i64 @fun23(double %val1, double %val2) {
235   %cmp = fcmp ogt double %val1, %val2
236   %v = sext i1 %cmp to i64
237   ret i64 %v
239 ; CHECK: fun23
240 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2
241 ; CHECK: cost of 2 for instruction:   %v = sext i1 %cmp to i64
244 define <2 x i8> @fun24(<2 x i8> %val1, <2 x i8> %val2) {
245   %cmp = icmp eq <2 x i8> %val1, %val2
246   %v = sext <2 x i1> %cmp to <2 x i8>
247   ret <2 x i8> %v
249 ; CHECK: fun24
250 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i8> %val1, %val2
251 ; CHECK: cost of 0 for instruction:   %v = sext <2 x i1> %cmp to <2 x i8>
254 define <2 x i16> @fun25(<2 x i8> %val1, <2 x i8> %val2) {
255   %cmp = icmp eq <2 x i8> %val1, %val2
256   %v = sext <2 x i1> %cmp to <2 x i16>
257   ret <2 x i16> %v
259 ; CHECK: fun25
260 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i8> %val1, %val2
261 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i16>
264 define <2 x i32> @fun26(<2 x i8> %val1, <2 x i8> %val2) {
265   %cmp = icmp eq <2 x i8> %val1, %val2
266   %v = sext <2 x i1> %cmp to <2 x i32>
267   ret <2 x i32> %v
269 ; CHECK: fun26
270 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i8> %val1, %val2
271 ; CHECK: cost of 2 for instruction:   %v = sext <2 x i1> %cmp to <2 x i32>
274 define <2 x i64> @fun27(<2 x i8> %val1, <2 x i8> %val2) {
275   %cmp = icmp eq <2 x i8> %val1, %val2
276   %v = sext <2 x i1> %cmp to <2 x i64>
277   ret <2 x i64> %v
279 ; CHECK: fun27
280 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i8> %val1, %val2
281 ; CHECK: cost of 3 for instruction:   %v = sext <2 x i1> %cmp to <2 x i64>
284 define <2 x i8> @fun28(<2 x i16> %val1, <2 x i16> %val2) {
285   %cmp = icmp eq <2 x i16> %val1, %val2
286   %v = sext <2 x i1> %cmp to <2 x i8>
287   ret <2 x i8> %v
289 ; CHECK: fun28
290 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i16> %val1, %val2
291 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i8>
294 define <2 x i16> @fun29(<2 x i16> %val1, <2 x i16> %val2) {
295   %cmp = icmp eq <2 x i16> %val1, %val2
296   %v = sext <2 x i1> %cmp to <2 x i16>
297   ret <2 x i16> %v
299 ; CHECK: fun29
300 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i16> %val1, %val2
301 ; CHECK: cost of 0 for instruction:   %v = sext <2 x i1> %cmp to <2 x i16>
304 define <2 x i32> @fun30(<2 x i16> %val1, <2 x i16> %val2) {
305   %cmp = icmp eq <2 x i16> %val1, %val2
306   %v = sext <2 x i1> %cmp to <2 x i32>
307   ret <2 x i32> %v
309 ; CHECK: fun30
310 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i16> %val1, %val2
311 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i32>
314 define <2 x i64> @fun31(<2 x i16> %val1, <2 x i16> %val2) {
315   %cmp = icmp eq <2 x i16> %val1, %val2
316   %v = sext <2 x i1> %cmp to <2 x i64>
317   ret <2 x i64> %v
319 ; CHECK: fun31
320 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i16> %val1, %val2
321 ; CHECK: cost of 2 for instruction:   %v = sext <2 x i1> %cmp to <2 x i64>
324 define <2 x i8> @fun32(<2 x i32> %val1, <2 x i32> %val2) {
325   %cmp = icmp eq <2 x i32> %val1, %val2
326   %v = sext <2 x i1> %cmp to <2 x i8>
327   ret <2 x i8> %v
329 ; CHECK: fun32
330 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i32> %val1, %val2
331 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i8>
334 define <2 x i16> @fun33(<2 x i32> %val1, <2 x i32> %val2) {
335   %cmp = icmp eq <2 x i32> %val1, %val2
336   %v = sext <2 x i1> %cmp to <2 x i16>
337   ret <2 x i16> %v
339 ; CHECK: fun33
340 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i32> %val1, %val2
341 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i16>
344 define <2 x i32> @fun34(<2 x i32> %val1, <2 x i32> %val2) {
345   %cmp = icmp eq <2 x i32> %val1, %val2
346   %v = sext <2 x i1> %cmp to <2 x i32>
347   ret <2 x i32> %v
349 ; CHECK: fun34
350 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i32> %val1, %val2
351 ; CHECK: cost of 0 for instruction:   %v = sext <2 x i1> %cmp to <2 x i32>
354 define <2 x i64> @fun35(<2 x i32> %val1, <2 x i32> %val2) {
355   %cmp = icmp eq <2 x i32> %val1, %val2
356   %v = sext <2 x i1> %cmp to <2 x i64>
357   ret <2 x i64> %v
359 ; CHECK: fun35
360 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i32> %val1, %val2
361 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i64>
364 define <2 x i8> @fun36(<2 x i64> %val1, <2 x i64> %val2) {
365   %cmp = icmp eq <2 x i64> %val1, %val2
366   %v = sext <2 x i1> %cmp to <2 x i8>
367   ret <2 x i8> %v
369 ; CHECK: fun36
370 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i64> %val1, %val2
371 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i8>
374 define <2 x i16> @fun37(<2 x i64> %val1, <2 x i64> %val2) {
375   %cmp = icmp eq <2 x i64> %val1, %val2
376   %v = sext <2 x i1> %cmp to <2 x i16>
377   ret <2 x i16> %v
379 ; CHECK: fun37
380 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i64> %val1, %val2
381 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i16>
384 define <2 x i32> @fun38(<2 x i64> %val1, <2 x i64> %val2) {
385   %cmp = icmp eq <2 x i64> %val1, %val2
386   %v = sext <2 x i1> %cmp to <2 x i32>
387   ret <2 x i32> %v
389 ; CHECK: fun38
390 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i64> %val1, %val2
391 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i32>
394 define <2 x i64> @fun39(<2 x i64> %val1, <2 x i64> %val2) {
395   %cmp = icmp eq <2 x i64> %val1, %val2
396   %v = sext <2 x i1> %cmp to <2 x i64>
397   ret <2 x i64> %v
399 ; CHECK: fun39
400 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i64> %val1, %val2
401 ; CHECK: cost of 0 for instruction:   %v = sext <2 x i1> %cmp to <2 x i64>
404 define <2 x i8> @fun40(<2 x float> %val1, <2 x float> %val2) {
405   %cmp = fcmp ogt <2 x float> %val1, %val2
406   %v = sext <2 x i1> %cmp to <2 x i8>
407   ret <2 x i8> %v
409 ; CHECK: fun40
410 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <2 x float> %val1, %val2
411 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i8>
414 define <2 x i16> @fun41(<2 x float> %val1, <2 x float> %val2) {
415   %cmp = fcmp ogt <2 x float> %val1, %val2
416   %v = sext <2 x i1> %cmp to <2 x i16>
417   ret <2 x i16> %v
419 ; CHECK: fun41
420 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <2 x float> %val1, %val2
421 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i16>
424 define <2 x i32> @fun42(<2 x float> %val1, <2 x float> %val2) {
425   %cmp = fcmp ogt <2 x float> %val1, %val2
426   %v = sext <2 x i1> %cmp to <2 x i32>
427   ret <2 x i32> %v
429 ; CHECK: fun42
430 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <2 x float> %val1, %val2
431 ; CHECK: cost of 0 for instruction:   %v = sext <2 x i1> %cmp to <2 x i32>
434 define <2 x i64> @fun43(<2 x float> %val1, <2 x float> %val2) {
435   %cmp = fcmp ogt <2 x float> %val1, %val2
436   %v = sext <2 x i1> %cmp to <2 x i64>
437   ret <2 x i64> %v
439 ; CHECK: fun43
440 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <2 x float> %val1, %val2
441 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i64>
444 define <2 x i8> @fun44(<2 x double> %val1, <2 x double> %val2) {
445   %cmp = fcmp ogt <2 x double> %val1, %val2
446   %v = sext <2 x i1> %cmp to <2 x i8>
447   ret <2 x i8> %v
449 ; CHECK: fun44
450 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt <2 x double> %val1, %val2
451 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i8>
454 define <2 x i16> @fun45(<2 x double> %val1, <2 x double> %val2) {
455   %cmp = fcmp ogt <2 x double> %val1, %val2
456   %v = sext <2 x i1> %cmp to <2 x i16>
457   ret <2 x i16> %v
459 ; CHECK: fun45
460 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt <2 x double> %val1, %val2
461 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i16>
464 define <2 x i32> @fun46(<2 x double> %val1, <2 x double> %val2) {
465   %cmp = fcmp ogt <2 x double> %val1, %val2
466   %v = sext <2 x i1> %cmp to <2 x i32>
467   ret <2 x i32> %v
469 ; CHECK: fun46
470 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt <2 x double> %val1, %val2
471 ; CHECK: cost of 1 for instruction:   %v = sext <2 x i1> %cmp to <2 x i32>
474 define <2 x i64> @fun47(<2 x double> %val1, <2 x double> %val2) {
475   %cmp = fcmp ogt <2 x double> %val1, %val2
476   %v = sext <2 x i1> %cmp to <2 x i64>
477   ret <2 x i64> %v
479 ; CHECK: fun47
480 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt <2 x double> %val1, %val2
481 ; CHECK: cost of 0 for instruction:   %v = sext <2 x i1> %cmp to <2 x i64>
484 define <4 x i8> @fun48(<4 x i8> %val1, <4 x i8> %val2) {
485   %cmp = icmp eq <4 x i8> %val1, %val2
486   %v = sext <4 x i1> %cmp to <4 x i8>
487   ret <4 x i8> %v
489 ; CHECK: fun48
490 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i8> %val1, %val2
491 ; CHECK: cost of 0 for instruction:   %v = sext <4 x i1> %cmp to <4 x i8>
494 define <4 x i16> @fun49(<4 x i8> %val1, <4 x i8> %val2) {
495   %cmp = icmp eq <4 x i8> %val1, %val2
496   %v = sext <4 x i1> %cmp to <4 x i16>
497   ret <4 x i16> %v
499 ; CHECK: fun49
500 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i8> %val1, %val2
501 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i16>
504 define <4 x i32> @fun50(<4 x i8> %val1, <4 x i8> %val2) {
505   %cmp = icmp eq <4 x i8> %val1, %val2
506   %v = sext <4 x i1> %cmp to <4 x i32>
507   ret <4 x i32> %v
509 ; CHECK: fun50
510 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i8> %val1, %val2
511 ; CHECK: cost of 2 for instruction:   %v = sext <4 x i1> %cmp to <4 x i32>
514 define <4 x i64> @fun51(<4 x i8> %val1, <4 x i8> %val2) {
515   %cmp = icmp eq <4 x i8> %val1, %val2
516   %v = sext <4 x i1> %cmp to <4 x i64>
517   ret <4 x i64> %v
519 ; CHECK: fun51
520 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i8> %val1, %val2
521 ; CHECK: cost of 7 for instruction:   %v = sext <4 x i1> %cmp to <4 x i64>
524 define <4 x i8> @fun52(<4 x i16> %val1, <4 x i16> %val2) {
525   %cmp = icmp eq <4 x i16> %val1, %val2
526   %v = sext <4 x i1> %cmp to <4 x i8>
527   ret <4 x i8> %v
529 ; CHECK: fun52
530 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i16> %val1, %val2
531 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i8>
534 define <4 x i16> @fun53(<4 x i16> %val1, <4 x i16> %val2) {
535   %cmp = icmp eq <4 x i16> %val1, %val2
536   %v = sext <4 x i1> %cmp to <4 x i16>
537   ret <4 x i16> %v
539 ; CHECK: fun53
540 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i16> %val1, %val2
541 ; CHECK: cost of 0 for instruction:   %v = sext <4 x i1> %cmp to <4 x i16>
544 define <4 x i32> @fun54(<4 x i16> %val1, <4 x i16> %val2) {
545   %cmp = icmp eq <4 x i16> %val1, %val2
546   %v = sext <4 x i1> %cmp to <4 x i32>
547   ret <4 x i32> %v
549 ; CHECK: fun54
550 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i16> %val1, %val2
551 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i32>
554 define <4 x i64> @fun55(<4 x i16> %val1, <4 x i16> %val2) {
555   %cmp = icmp eq <4 x i16> %val1, %val2
556   %v = sext <4 x i1> %cmp to <4 x i64>
557   ret <4 x i64> %v
559 ; CHECK: fun55
560 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i16> %val1, %val2
561 ; CHECK: cost of 5 for instruction:   %v = sext <4 x i1> %cmp to <4 x i64>
564 define <4 x i8> @fun56(<4 x i32> %val1, <4 x i32> %val2) {
565   %cmp = icmp eq <4 x i32> %val1, %val2
566   %v = sext <4 x i1> %cmp to <4 x i8>
567   ret <4 x i8> %v
569 ; CHECK: fun56
570 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i32> %val1, %val2
571 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i8>
574 define <4 x i16> @fun57(<4 x i32> %val1, <4 x i32> %val2) {
575   %cmp = icmp eq <4 x i32> %val1, %val2
576   %v = sext <4 x i1> %cmp to <4 x i16>
577   ret <4 x i16> %v
579 ; CHECK: fun57
580 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i32> %val1, %val2
581 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i16>
584 define <4 x i32> @fun58(<4 x i32> %val1, <4 x i32> %val2) {
585   %cmp = icmp eq <4 x i32> %val1, %val2
586   %v = sext <4 x i1> %cmp to <4 x i32>
587   ret <4 x i32> %v
589 ; CHECK: fun58
590 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i32> %val1, %val2
591 ; CHECK: cost of 0 for instruction:   %v = sext <4 x i1> %cmp to <4 x i32>
594 define <4 x i64> @fun59(<4 x i32> %val1, <4 x i32> %val2) {
595   %cmp = icmp eq <4 x i32> %val1, %val2
596   %v = sext <4 x i1> %cmp to <4 x i64>
597   ret <4 x i64> %v
599 ; CHECK: fun59
600 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i32> %val1, %val2
601 ; CHECK: cost of 3 for instruction:   %v = sext <4 x i1> %cmp to <4 x i64>
604 define <4 x i8> @fun60(<4 x i64> %val1, <4 x i64> %val2) {
605   %cmp = icmp eq <4 x i64> %val1, %val2
606   %v = sext <4 x i1> %cmp to <4 x i8>
607   ret <4 x i8> %v
609 ; CHECK: fun60
610 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <4 x i64> %val1, %val2
611 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i8>
614 define <4 x i16> @fun61(<4 x i64> %val1, <4 x i64> %val2) {
615   %cmp = icmp eq <4 x i64> %val1, %val2
616   %v = sext <4 x i1> %cmp to <4 x i16>
617   ret <4 x i16> %v
619 ; CHECK: fun61
620 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <4 x i64> %val1, %val2
621 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i16>
624 define <4 x i32> @fun62(<4 x i64> %val1, <4 x i64> %val2) {
625   %cmp = icmp eq <4 x i64> %val1, %val2
626   %v = sext <4 x i1> %cmp to <4 x i32>
627   ret <4 x i32> %v
629 ; CHECK: fun62
630 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <4 x i64> %val1, %val2
631 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i32>
634 define <4 x i64> @fun63(<4 x i64> %val1, <4 x i64> %val2) {
635   %cmp = icmp eq <4 x i64> %val1, %val2
636   %v = sext <4 x i1> %cmp to <4 x i64>
637   ret <4 x i64> %v
639 ; CHECK: fun63
640 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <4 x i64> %val1, %val2
641 ; CHECK: cost of 0 for instruction:   %v = sext <4 x i1> %cmp to <4 x i64>
644 define <4 x i8> @fun64(<4 x float> %val1, <4 x float> %val2) {
645   %cmp = fcmp ogt <4 x float> %val1, %val2
646   %v = sext <4 x i1> %cmp to <4 x i8>
647   ret <4 x i8> %v
649 ; CHECK: fun64
650 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <4 x float> %val1, %val2
651 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i8>
654 define <4 x i16> @fun65(<4 x float> %val1, <4 x float> %val2) {
655   %cmp = fcmp ogt <4 x float> %val1, %val2
656   %v = sext <4 x i1> %cmp to <4 x i16>
657   ret <4 x i16> %v
659 ; CHECK: fun65
660 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <4 x float> %val1, %val2
661 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i16>
664 define <4 x i32> @fun66(<4 x float> %val1, <4 x float> %val2) {
665   %cmp = fcmp ogt <4 x float> %val1, %val2
666   %v = sext <4 x i1> %cmp to <4 x i32>
667   ret <4 x i32> %v
669 ; CHECK: fun66
670 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <4 x float> %val1, %val2
671 ; CHECK: cost of 0 for instruction:   %v = sext <4 x i1> %cmp to <4 x i32>
674 define <4 x i64> @fun67(<4 x float> %val1, <4 x float> %val2) {
675   %cmp = fcmp ogt <4 x float> %val1, %val2
676   %v = sext <4 x i1> %cmp to <4 x i64>
677   ret <4 x i64> %v
679 ; CHECK: fun67
680 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <4 x float> %val1, %val2
681 ; CHECK: cost of 3 for instruction:   %v = sext <4 x i1> %cmp to <4 x i64>
684 define <4 x i8> @fun68(<4 x double> %val1, <4 x double> %val2) {
685   %cmp = fcmp ogt <4 x double> %val1, %val2
686   %v = sext <4 x i1> %cmp to <4 x i8>
687   ret <4 x i8> %v
689 ; CHECK: fun68
690 ; CHECK: cost of 2 for instruction:   %cmp = fcmp ogt <4 x double> %val1, %val2
691 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i8>
694 define <4 x i16> @fun69(<4 x double> %val1, <4 x double> %val2) {
695   %cmp = fcmp ogt <4 x double> %val1, %val2
696   %v = sext <4 x i1> %cmp to <4 x i16>
697   ret <4 x i16> %v
699 ; CHECK: fun69
700 ; CHECK: cost of 2 for instruction:   %cmp = fcmp ogt <4 x double> %val1, %val2
701 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i16>
704 define <4 x i32> @fun70(<4 x double> %val1, <4 x double> %val2) {
705   %cmp = fcmp ogt <4 x double> %val1, %val2
706   %v = sext <4 x i1> %cmp to <4 x i32>
707   ret <4 x i32> %v
709 ; CHECK: fun70
710 ; CHECK: cost of 2 for instruction:   %cmp = fcmp ogt <4 x double> %val1, %val2
711 ; CHECK: cost of 1 for instruction:   %v = sext <4 x i1> %cmp to <4 x i32>
714 define <4 x i64> @fun71(<4 x double> %val1, <4 x double> %val2) {
715   %cmp = fcmp ogt <4 x double> %val1, %val2
716   %v = sext <4 x i1> %cmp to <4 x i64>
717   ret <4 x i64> %v
719 ; CHECK: fun71
720 ; CHECK: cost of 2 for instruction:   %cmp = fcmp ogt <4 x double> %val1, %val2
721 ; CHECK: cost of 0 for instruction:   %v = sext <4 x i1> %cmp to <4 x i64>
724 define <8 x i8> @fun72(<8 x i8> %val1, <8 x i8> %val2) {
725   %cmp = icmp eq <8 x i8> %val1, %val2
726   %v = sext <8 x i1> %cmp to <8 x i8>
727   ret <8 x i8> %v
729 ; CHECK: fun72
730 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i8> %val1, %val2
731 ; CHECK: cost of 0 for instruction:   %v = sext <8 x i1> %cmp to <8 x i8>
734 define <8 x i16> @fun73(<8 x i8> %val1, <8 x i8> %val2) {
735   %cmp = icmp eq <8 x i8> %val1, %val2
736   %v = sext <8 x i1> %cmp to <8 x i16>
737   ret <8 x i16> %v
739 ; CHECK: fun73
740 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i8> %val1, %val2
741 ; CHECK: cost of 1 for instruction:   %v = sext <8 x i1> %cmp to <8 x i16>
744 define <8 x i32> @fun74(<8 x i8> %val1, <8 x i8> %val2) {
745   %cmp = icmp eq <8 x i8> %val1, %val2
746   %v = sext <8 x i1> %cmp to <8 x i32>
747   ret <8 x i32> %v
749 ; CHECK: fun74
750 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i8> %val1, %val2
751 ; CHECK: cost of 5 for instruction:   %v = sext <8 x i1> %cmp to <8 x i32>
754 define <8 x i64> @fun75(<8 x i8> %val1, <8 x i8> %val2) {
755   %cmp = icmp eq <8 x i8> %val1, %val2
756   %v = sext <8 x i1> %cmp to <8 x i64>
757   ret <8 x i64> %v
759 ; CHECK: fun75
760 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i8> %val1, %val2
761 ; CHECK: cost of 15 for instruction:   %v = sext <8 x i1> %cmp to <8 x i64>
764 define <8 x i8> @fun76(<8 x i16> %val1, <8 x i16> %val2) {
765   %cmp = icmp eq <8 x i16> %val1, %val2
766   %v = sext <8 x i1> %cmp to <8 x i8>
767   ret <8 x i8> %v
769 ; CHECK: fun76
770 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i16> %val1, %val2
771 ; CHECK: cost of 1 for instruction:   %v = sext <8 x i1> %cmp to <8 x i8>
774 define <8 x i16> @fun77(<8 x i16> %val1, <8 x i16> %val2) {
775   %cmp = icmp eq <8 x i16> %val1, %val2
776   %v = sext <8 x i1> %cmp to <8 x i16>
777   ret <8 x i16> %v
779 ; CHECK: fun77
780 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i16> %val1, %val2
781 ; CHECK: cost of 0 for instruction:   %v = sext <8 x i1> %cmp to <8 x i16>
784 define <8 x i32> @fun78(<8 x i16> %val1, <8 x i16> %val2) {
785   %cmp = icmp eq <8 x i16> %val1, %val2
786   %v = sext <8 x i1> %cmp to <8 x i32>
787   ret <8 x i32> %v
789 ; CHECK: fun78
790 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i16> %val1, %val2
791 ; CHECK: cost of 3 for instruction:   %v = sext <8 x i1> %cmp to <8 x i32>
794 define <8 x i64> @fun79(<8 x i16> %val1, <8 x i16> %val2) {
795   %cmp = icmp eq <8 x i16> %val1, %val2
796   %v = sext <8 x i1> %cmp to <8 x i64>
797   ret <8 x i64> %v
799 ; CHECK: fun79
800 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i16> %val1, %val2
801 ; CHECK: cost of 11 for instruction:   %v = sext <8 x i1> %cmp to <8 x i64>
804 define <8 x i8> @fun80(<8 x i32> %val1, <8 x i32> %val2) {
805   %cmp = icmp eq <8 x i32> %val1, %val2
806   %v = sext <8 x i1> %cmp to <8 x i8>
807   ret <8 x i8> %v
809 ; CHECK: fun80
810 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <8 x i32> %val1, %val2
811 ; CHECK: cost of 1 for instruction:   %v = sext <8 x i1> %cmp to <8 x i8>
814 define <8 x i16> @fun81(<8 x i32> %val1, <8 x i32> %val2) {
815   %cmp = icmp eq <8 x i32> %val1, %val2
816   %v = sext <8 x i1> %cmp to <8 x i16>
817   ret <8 x i16> %v
819 ; CHECK: fun81
820 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <8 x i32> %val1, %val2
821 ; CHECK: cost of 1 for instruction:   %v = sext <8 x i1> %cmp to <8 x i16>
824 define <8 x i32> @fun82(<8 x i32> %val1, <8 x i32> %val2) {
825   %cmp = icmp eq <8 x i32> %val1, %val2
826   %v = sext <8 x i1> %cmp to <8 x i32>
827   ret <8 x i32> %v
829 ; CHECK: fun82
830 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <8 x i32> %val1, %val2
831 ; CHECK: cost of 0 for instruction:   %v = sext <8 x i1> %cmp to <8 x i32>
834 define <8 x i64> @fun83(<8 x i32> %val1, <8 x i32> %val2) {
835   %cmp = icmp eq <8 x i32> %val1, %val2
836   %v = sext <8 x i1> %cmp to <8 x i64>
837   ret <8 x i64> %v
839 ; CHECK: fun83
840 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <8 x i32> %val1, %val2
841 ; CHECK: cost of 7 for instruction:   %v = sext <8 x i1> %cmp to <8 x i64>
844 define <8 x i8> @fun84(<8 x i64> %val1, <8 x i64> %val2) {
845   %cmp = icmp eq <8 x i64> %val1, %val2
846   %v = sext <8 x i1> %cmp to <8 x i8>
847   ret <8 x i8> %v
849 ; CHECK: fun84
850 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <8 x i64> %val1, %val2
851 ; CHECK: cost of 3 for instruction:   %v = sext <8 x i1> %cmp to <8 x i8>
854 define <8 x i16> @fun85(<8 x i64> %val1, <8 x i64> %val2) {
855   %cmp = icmp eq <8 x i64> %val1, %val2
856   %v = sext <8 x i1> %cmp to <8 x i16>
857   ret <8 x i16> %v
859 ; CHECK: fun85
860 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <8 x i64> %val1, %val2
861 ; CHECK: cost of 3 for instruction:   %v = sext <8 x i1> %cmp to <8 x i16>
864 define <8 x i32> @fun86(<8 x i64> %val1, <8 x i64> %val2) {
865   %cmp = icmp eq <8 x i64> %val1, %val2
866   %v = sext <8 x i1> %cmp to <8 x i32>
867   ret <8 x i32> %v
869 ; CHECK: fun86
870 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <8 x i64> %val1, %val2
871 ; CHECK: cost of 2 for instruction:   %v = sext <8 x i1> %cmp to <8 x i32>
874 define <8 x i64> @fun87(<8 x i64> %val1, <8 x i64> %val2) {
875   %cmp = icmp eq <8 x i64> %val1, %val2
876   %v = sext <8 x i1> %cmp to <8 x i64>
877   ret <8 x i64> %v
879 ; CHECK: fun87
880 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <8 x i64> %val1, %val2
881 ; CHECK: cost of 0 for instruction:   %v = sext <8 x i1> %cmp to <8 x i64>
884 define <8 x i8> @fun88(<8 x float> %val1, <8 x float> %val2) {
885   %cmp = fcmp ogt <8 x float> %val1, %val2
886   %v = sext <8 x i1> %cmp to <8 x i8>
887   ret <8 x i8> %v
889 ; CHECK: fun88
890 ; CHECK: cost of 20 for instruction:   %cmp = fcmp ogt <8 x float> %val1, %val2
891 ; CHECK: cost of 1 for instruction:   %v = sext <8 x i1> %cmp to <8 x i8>
894 define <8 x i16> @fun89(<8 x float> %val1, <8 x float> %val2) {
895   %cmp = fcmp ogt <8 x float> %val1, %val2
896   %v = sext <8 x i1> %cmp to <8 x i16>
897   ret <8 x i16> %v
899 ; CHECK: fun89
900 ; CHECK: cost of 20 for instruction:   %cmp = fcmp ogt <8 x float> %val1, %val2
901 ; CHECK: cost of 1 for instruction:   %v = sext <8 x i1> %cmp to <8 x i16>
904 define <8 x i32> @fun90(<8 x float> %val1, <8 x float> %val2) {
905   %cmp = fcmp ogt <8 x float> %val1, %val2
906   %v = sext <8 x i1> %cmp to <8 x i32>
907   ret <8 x i32> %v
909 ; CHECK: fun90
910 ; CHECK: cost of 20 for instruction:   %cmp = fcmp ogt <8 x float> %val1, %val2
911 ; CHECK: cost of 0 for instruction:   %v = sext <8 x i1> %cmp to <8 x i32>
914 define <8 x i64> @fun91(<8 x float> %val1, <8 x float> %val2) {
915   %cmp = fcmp ogt <8 x float> %val1, %val2
916   %v = sext <8 x i1> %cmp to <8 x i64>
917   ret <8 x i64> %v
919 ; CHECK: fun91
920 ; CHECK: cost of 20 for instruction:   %cmp = fcmp ogt <8 x float> %val1, %val2
921 ; CHECK: cost of 7 for instruction:   %v = sext <8 x i1> %cmp to <8 x i64>
924 define <8 x i8> @fun92(<8 x double> %val1, <8 x double> %val2) {
925   %cmp = fcmp ogt <8 x double> %val1, %val2
926   %v = sext <8 x i1> %cmp to <8 x i8>
927   ret <8 x i8> %v
929 ; CHECK: fun92
930 ; CHECK: cost of 4 for instruction:   %cmp = fcmp ogt <8 x double> %val1, %val2
931 ; CHECK: cost of 3 for instruction:   %v = sext <8 x i1> %cmp to <8 x i8>
934 define <8 x i16> @fun93(<8 x double> %val1, <8 x double> %val2) {
935   %cmp = fcmp ogt <8 x double> %val1, %val2
936   %v = sext <8 x i1> %cmp to <8 x i16>
937   ret <8 x i16> %v
939 ; CHECK: fun93
940 ; CHECK: cost of 4 for instruction:   %cmp = fcmp ogt <8 x double> %val1, %val2
941 ; CHECK: cost of 3 for instruction:   %v = sext <8 x i1> %cmp to <8 x i16>
944 define <8 x i32> @fun94(<8 x double> %val1, <8 x double> %val2) {
945   %cmp = fcmp ogt <8 x double> %val1, %val2
946   %v = sext <8 x i1> %cmp to <8 x i32>
947   ret <8 x i32> %v
949 ; CHECK: fun94
950 ; CHECK: cost of 4 for instruction:   %cmp = fcmp ogt <8 x double> %val1, %val2
951 ; CHECK: cost of 2 for instruction:   %v = sext <8 x i1> %cmp to <8 x i32>
954 define <8 x i64> @fun95(<8 x double> %val1, <8 x double> %val2) {
955   %cmp = fcmp ogt <8 x double> %val1, %val2
956   %v = sext <8 x i1> %cmp to <8 x i64>
957   ret <8 x i64> %v
959 ; CHECK: fun95
960 ; CHECK: cost of 4 for instruction:   %cmp = fcmp ogt <8 x double> %val1, %val2
961 ; CHECK: cost of 0 for instruction:   %v = sext <8 x i1> %cmp to <8 x i64>
964 define <16 x i8> @fun96(<16 x i8> %val1, <16 x i8> %val2) {
965   %cmp = icmp eq <16 x i8> %val1, %val2
966   %v = sext <16 x i1> %cmp to <16 x i8>
967   ret <16 x i8> %v
969 ; CHECK: fun96
970 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <16 x i8> %val1, %val2
971 ; CHECK: cost of 0 for instruction:   %v = sext <16 x i1> %cmp to <16 x i8>
974 define <16 x i16> @fun97(<16 x i8> %val1, <16 x i8> %val2) {
975   %cmp = icmp eq <16 x i8> %val1, %val2
976   %v = sext <16 x i1> %cmp to <16 x i16>
977   ret <16 x i16> %v
979 ; CHECK: fun97
980 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <16 x i8> %val1, %val2
981 ; CHECK: cost of 3 for instruction:   %v = sext <16 x i1> %cmp to <16 x i16>
984 define <16 x i32> @fun98(<16 x i8> %val1, <16 x i8> %val2) {
985   %cmp = icmp eq <16 x i8> %val1, %val2
986   %v = sext <16 x i1> %cmp to <16 x i32>
987   ret <16 x i32> %v
989 ; CHECK: fun98
990 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <16 x i8> %val1, %val2
991 ; CHECK: cost of 11 for instruction:   %v = sext <16 x i1> %cmp to <16 x i32>
994 define <16 x i64> @fun99(<16 x i8> %val1, <16 x i8> %val2) {
995   %cmp = icmp eq <16 x i8> %val1, %val2
996   %v = sext <16 x i1> %cmp to <16 x i64>
997   ret <16 x i64> %v
999 ; CHECK: fun99
1000 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <16 x i8> %val1, %val2
1001 ; CHECK: cost of 31 for instruction:   %v = sext <16 x i1> %cmp to <16 x i64>
1004 define <16 x i8> @fun100(<16 x i16> %val1, <16 x i16> %val2) {
1005   %cmp = icmp eq <16 x i16> %val1, %val2
1006   %v = sext <16 x i1> %cmp to <16 x i8>
1007   ret <16 x i8> %v
1009 ; CHECK: fun100
1010 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <16 x i16> %val1, %val2
1011 ; CHECK: cost of 1 for instruction:   %v = sext <16 x i1> %cmp to <16 x i8>
1014 define <16 x i16> @fun101(<16 x i16> %val1, <16 x i16> %val2) {
1015   %cmp = icmp eq <16 x i16> %val1, %val2
1016   %v = sext <16 x i1> %cmp to <16 x i16>
1017   ret <16 x i16> %v
1019 ; CHECK: fun101
1020 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <16 x i16> %val1, %val2
1021 ; CHECK: cost of 0 for instruction:   %v = sext <16 x i1> %cmp to <16 x i16>
1024 define <16 x i32> @fun102(<16 x i16> %val1, <16 x i16> %val2) {
1025   %cmp = icmp eq <16 x i16> %val1, %val2
1026   %v = sext <16 x i1> %cmp to <16 x i32>
1027   ret <16 x i32> %v
1029 ; CHECK: fun102
1030 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <16 x i16> %val1, %val2
1031 ; CHECK: cost of 7 for instruction:   %v = sext <16 x i1> %cmp to <16 x i32>
1034 define <16 x i64> @fun103(<16 x i16> %val1, <16 x i16> %val2) {
1035   %cmp = icmp eq <16 x i16> %val1, %val2
1036   %v = sext <16 x i1> %cmp to <16 x i64>
1037   ret <16 x i64> %v
1039 ; CHECK: fun103
1040 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <16 x i16> %val1, %val2
1041 ; CHECK: cost of 23 for instruction:   %v = sext <16 x i1> %cmp to <16 x i64>
1044 define <16 x i8> @fun104(<16 x i32> %val1, <16 x i32> %val2) {
1045   %cmp = icmp eq <16 x i32> %val1, %val2
1046   %v = sext <16 x i1> %cmp to <16 x i8>
1047   ret <16 x i8> %v
1049 ; CHECK: fun104
1050 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <16 x i32> %val1, %val2
1051 ; CHECK: cost of 3 for instruction:   %v = sext <16 x i1> %cmp to <16 x i8>
1054 define <16 x i16> @fun105(<16 x i32> %val1, <16 x i32> %val2) {
1055   %cmp = icmp eq <16 x i32> %val1, %val2
1056   %v = sext <16 x i1> %cmp to <16 x i16>
1057   ret <16 x i16> %v
1059 ; CHECK: fun105
1060 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <16 x i32> %val1, %val2
1061 ; CHECK: cost of 2 for instruction:   %v = sext <16 x i1> %cmp to <16 x i16>
1064 define <16 x i32> @fun106(<16 x i32> %val1, <16 x i32> %val2) {
1065   %cmp = icmp eq <16 x i32> %val1, %val2
1066   %v = sext <16 x i1> %cmp to <16 x i32>
1067   ret <16 x i32> %v
1069 ; CHECK: fun106
1070 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <16 x i32> %val1, %val2
1071 ; CHECK: cost of 0 for instruction:   %v = sext <16 x i1> %cmp to <16 x i32>
1074 define <16 x i64> @fun107(<16 x i32> %val1, <16 x i32> %val2) {
1075   %cmp = icmp eq <16 x i32> %val1, %val2
1076   %v = sext <16 x i1> %cmp to <16 x i64>
1077   ret <16 x i64> %v
1079 ; CHECK: fun107
1080 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <16 x i32> %val1, %val2
1081 ; CHECK: cost of 15 for instruction:   %v = sext <16 x i1> %cmp to <16 x i64>
1084 define <16 x i8> @fun108(<16 x i64> %val1, <16 x i64> %val2) {
1085   %cmp = icmp eq <16 x i64> %val1, %val2
1086   %v = sext <16 x i1> %cmp to <16 x i8>
1087   ret <16 x i8> %v
1089 ; CHECK: fun108
1090 ; CHECK: cost of 8 for instruction:   %cmp = icmp eq <16 x i64> %val1, %val2
1091 ; CHECK: cost of 7 for instruction:   %v = sext <16 x i1> %cmp to <16 x i8>
1094 define <16 x i16> @fun109(<16 x i64> %val1, <16 x i64> %val2) {
1095   %cmp = icmp eq <16 x i64> %val1, %val2
1096   %v = sext <16 x i1> %cmp to <16 x i16>
1097   ret <16 x i16> %v
1099 ; CHECK: fun109
1100 ; CHECK: cost of 8 for instruction:   %cmp = icmp eq <16 x i64> %val1, %val2
1101 ; CHECK: cost of 6 for instruction:   %v = sext <16 x i1> %cmp to <16 x i16>
1104 define <16 x i32> @fun110(<16 x i64> %val1, <16 x i64> %val2) {
1105   %cmp = icmp eq <16 x i64> %val1, %val2
1106   %v = sext <16 x i1> %cmp to <16 x i32>
1107   ret <16 x i32> %v
1109 ; CHECK: fun110
1110 ; CHECK: cost of 8 for instruction:   %cmp = icmp eq <16 x i64> %val1, %val2
1111 ; CHECK: cost of 4 for instruction:   %v = sext <16 x i1> %cmp to <16 x i32>
1114 define <16 x i64> @fun111(<16 x i64> %val1, <16 x i64> %val2) {
1115   %cmp = icmp eq <16 x i64> %val1, %val2
1116   %v = sext <16 x i1> %cmp to <16 x i64>
1117   ret <16 x i64> %v
1119 ; CHECK: fun111
1120 ; CHECK: cost of 8 for instruction:   %cmp = icmp eq <16 x i64> %val1, %val2
1121 ; CHECK: cost of 0 for instruction:   %v = sext <16 x i1> %cmp to <16 x i64>
1124 define <16 x i8> @fun112(<16 x float> %val1, <16 x float> %val2) {
1125   %cmp = fcmp ogt <16 x float> %val1, %val2
1126   %v = sext <16 x i1> %cmp to <16 x i8>
1127   ret <16 x i8> %v
1129 ; CHECK: fun112
1130 ; CHECK: cost of 40 for instruction:   %cmp = fcmp ogt <16 x float> %val1, %val2
1131 ; CHECK: cost of 3 for instruction:   %v = sext <16 x i1> %cmp to <16 x i8>
1134 define <16 x i16> @fun113(<16 x float> %val1, <16 x float> %val2) {
1135   %cmp = fcmp ogt <16 x float> %val1, %val2
1136   %v = sext <16 x i1> %cmp to <16 x i16>
1137   ret <16 x i16> %v
1139 ; CHECK: fun113
1140 ; CHECK: cost of 40 for instruction:   %cmp = fcmp ogt <16 x float> %val1, %val2
1141 ; CHECK: cost of 2 for instruction:   %v = sext <16 x i1> %cmp to <16 x i16>
1144 define <16 x i32> @fun114(<16 x float> %val1, <16 x float> %val2) {
1145   %cmp = fcmp ogt <16 x float> %val1, %val2
1146   %v = sext <16 x i1> %cmp to <16 x i32>
1147   ret <16 x i32> %v
1149 ; CHECK: fun114
1150 ; CHECK: cost of 40 for instruction:   %cmp = fcmp ogt <16 x float> %val1, %val2
1151 ; CHECK: cost of 0 for instruction:   %v = sext <16 x i1> %cmp to <16 x i32>
1154 define <16 x i64> @fun115(<16 x float> %val1, <16 x float> %val2) {
1155   %cmp = fcmp ogt <16 x float> %val1, %val2
1156   %v = sext <16 x i1> %cmp to <16 x i64>
1157   ret <16 x i64> %v
1159 ; CHECK: fun115
1160 ; CHECK: cost of 40 for instruction:   %cmp = fcmp ogt <16 x float> %val1, %val2
1161 ; CHECK: cost of 15 for instruction:   %v = sext <16 x i1> %cmp to <16 x i64>
1164 define <16 x i8> @fun116(<16 x double> %val1, <16 x double> %val2) {
1165   %cmp = fcmp ogt <16 x double> %val1, %val2
1166   %v = sext <16 x i1> %cmp to <16 x i8>
1167   ret <16 x i8> %v
1169 ; CHECK: fun116
1170 ; CHECK: cost of 8 for instruction:   %cmp = fcmp ogt <16 x double> %val1, %val2
1171 ; CHECK: cost of 7 for instruction:   %v = sext <16 x i1> %cmp to <16 x i8>
1174 define <16 x i16> @fun117(<16 x double> %val1, <16 x double> %val2) {
1175   %cmp = fcmp ogt <16 x double> %val1, %val2
1176   %v = sext <16 x i1> %cmp to <16 x i16>
1177   ret <16 x i16> %v
1179 ; CHECK: fun117
1180 ; CHECK: cost of 8 for instruction:   %cmp = fcmp ogt <16 x double> %val1, %val2
1181 ; CHECK: cost of 6 for instruction:   %v = sext <16 x i1> %cmp to <16 x i16>
1184 define <16 x i32> @fun118(<16 x double> %val1, <16 x double> %val2) {
1185   %cmp = fcmp ogt <16 x double> %val1, %val2
1186   %v = sext <16 x i1> %cmp to <16 x i32>
1187   ret <16 x i32> %v
1189 ; CHECK: fun118
1190 ; CHECK: cost of 8 for instruction:   %cmp = fcmp ogt <16 x double> %val1, %val2
1191 ; CHECK: cost of 4 for instruction:   %v = sext <16 x i1> %cmp to <16 x i32>
1194 define <16 x i64> @fun119(<16 x double> %val1, <16 x double> %val2) {
1195   %cmp = fcmp ogt <16 x double> %val1, %val2
1196   %v = sext <16 x i1> %cmp to <16 x i64>
1197   ret <16 x i64> %v
1199 ; CHECK: fun119
1200 ; CHECK: cost of 8 for instruction:   %cmp = fcmp ogt <16 x double> %val1, %val2
1201 ; CHECK: cost of 0 for instruction:   %v = sext <16 x i1> %cmp to <16 x i64>
1204 define i8 @fun120(i8 %val1, i8 %val2) {
1205   %cmp = icmp eq i8 %val1, %val2
1206   %v = zext i1 %cmp to i8
1207   ret i8 %v
1209 ; CHECK: fun120
1210 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val2
1211 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i8
1214 define i16 @fun121(i8 %val1, i8 %val2) {
1215   %cmp = icmp eq i8 %val1, %val2
1216   %v = zext i1 %cmp to i16
1217   ret i16 %v
1219 ; CHECK: fun121
1220 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val2
1221 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i16
1224 define i32 @fun122(i8 %val1, i8 %val2) {
1225   %cmp = icmp eq i8 %val1, %val2
1226   %v = zext i1 %cmp to i32
1227   ret i32 %v
1229 ; CHECK: fun122
1230 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val2
1231 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i32
1234 define i64 @fun123(i8 %val1, i8 %val2) {
1235   %cmp = icmp eq i8 %val1, %val2
1236   %v = zext i1 %cmp to i64
1237   ret i64 %v
1239 ; CHECK: fun123
1240 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i8 %val1, %val2
1241 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i64
1244 define i8 @fun124(i16 %val1, i16 %val2) {
1245   %cmp = icmp eq i16 %val1, %val2
1246   %v = zext i1 %cmp to i8
1247   ret i8 %v
1249 ; CHECK: fun124
1250 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val2
1251 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i8
1254 define i16 @fun125(i16 %val1, i16 %val2) {
1255   %cmp = icmp eq i16 %val1, %val2
1256   %v = zext i1 %cmp to i16
1257   ret i16 %v
1259 ; CHECK: fun125
1260 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val2
1261 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i16
1264 define i32 @fun126(i16 %val1, i16 %val2) {
1265   %cmp = icmp eq i16 %val1, %val2
1266   %v = zext i1 %cmp to i32
1267   ret i32 %v
1269 ; CHECK: fun126
1270 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val2
1271 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i32
1274 define i64 @fun127(i16 %val1, i16 %val2) {
1275   %cmp = icmp eq i16 %val1, %val2
1276   %v = zext i1 %cmp to i64
1277   ret i64 %v
1279 ; CHECK: fun127
1280 ; CHECK: cost of 3 for instruction:   %cmp = icmp eq i16 %val1, %val2
1281 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i64
1284 define i8 @fun128(i32 %val1, i32 %val2) {
1285   %cmp = icmp eq i32 %val1, %val2
1286   %v = zext i1 %cmp to i8
1287   ret i8 %v
1289 ; CHECK: fun128
1290 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2
1291 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i8
1294 define i16 @fun129(i32 %val1, i32 %val2) {
1295   %cmp = icmp eq i32 %val1, %val2
1296   %v = zext i1 %cmp to i16
1297   ret i16 %v
1299 ; CHECK: fun129
1300 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2
1301 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i16
1304 define i32 @fun130(i32 %val1, i32 %val2) {
1305   %cmp = icmp eq i32 %val1, %val2
1306   %v = zext i1 %cmp to i32
1307   ret i32 %v
1309 ; CHECK: fun130
1310 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2
1311 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i32
1314 define i64 @fun131(i32 %val1, i32 %val2) {
1315   %cmp = icmp eq i32 %val1, %val2
1316   %v = zext i1 %cmp to i64
1317   ret i64 %v
1319 ; CHECK: fun131
1320 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i32 %val1, %val2
1321 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i64
1324 define i8 @fun132(i64 %val1, i64 %val2) {
1325   %cmp = icmp eq i64 %val1, %val2
1326   %v = zext i1 %cmp to i8
1327   ret i8 %v
1329 ; CHECK: fun132
1330 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2
1331 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i8
1334 define i16 @fun133(i64 %val1, i64 %val2) {
1335   %cmp = icmp eq i64 %val1, %val2
1336   %v = zext i1 %cmp to i16
1337   ret i16 %v
1339 ; CHECK: fun133
1340 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2
1341 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i16
1344 define i32 @fun134(i64 %val1, i64 %val2) {
1345   %cmp = icmp eq i64 %val1, %val2
1346   %v = zext i1 %cmp to i32
1347   ret i32 %v
1349 ; CHECK: fun134
1350 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2
1351 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i32
1354 define i64 @fun135(i64 %val1, i64 %val2) {
1355   %cmp = icmp eq i64 %val1, %val2
1356   %v = zext i1 %cmp to i64
1357   ret i64 %v
1359 ; CHECK: fun135
1360 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq i64 %val1, %val2
1361 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i64
1364 define i8 @fun136(float %val1, float %val2) {
1365   %cmp = fcmp ogt float %val1, %val2
1366   %v = zext i1 %cmp to i8
1367   ret i8 %v
1369 ; CHECK: fun136
1370 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2
1371 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i8
1374 define i16 @fun137(float %val1, float %val2) {
1375   %cmp = fcmp ogt float %val1, %val2
1376   %v = zext i1 %cmp to i16
1377   ret i16 %v
1379 ; CHECK: fun137
1380 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2
1381 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i16
1384 define i32 @fun138(float %val1, float %val2) {
1385   %cmp = fcmp ogt float %val1, %val2
1386   %v = zext i1 %cmp to i32
1387   ret i32 %v
1389 ; CHECK: fun138
1390 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2
1391 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i32
1394 define i64 @fun139(float %val1, float %val2) {
1395   %cmp = fcmp ogt float %val1, %val2
1396   %v = zext i1 %cmp to i64
1397   ret i64 %v
1399 ; CHECK: fun139
1400 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt float %val1, %val2
1401 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i64
1404 define i8 @fun140(double %val1, double %val2) {
1405   %cmp = fcmp ogt double %val1, %val2
1406   %v = zext i1 %cmp to i8
1407   ret i8 %v
1409 ; CHECK: fun140
1410 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2
1411 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i8
1414 define i16 @fun141(double %val1, double %val2) {
1415   %cmp = fcmp ogt double %val1, %val2
1416   %v = zext i1 %cmp to i16
1417   ret i16 %v
1419 ; CHECK: fun141
1420 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2
1421 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i16
1424 define i32 @fun142(double %val1, double %val2) {
1425   %cmp = fcmp ogt double %val1, %val2
1426   %v = zext i1 %cmp to i32
1427   ret i32 %v
1429 ; CHECK: fun142
1430 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2
1431 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i32
1434 define i64 @fun143(double %val1, double %val2) {
1435   %cmp = fcmp ogt double %val1, %val2
1436   %v = zext i1 %cmp to i64
1437   ret i64 %v
1439 ; CHECK: fun143
1440 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt double %val1, %val2
1441 ; CHECK: cost of 2 for instruction:   %v = zext i1 %cmp to i64
1444 define <2 x i8> @fun144(<2 x i8> %val1, <2 x i8> %val2) {
1445   %cmp = icmp eq <2 x i8> %val1, %val2
1446   %v = zext <2 x i1> %cmp to <2 x i8>
1447   ret <2 x i8> %v
1449 ; CHECK: fun144
1450 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i8> %val1, %val2
1451 ; CHECK: cost of 1 for instruction:   %v = zext <2 x i1> %cmp to <2 x i8>
1454 define <2 x i16> @fun145(<2 x i8> %val1, <2 x i8> %val2) {
1455   %cmp = icmp eq <2 x i8> %val1, %val2
1456   %v = zext <2 x i1> %cmp to <2 x i16>
1457   ret <2 x i16> %v
1459 ; CHECK: fun145
1460 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i8> %val1, %val2
1461 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i16>
1464 define <2 x i32> @fun146(<2 x i8> %val1, <2 x i8> %val2) {
1465   %cmp = icmp eq <2 x i8> %val1, %val2
1466   %v = zext <2 x i1> %cmp to <2 x i32>
1467   ret <2 x i32> %v
1469 ; CHECK: fun146
1470 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i8> %val1, %val2
1471 ; CHECK: cost of 3 for instruction:   %v = zext <2 x i1> %cmp to <2 x i32>
1474 define <2 x i64> @fun147(<2 x i8> %val1, <2 x i8> %val2) {
1475   %cmp = icmp eq <2 x i8> %val1, %val2
1476   %v = zext <2 x i1> %cmp to <2 x i64>
1477   ret <2 x i64> %v
1479 ; CHECK: fun147
1480 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i8> %val1, %val2
1481 ; CHECK: cost of 4 for instruction:   %v = zext <2 x i1> %cmp to <2 x i64>
1484 define <2 x i8> @fun148(<2 x i16> %val1, <2 x i16> %val2) {
1485   %cmp = icmp eq <2 x i16> %val1, %val2
1486   %v = zext <2 x i1> %cmp to <2 x i8>
1487   ret <2 x i8> %v
1489 ; CHECK: fun148
1490 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i16> %val1, %val2
1491 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i8>
1494 define <2 x i16> @fun149(<2 x i16> %val1, <2 x i16> %val2) {
1495   %cmp = icmp eq <2 x i16> %val1, %val2
1496   %v = zext <2 x i1> %cmp to <2 x i16>
1497   ret <2 x i16> %v
1499 ; CHECK: fun149
1500 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i16> %val1, %val2
1501 ; CHECK: cost of 1 for instruction:   %v = zext <2 x i1> %cmp to <2 x i16>
1504 define <2 x i32> @fun150(<2 x i16> %val1, <2 x i16> %val2) {
1505   %cmp = icmp eq <2 x i16> %val1, %val2
1506   %v = zext <2 x i1> %cmp to <2 x i32>
1507   ret <2 x i32> %v
1509 ; CHECK: fun150
1510 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i16> %val1, %val2
1511 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i32>
1514 define <2 x i64> @fun151(<2 x i16> %val1, <2 x i16> %val2) {
1515   %cmp = icmp eq <2 x i16> %val1, %val2
1516   %v = zext <2 x i1> %cmp to <2 x i64>
1517   ret <2 x i64> %v
1519 ; CHECK: fun151
1520 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i16> %val1, %val2
1521 ; CHECK: cost of 3 for instruction:   %v = zext <2 x i1> %cmp to <2 x i64>
1524 define <2 x i8> @fun152(<2 x i32> %val1, <2 x i32> %val2) {
1525   %cmp = icmp eq <2 x i32> %val1, %val2
1526   %v = zext <2 x i1> %cmp to <2 x i8>
1527   ret <2 x i8> %v
1529 ; CHECK: fun152
1530 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i32> %val1, %val2
1531 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i8>
1534 define <2 x i16> @fun153(<2 x i32> %val1, <2 x i32> %val2) {
1535   %cmp = icmp eq <2 x i32> %val1, %val2
1536   %v = zext <2 x i1> %cmp to <2 x i16>
1537   ret <2 x i16> %v
1539 ; CHECK: fun153
1540 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i32> %val1, %val2
1541 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i16>
1544 define <2 x i32> @fun154(<2 x i32> %val1, <2 x i32> %val2) {
1545   %cmp = icmp eq <2 x i32> %val1, %val2
1546   %v = zext <2 x i1> %cmp to <2 x i32>
1547   ret <2 x i32> %v
1549 ; CHECK: fun154
1550 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i32> %val1, %val2
1551 ; CHECK: cost of 1 for instruction:   %v = zext <2 x i1> %cmp to <2 x i32>
1554 define <2 x i64> @fun155(<2 x i32> %val1, <2 x i32> %val2) {
1555   %cmp = icmp eq <2 x i32> %val1, %val2
1556   %v = zext <2 x i1> %cmp to <2 x i64>
1557   ret <2 x i64> %v
1559 ; CHECK: fun155
1560 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i32> %val1, %val2
1561 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i64>
1564 define <2 x i8> @fun156(<2 x i64> %val1, <2 x i64> %val2) {
1565   %cmp = icmp eq <2 x i64> %val1, %val2
1566   %v = zext <2 x i1> %cmp to <2 x i8>
1567   ret <2 x i8> %v
1569 ; CHECK: fun156
1570 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i64> %val1, %val2
1571 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i8>
1574 define <2 x i16> @fun157(<2 x i64> %val1, <2 x i64> %val2) {
1575   %cmp = icmp eq <2 x i64> %val1, %val2
1576   %v = zext <2 x i1> %cmp to <2 x i16>
1577   ret <2 x i16> %v
1579 ; CHECK: fun157
1580 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i64> %val1, %val2
1581 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i16>
1584 define <2 x i32> @fun158(<2 x i64> %val1, <2 x i64> %val2) {
1585   %cmp = icmp eq <2 x i64> %val1, %val2
1586   %v = zext <2 x i1> %cmp to <2 x i32>
1587   ret <2 x i32> %v
1589 ; CHECK: fun158
1590 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i64> %val1, %val2
1591 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i32>
1594 define <2 x i64> @fun159(<2 x i64> %val1, <2 x i64> %val2) {
1595   %cmp = icmp eq <2 x i64> %val1, %val2
1596   %v = zext <2 x i1> %cmp to <2 x i64>
1597   ret <2 x i64> %v
1599 ; CHECK: fun159
1600 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <2 x i64> %val1, %val2
1601 ; CHECK: cost of 1 for instruction:   %v = zext <2 x i1> %cmp to <2 x i64>
1604 define <2 x i8> @fun160(<2 x float> %val1, <2 x float> %val2) {
1605   %cmp = fcmp ogt <2 x float> %val1, %val2
1606   %v = zext <2 x i1> %cmp to <2 x i8>
1607   ret <2 x i8> %v
1609 ; CHECK: fun160
1610 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <2 x float> %val1, %val2
1611 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i8>
1614 define <2 x i16> @fun161(<2 x float> %val1, <2 x float> %val2) {
1615   %cmp = fcmp ogt <2 x float> %val1, %val2
1616   %v = zext <2 x i1> %cmp to <2 x i16>
1617   ret <2 x i16> %v
1619 ; CHECK: fun161
1620 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <2 x float> %val1, %val2
1621 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i16>
1624 define <2 x i32> @fun162(<2 x float> %val1, <2 x float> %val2) {
1625   %cmp = fcmp ogt <2 x float> %val1, %val2
1626   %v = zext <2 x i1> %cmp to <2 x i32>
1627   ret <2 x i32> %v
1629 ; CHECK: fun162
1630 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <2 x float> %val1, %val2
1631 ; CHECK: cost of 1 for instruction:   %v = zext <2 x i1> %cmp to <2 x i32>
1634 define <2 x i64> @fun163(<2 x float> %val1, <2 x float> %val2) {
1635   %cmp = fcmp ogt <2 x float> %val1, %val2
1636   %v = zext <2 x i1> %cmp to <2 x i64>
1637   ret <2 x i64> %v
1639 ; CHECK: fun163
1640 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <2 x float> %val1, %val2
1641 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i64>
1644 define <2 x i8> @fun164(<2 x double> %val1, <2 x double> %val2) {
1645   %cmp = fcmp ogt <2 x double> %val1, %val2
1646   %v = zext <2 x i1> %cmp to <2 x i8>
1647   ret <2 x i8> %v
1649 ; CHECK: fun164
1650 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt <2 x double> %val1, %val2
1651 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i8>
1654 define <2 x i16> @fun165(<2 x double> %val1, <2 x double> %val2) {
1655   %cmp = fcmp ogt <2 x double> %val1, %val2
1656   %v = zext <2 x i1> %cmp to <2 x i16>
1657   ret <2 x i16> %v
1659 ; CHECK: fun165
1660 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt <2 x double> %val1, %val2
1661 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i16>
1664 define <2 x i32> @fun166(<2 x double> %val1, <2 x double> %val2) {
1665   %cmp = fcmp ogt <2 x double> %val1, %val2
1666   %v = zext <2 x i1> %cmp to <2 x i32>
1667   ret <2 x i32> %v
1669 ; CHECK: fun166
1670 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt <2 x double> %val1, %val2
1671 ; CHECK: cost of 2 for instruction:   %v = zext <2 x i1> %cmp to <2 x i32>
1674 define <2 x i64> @fun167(<2 x double> %val1, <2 x double> %val2) {
1675   %cmp = fcmp ogt <2 x double> %val1, %val2
1676   %v = zext <2 x i1> %cmp to <2 x i64>
1677   ret <2 x i64> %v
1679 ; CHECK: fun167
1680 ; CHECK: cost of 1 for instruction:   %cmp = fcmp ogt <2 x double> %val1, %val2
1681 ; CHECK: cost of 1 for instruction:   %v = zext <2 x i1> %cmp to <2 x i64>
1684 define <4 x i8> @fun168(<4 x i8> %val1, <4 x i8> %val2) {
1685   %cmp = icmp eq <4 x i8> %val1, %val2
1686   %v = zext <4 x i1> %cmp to <4 x i8>
1687   ret <4 x i8> %v
1689 ; CHECK: fun168
1690 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i8> %val1, %val2
1691 ; CHECK: cost of 1 for instruction:   %v = zext <4 x i1> %cmp to <4 x i8>
1694 define <4 x i16> @fun169(<4 x i8> %val1, <4 x i8> %val2) {
1695   %cmp = icmp eq <4 x i8> %val1, %val2
1696   %v = zext <4 x i1> %cmp to <4 x i16>
1697   ret <4 x i16> %v
1699 ; CHECK: fun169
1700 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i8> %val1, %val2
1701 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i16>
1704 define <4 x i32> @fun170(<4 x i8> %val1, <4 x i8> %val2) {
1705   %cmp = icmp eq <4 x i8> %val1, %val2
1706   %v = zext <4 x i1> %cmp to <4 x i32>
1707   ret <4 x i32> %v
1709 ; CHECK: fun170
1710 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i8> %val1, %val2
1711 ; CHECK: cost of 3 for instruction:   %v = zext <4 x i1> %cmp to <4 x i32>
1714 define <4 x i64> @fun171(<4 x i8> %val1, <4 x i8> %val2) {
1715   %cmp = icmp eq <4 x i8> %val1, %val2
1716   %v = zext <4 x i1> %cmp to <4 x i64>
1717   ret <4 x i64> %v
1719 ; CHECK: fun171
1720 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i8> %val1, %val2
1721 ; CHECK: cost of 9 for instruction:   %v = zext <4 x i1> %cmp to <4 x i64>
1724 define <4 x i8> @fun172(<4 x i16> %val1, <4 x i16> %val2) {
1725   %cmp = icmp eq <4 x i16> %val1, %val2
1726   %v = zext <4 x i1> %cmp to <4 x i8>
1727   ret <4 x i8> %v
1729 ; CHECK: fun172
1730 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i16> %val1, %val2
1731 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i8>
1734 define <4 x i16> @fun173(<4 x i16> %val1, <4 x i16> %val2) {
1735   %cmp = icmp eq <4 x i16> %val1, %val2
1736   %v = zext <4 x i1> %cmp to <4 x i16>
1737   ret <4 x i16> %v
1739 ; CHECK: fun173
1740 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i16> %val1, %val2
1741 ; CHECK: cost of 1 for instruction:   %v = zext <4 x i1> %cmp to <4 x i16>
1744 define <4 x i32> @fun174(<4 x i16> %val1, <4 x i16> %val2) {
1745   %cmp = icmp eq <4 x i16> %val1, %val2
1746   %v = zext <4 x i1> %cmp to <4 x i32>
1747   ret <4 x i32> %v
1749 ; CHECK: fun174
1750 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i16> %val1, %val2
1751 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i32>
1754 define <4 x i64> @fun175(<4 x i16> %val1, <4 x i16> %val2) {
1755   %cmp = icmp eq <4 x i16> %val1, %val2
1756   %v = zext <4 x i1> %cmp to <4 x i64>
1757   ret <4 x i64> %v
1759 ; CHECK: fun175
1760 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i16> %val1, %val2
1761 ; CHECK: cost of 7 for instruction:   %v = zext <4 x i1> %cmp to <4 x i64>
1764 define <4 x i8> @fun176(<4 x i32> %val1, <4 x i32> %val2) {
1765   %cmp = icmp eq <4 x i32> %val1, %val2
1766   %v = zext <4 x i1> %cmp to <4 x i8>
1767   ret <4 x i8> %v
1769 ; CHECK: fun176
1770 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i32> %val1, %val2
1771 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i8>
1774 define <4 x i16> @fun177(<4 x i32> %val1, <4 x i32> %val2) {
1775   %cmp = icmp eq <4 x i32> %val1, %val2
1776   %v = zext <4 x i1> %cmp to <4 x i16>
1777   ret <4 x i16> %v
1779 ; CHECK: fun177
1780 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i32> %val1, %val2
1781 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i16>
1784 define <4 x i32> @fun178(<4 x i32> %val1, <4 x i32> %val2) {
1785   %cmp = icmp eq <4 x i32> %val1, %val2
1786   %v = zext <4 x i1> %cmp to <4 x i32>
1787   ret <4 x i32> %v
1789 ; CHECK: fun178
1790 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i32> %val1, %val2
1791 ; CHECK: cost of 1 for instruction:   %v = zext <4 x i1> %cmp to <4 x i32>
1794 define <4 x i64> @fun179(<4 x i32> %val1, <4 x i32> %val2) {
1795   %cmp = icmp eq <4 x i32> %val1, %val2
1796   %v = zext <4 x i1> %cmp to <4 x i64>
1797   ret <4 x i64> %v
1799 ; CHECK: fun179
1800 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <4 x i32> %val1, %val2
1801 ; CHECK: cost of 5 for instruction:   %v = zext <4 x i1> %cmp to <4 x i64>
1804 define <4 x i8> @fun180(<4 x i64> %val1, <4 x i64> %val2) {
1805   %cmp = icmp eq <4 x i64> %val1, %val2
1806   %v = zext <4 x i1> %cmp to <4 x i8>
1807   ret <4 x i8> %v
1809 ; CHECK: fun180
1810 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <4 x i64> %val1, %val2
1811 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i8>
1814 define <4 x i16> @fun181(<4 x i64> %val1, <4 x i64> %val2) {
1815   %cmp = icmp eq <4 x i64> %val1, %val2
1816   %v = zext <4 x i1> %cmp to <4 x i16>
1817   ret <4 x i16> %v
1819 ; CHECK: fun181
1820 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <4 x i64> %val1, %val2
1821 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i16>
1824 define <4 x i32> @fun182(<4 x i64> %val1, <4 x i64> %val2) {
1825   %cmp = icmp eq <4 x i64> %val1, %val2
1826   %v = zext <4 x i1> %cmp to <4 x i32>
1827   ret <4 x i32> %v
1829 ; CHECK: fun182
1830 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <4 x i64> %val1, %val2
1831 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i32>
1834 define <4 x i64> @fun183(<4 x i64> %val1, <4 x i64> %val2) {
1835   %cmp = icmp eq <4 x i64> %val1, %val2
1836   %v = zext <4 x i1> %cmp to <4 x i64>
1837   ret <4 x i64> %v
1839 ; CHECK: fun183
1840 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <4 x i64> %val1, %val2
1841 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i64>
1844 define <4 x i8> @fun184(<4 x float> %val1, <4 x float> %val2) {
1845   %cmp = fcmp ogt <4 x float> %val1, %val2
1846   %v = zext <4 x i1> %cmp to <4 x i8>
1847   ret <4 x i8> %v
1849 ; CHECK: fun184
1850 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <4 x float> %val1, %val2
1851 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i8>
1854 define <4 x i16> @fun185(<4 x float> %val1, <4 x float> %val2) {
1855   %cmp = fcmp ogt <4 x float> %val1, %val2
1856   %v = zext <4 x i1> %cmp to <4 x i16>
1857   ret <4 x i16> %v
1859 ; CHECK: fun185
1860 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <4 x float> %val1, %val2
1861 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i16>
1864 define <4 x i32> @fun186(<4 x float> %val1, <4 x float> %val2) {
1865   %cmp = fcmp ogt <4 x float> %val1, %val2
1866   %v = zext <4 x i1> %cmp to <4 x i32>
1867   ret <4 x i32> %v
1869 ; CHECK: fun186
1870 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <4 x float> %val1, %val2
1871 ; CHECK: cost of 1 for instruction:   %v = zext <4 x i1> %cmp to <4 x i32>
1874 define <4 x i64> @fun187(<4 x float> %val1, <4 x float> %val2) {
1875   %cmp = fcmp ogt <4 x float> %val1, %val2
1876   %v = zext <4 x i1> %cmp to <4 x i64>
1877   ret <4 x i64> %v
1879 ; CHECK: fun187
1880 ; CHECK: cost of 10 for instruction:   %cmp = fcmp ogt <4 x float> %val1, %val2
1881 ; CHECK: cost of 5 for instruction:   %v = zext <4 x i1> %cmp to <4 x i64>
1884 define <4 x i8> @fun188(<4 x double> %val1, <4 x double> %val2) {
1885   %cmp = fcmp ogt <4 x double> %val1, %val2
1886   %v = zext <4 x i1> %cmp to <4 x i8>
1887   ret <4 x i8> %v
1889 ; CHECK: fun188
1890 ; CHECK: cost of 2 for instruction:   %cmp = fcmp ogt <4 x double> %val1, %val2
1891 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i8>
1894 define <4 x i16> @fun189(<4 x double> %val1, <4 x double> %val2) {
1895   %cmp = fcmp ogt <4 x double> %val1, %val2
1896   %v = zext <4 x i1> %cmp to <4 x i16>
1897   ret <4 x i16> %v
1899 ; CHECK: fun189
1900 ; CHECK: cost of 2 for instruction:   %cmp = fcmp ogt <4 x double> %val1, %val2
1901 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i16>
1904 define <4 x i32> @fun190(<4 x double> %val1, <4 x double> %val2) {
1905   %cmp = fcmp ogt <4 x double> %val1, %val2
1906   %v = zext <4 x i1> %cmp to <4 x i32>
1907   ret <4 x i32> %v
1909 ; CHECK: fun190
1910 ; CHECK: cost of 2 for instruction:   %cmp = fcmp ogt <4 x double> %val1, %val2
1911 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i32>
1914 define <4 x i64> @fun191(<4 x double> %val1, <4 x double> %val2) {
1915   %cmp = fcmp ogt <4 x double> %val1, %val2
1916   %v = zext <4 x i1> %cmp to <4 x i64>
1917   ret <4 x i64> %v
1919 ; CHECK: fun191
1920 ; CHECK: cost of 2 for instruction:   %cmp = fcmp ogt <4 x double> %val1, %val2
1921 ; CHECK: cost of 2 for instruction:   %v = zext <4 x i1> %cmp to <4 x i64>
1924 define <8 x i8> @fun192(<8 x i8> %val1, <8 x i8> %val2) {
1925   %cmp = icmp eq <8 x i8> %val1, %val2
1926   %v = zext <8 x i1> %cmp to <8 x i8>
1927   ret <8 x i8> %v
1929 ; CHECK: fun192
1930 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i8> %val1, %val2
1931 ; CHECK: cost of 1 for instruction:   %v = zext <8 x i1> %cmp to <8 x i8>
1934 define <8 x i16> @fun193(<8 x i8> %val1, <8 x i8> %val2) {
1935   %cmp = icmp eq <8 x i8> %val1, %val2
1936   %v = zext <8 x i1> %cmp to <8 x i16>
1937   ret <8 x i16> %v
1939 ; CHECK: fun193
1940 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i8> %val1, %val2
1941 ; CHECK: cost of 2 for instruction:   %v = zext <8 x i1> %cmp to <8 x i16>
1944 define <8 x i32> @fun194(<8 x i8> %val1, <8 x i8> %val2) {
1945   %cmp = icmp eq <8 x i8> %val1, %val2
1946   %v = zext <8 x i1> %cmp to <8 x i32>
1947   ret <8 x i32> %v
1949 ; CHECK: fun194
1950 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i8> %val1, %val2
1951 ; CHECK: cost of 7 for instruction:   %v = zext <8 x i1> %cmp to <8 x i32>
1954 define <8 x i64> @fun195(<8 x i8> %val1, <8 x i8> %val2) {
1955   %cmp = icmp eq <8 x i8> %val1, %val2
1956   %v = zext <8 x i1> %cmp to <8 x i64>
1957   ret <8 x i64> %v
1959 ; CHECK: fun195
1960 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i8> %val1, %val2
1961 ; CHECK: cost of 19 for instruction:   %v = zext <8 x i1> %cmp to <8 x i64>
1964 define <8 x i8> @fun196(<8 x i16> %val1, <8 x i16> %val2) {
1965   %cmp = icmp eq <8 x i16> %val1, %val2
1966   %v = zext <8 x i1> %cmp to <8 x i8>
1967   ret <8 x i8> %v
1969 ; CHECK: fun196
1970 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i16> %val1, %val2
1971 ; CHECK: cost of 2 for instruction:   %v = zext <8 x i1> %cmp to <8 x i8>
1974 define <8 x i16> @fun197(<8 x i16> %val1, <8 x i16> %val2) {
1975   %cmp = icmp eq <8 x i16> %val1, %val2
1976   %v = zext <8 x i1> %cmp to <8 x i16>
1977   ret <8 x i16> %v
1979 ; CHECK: fun197
1980 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i16> %val1, %val2
1981 ; CHECK: cost of 1 for instruction:   %v = zext <8 x i1> %cmp to <8 x i16>
1984 define <8 x i32> @fun198(<8 x i16> %val1, <8 x i16> %val2) {
1985   %cmp = icmp eq <8 x i16> %val1, %val2
1986   %v = zext <8 x i1> %cmp to <8 x i32>
1987   ret <8 x i32> %v
1989 ; CHECK: fun198
1990 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i16> %val1, %val2
1991 ; CHECK: cost of 5 for instruction:   %v = zext <8 x i1> %cmp to <8 x i32>
1994 define <8 x i64> @fun199(<8 x i16> %val1, <8 x i16> %val2) {
1995   %cmp = icmp eq <8 x i16> %val1, %val2
1996   %v = zext <8 x i1> %cmp to <8 x i64>
1997   ret <8 x i64> %v
1999 ; CHECK: fun199
2000 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <8 x i16> %val1, %val2
2001 ; CHECK: cost of 15 for instruction:   %v = zext <8 x i1> %cmp to <8 x i64>
2004 define <8 x i8> @fun200(<8 x i32> %val1, <8 x i32> %val2) {
2005   %cmp = icmp eq <8 x i32> %val1, %val2
2006   %v = zext <8 x i1> %cmp to <8 x i8>
2007   ret <8 x i8> %v
2009 ; CHECK: fun200
2010 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <8 x i32> %val1, %val2
2011 ; CHECK: cost of 2 for instruction:   %v = zext <8 x i1> %cmp to <8 x i8>
2014 define <8 x i16> @fun201(<8 x i32> %val1, <8 x i32> %val2) {
2015   %cmp = icmp eq <8 x i32> %val1, %val2
2016   %v = zext <8 x i1> %cmp to <8 x i16>
2017   ret <8 x i16> %v
2019 ; CHECK: fun201
2020 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <8 x i32> %val1, %val2
2021 ; CHECK: cost of 2 for instruction:   %v = zext <8 x i1> %cmp to <8 x i16>
2024 define <8 x i32> @fun202(<8 x i32> %val1, <8 x i32> %val2) {
2025   %cmp = icmp eq <8 x i32> %val1, %val2
2026   %v = zext <8 x i1> %cmp to <8 x i32>
2027   ret <8 x i32> %v
2029 ; CHECK: fun202
2030 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <8 x i32> %val1, %val2
2031 ; CHECK: cost of 2 for instruction:   %v = zext <8 x i1> %cmp to <8 x i32>
2034 define <8 x i64> @fun203(<8 x i32> %val1, <8 x i32> %val2) {
2035   %cmp = icmp eq <8 x i32> %val1, %val2
2036   %v = zext <8 x i1> %cmp to <8 x i64>
2037   ret <8 x i64> %v
2039 ; CHECK: fun203
2040 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <8 x i32> %val1, %val2
2041 ; CHECK: cost of 11 for instruction:   %v = zext <8 x i1> %cmp to <8 x i64>
2044 define <8 x i8> @fun204(<8 x i64> %val1, <8 x i64> %val2) {
2045   %cmp = icmp eq <8 x i64> %val1, %val2
2046   %v = zext <8 x i1> %cmp to <8 x i8>
2047   ret <8 x i8> %v
2049 ; CHECK: fun204
2050 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <8 x i64> %val1, %val2
2051 ; CHECK: cost of 4 for instruction:   %v = zext <8 x i1> %cmp to <8 x i8>
2054 define <8 x i16> @fun205(<8 x i64> %val1, <8 x i64> %val2) {
2055   %cmp = icmp eq <8 x i64> %val1, %val2
2056   %v = zext <8 x i1> %cmp to <8 x i16>
2057   ret <8 x i16> %v
2059 ; CHECK: fun205
2060 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <8 x i64> %val1, %val2
2061 ; CHECK: cost of 4 for instruction:   %v = zext <8 x i1> %cmp to <8 x i16>
2064 define <8 x i32> @fun206(<8 x i64> %val1, <8 x i64> %val2) {
2065   %cmp = icmp eq <8 x i64> %val1, %val2
2066   %v = zext <8 x i1> %cmp to <8 x i32>
2067   ret <8 x i32> %v
2069 ; CHECK: fun206
2070 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <8 x i64> %val1, %val2
2071 ; CHECK: cost of 4 for instruction:   %v = zext <8 x i1> %cmp to <8 x i32>
2074 define <8 x i64> @fun207(<8 x i64> %val1, <8 x i64> %val2) {
2075   %cmp = icmp eq <8 x i64> %val1, %val2
2076   %v = zext <8 x i1> %cmp to <8 x i64>
2077   ret <8 x i64> %v
2079 ; CHECK: fun207
2080 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <8 x i64> %val1, %val2
2081 ; CHECK: cost of 4 for instruction:   %v = zext <8 x i1> %cmp to <8 x i64>
2084 define <8 x i8> @fun208(<8 x float> %val1, <8 x float> %val2) {
2085   %cmp = fcmp ogt <8 x float> %val1, %val2
2086   %v = zext <8 x i1> %cmp to <8 x i8>
2087   ret <8 x i8> %v
2089 ; CHECK: fun208
2090 ; CHECK: cost of 20 for instruction:   %cmp = fcmp ogt <8 x float> %val1, %val2
2091 ; CHECK: cost of 2 for instruction:   %v = zext <8 x i1> %cmp to <8 x i8>
2094 define <8 x i16> @fun209(<8 x float> %val1, <8 x float> %val2) {
2095   %cmp = fcmp ogt <8 x float> %val1, %val2
2096   %v = zext <8 x i1> %cmp to <8 x i16>
2097   ret <8 x i16> %v
2099 ; CHECK: fun209
2100 ; CHECK: cost of 20 for instruction:   %cmp = fcmp ogt <8 x float> %val1, %val2
2101 ; CHECK: cost of 2 for instruction:   %v = zext <8 x i1> %cmp to <8 x i16>
2104 define <8 x i32> @fun210(<8 x float> %val1, <8 x float> %val2) {
2105   %cmp = fcmp ogt <8 x float> %val1, %val2
2106   %v = zext <8 x i1> %cmp to <8 x i32>
2107   ret <8 x i32> %v
2109 ; CHECK: fun210
2110 ; CHECK: cost of 20 for instruction:   %cmp = fcmp ogt <8 x float> %val1, %val2
2111 ; CHECK: cost of 2 for instruction:   %v = zext <8 x i1> %cmp to <8 x i32>
2114 define <8 x i64> @fun211(<8 x float> %val1, <8 x float> %val2) {
2115   %cmp = fcmp ogt <8 x float> %val1, %val2
2116   %v = zext <8 x i1> %cmp to <8 x i64>
2117   ret <8 x i64> %v
2119 ; CHECK: fun211
2120 ; CHECK: cost of 20 for instruction:   %cmp = fcmp ogt <8 x float> %val1, %val2
2121 ; CHECK: cost of 11 for instruction:   %v = zext <8 x i1> %cmp to <8 x i64>
2124 define <8 x i8> @fun212(<8 x double> %val1, <8 x double> %val2) {
2125   %cmp = fcmp ogt <8 x double> %val1, %val2
2126   %v = zext <8 x i1> %cmp to <8 x i8>
2127   ret <8 x i8> %v
2129 ; CHECK: fun212
2130 ; CHECK: cost of 4 for instruction:   %cmp = fcmp ogt <8 x double> %val1, %val2
2131 ; CHECK: cost of 4 for instruction:   %v = zext <8 x i1> %cmp to <8 x i8>
2134 define <8 x i16> @fun213(<8 x double> %val1, <8 x double> %val2) {
2135   %cmp = fcmp ogt <8 x double> %val1, %val2
2136   %v = zext <8 x i1> %cmp to <8 x i16>
2137   ret <8 x i16> %v
2139 ; CHECK: fun213
2140 ; CHECK: cost of 4 for instruction:   %cmp = fcmp ogt <8 x double> %val1, %val2
2141 ; CHECK: cost of 4 for instruction:   %v = zext <8 x i1> %cmp to <8 x i16>
2144 define <8 x i32> @fun214(<8 x double> %val1, <8 x double> %val2) {
2145   %cmp = fcmp ogt <8 x double> %val1, %val2
2146   %v = zext <8 x i1> %cmp to <8 x i32>
2147   ret <8 x i32> %v
2149 ; CHECK: fun214
2150 ; CHECK: cost of 4 for instruction:   %cmp = fcmp ogt <8 x double> %val1, %val2
2151 ; CHECK: cost of 4 for instruction:   %v = zext <8 x i1> %cmp to <8 x i32>
2154 define <8 x i64> @fun215(<8 x double> %val1, <8 x double> %val2) {
2155   %cmp = fcmp ogt <8 x double> %val1, %val2
2156   %v = zext <8 x i1> %cmp to <8 x i64>
2157   ret <8 x i64> %v
2159 ; CHECK: fun215
2160 ; CHECK: cost of 4 for instruction:   %cmp = fcmp ogt <8 x double> %val1, %val2
2161 ; CHECK: cost of 4 for instruction:   %v = zext <8 x i1> %cmp to <8 x i64>
2164 define <16 x i8> @fun216(<16 x i8> %val1, <16 x i8> %val2) {
2165   %cmp = icmp eq <16 x i8> %val1, %val2
2166   %v = zext <16 x i1> %cmp to <16 x i8>
2167   ret <16 x i8> %v
2169 ; CHECK: fun216
2170 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <16 x i8> %val1, %val2
2171 ; CHECK: cost of 1 for instruction:   %v = zext <16 x i1> %cmp to <16 x i8>
2174 define <16 x i16> @fun217(<16 x i8> %val1, <16 x i8> %val2) {
2175   %cmp = icmp eq <16 x i8> %val1, %val2
2176   %v = zext <16 x i1> %cmp to <16 x i16>
2177   ret <16 x i16> %v
2179 ; CHECK: fun217
2180 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <16 x i8> %val1, %val2
2181 ; CHECK: cost of 5 for instruction:   %v = zext <16 x i1> %cmp to <16 x i16>
2184 define <16 x i32> @fun218(<16 x i8> %val1, <16 x i8> %val2) {
2185   %cmp = icmp eq <16 x i8> %val1, %val2
2186   %v = zext <16 x i1> %cmp to <16 x i32>
2187   ret <16 x i32> %v
2189 ; CHECK: fun218
2190 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <16 x i8> %val1, %val2
2191 ; CHECK: cost of 15 for instruction:   %v = zext <16 x i1> %cmp to <16 x i32>
2194 define <16 x i64> @fun219(<16 x i8> %val1, <16 x i8> %val2) {
2195   %cmp = icmp eq <16 x i8> %val1, %val2
2196   %v = zext <16 x i1> %cmp to <16 x i64>
2197   ret <16 x i64> %v
2199 ; CHECK: fun219
2200 ; CHECK: cost of 1 for instruction:   %cmp = icmp eq <16 x i8> %val1, %val2
2201 ; CHECK: cost of 39 for instruction:   %v = zext <16 x i1> %cmp to <16 x i64>
2204 define <16 x i8> @fun220(<16 x i16> %val1, <16 x i16> %val2) {
2205   %cmp = icmp eq <16 x i16> %val1, %val2
2206   %v = zext <16 x i1> %cmp to <16 x i8>
2207   ret <16 x i8> %v
2209 ; CHECK: fun220
2210 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <16 x i16> %val1, %val2
2211 ; CHECK: cost of 2 for instruction:   %v = zext <16 x i1> %cmp to <16 x i8>
2214 define <16 x i16> @fun221(<16 x i16> %val1, <16 x i16> %val2) {
2215   %cmp = icmp eq <16 x i16> %val1, %val2
2216   %v = zext <16 x i1> %cmp to <16 x i16>
2217   ret <16 x i16> %v
2219 ; CHECK: fun221
2220 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <16 x i16> %val1, %val2
2221 ; CHECK: cost of 2 for instruction:   %v = zext <16 x i1> %cmp to <16 x i16>
2224 define <16 x i32> @fun222(<16 x i16> %val1, <16 x i16> %val2) {
2225   %cmp = icmp eq <16 x i16> %val1, %val2
2226   %v = zext <16 x i1> %cmp to <16 x i32>
2227   ret <16 x i32> %v
2229 ; CHECK: fun222
2230 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <16 x i16> %val1, %val2
2231 ; CHECK: cost of 11 for instruction:   %v = zext <16 x i1> %cmp to <16 x i32>
2234 define <16 x i64> @fun223(<16 x i16> %val1, <16 x i16> %val2) {
2235   %cmp = icmp eq <16 x i16> %val1, %val2
2236   %v = zext <16 x i1> %cmp to <16 x i64>
2237   ret <16 x i64> %v
2239 ; CHECK: fun223
2240 ; CHECK: cost of 2 for instruction:   %cmp = icmp eq <16 x i16> %val1, %val2
2241 ; CHECK: cost of 31 for instruction:   %v = zext <16 x i1> %cmp to <16 x i64>
2244 define <16 x i8> @fun224(<16 x i32> %val1, <16 x i32> %val2) {
2245   %cmp = icmp eq <16 x i32> %val1, %val2
2246   %v = zext <16 x i1> %cmp to <16 x i8>
2247   ret <16 x i8> %v
2249 ; CHECK: fun224
2250 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <16 x i32> %val1, %val2
2251 ; CHECK: cost of 4 for instruction:   %v = zext <16 x i1> %cmp to <16 x i8>
2254 define <16 x i16> @fun225(<16 x i32> %val1, <16 x i32> %val2) {
2255   %cmp = icmp eq <16 x i32> %val1, %val2
2256   %v = zext <16 x i1> %cmp to <16 x i16>
2257   ret <16 x i16> %v
2259 ; CHECK: fun225
2260 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <16 x i32> %val1, %val2
2261 ; CHECK: cost of 4 for instruction:   %v = zext <16 x i1> %cmp to <16 x i16>
2264 define <16 x i32> @fun226(<16 x i32> %val1, <16 x i32> %val2) {
2265   %cmp = icmp eq <16 x i32> %val1, %val2
2266   %v = zext <16 x i1> %cmp to <16 x i32>
2267   ret <16 x i32> %v
2269 ; CHECK: fun226
2270 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <16 x i32> %val1, %val2
2271 ; CHECK: cost of 4 for instruction:   %v = zext <16 x i1> %cmp to <16 x i32>
2274 define <16 x i64> @fun227(<16 x i32> %val1, <16 x i32> %val2) {
2275   %cmp = icmp eq <16 x i32> %val1, %val2
2276   %v = zext <16 x i1> %cmp to <16 x i64>
2277   ret <16 x i64> %v
2279 ; CHECK: fun227
2280 ; CHECK: cost of 4 for instruction:   %cmp = icmp eq <16 x i32> %val1, %val2
2281 ; CHECK: cost of 23 for instruction:   %v = zext <16 x i1> %cmp to <16 x i64>
2284 define <16 x i8> @fun228(<16 x i64> %val1, <16 x i64> %val2) {
2285   %cmp = icmp eq <16 x i64> %val1, %val2
2286   %v = zext <16 x i1> %cmp to <16 x i8>
2287   ret <16 x i8> %v
2289 ; CHECK: fun228
2290 ; CHECK: cost of 8 for instruction:   %cmp = icmp eq <16 x i64> %val1, %val2
2291 ; CHECK: cost of 8 for instruction:   %v = zext <16 x i1> %cmp to <16 x i8>
2294 define <16 x i16> @fun229(<16 x i64> %val1, <16 x i64> %val2) {
2295   %cmp = icmp eq <16 x i64> %val1, %val2
2296   %v = zext <16 x i1> %cmp to <16 x i16>
2297   ret <16 x i16> %v
2299 ; CHECK: fun229
2300 ; CHECK: cost of 8 for instruction:   %cmp = icmp eq <16 x i64> %val1, %val2
2301 ; CHECK: cost of 8 for instruction:   %v = zext <16 x i1> %cmp to <16 x i16>
2304 define <16 x i32> @fun230(<16 x i64> %val1, <16 x i64> %val2) {
2305   %cmp = icmp eq <16 x i64> %val1, %val2
2306   %v = zext <16 x i1> %cmp to <16 x i32>
2307   ret <16 x i32> %v
2309 ; CHECK: fun230
2310 ; CHECK: cost of 8 for instruction:   %cmp = icmp eq <16 x i64> %val1, %val2
2311 ; CHECK: cost of 8 for instruction:   %v = zext <16 x i1> %cmp to <16 x i32>
2314 define <16 x i64> @fun231(<16 x i64> %val1, <16 x i64> %val2) {
2315   %cmp = icmp eq <16 x i64> %val1, %val2
2316   %v = zext <16 x i1> %cmp to <16 x i64>
2317   ret <16 x i64> %v
2319 ; CHECK: fun231
2320 ; CHECK: cost of 8 for instruction:   %cmp = icmp eq <16 x i64> %val1, %val2
2321 ; CHECK: cost of 8 for instruction:   %v = zext <16 x i1> %cmp to <16 x i64>
2324 define <16 x i8> @fun232(<16 x float> %val1, <16 x float> %val2) {
2325   %cmp = fcmp ogt <16 x float> %val1, %val2
2326   %v = zext <16 x i1> %cmp to <16 x i8>
2327   ret <16 x i8> %v
2329 ; CHECK: fun232
2330 ; CHECK: cost of 40 for instruction:   %cmp = fcmp ogt <16 x float> %val1, %val2
2331 ; CHECK: cost of 4 for instruction:   %v = zext <16 x i1> %cmp to <16 x i8>
2334 define <16 x i16> @fun233(<16 x float> %val1, <16 x float> %val2) {
2335   %cmp = fcmp ogt <16 x float> %val1, %val2
2336   %v = zext <16 x i1> %cmp to <16 x i16>
2337   ret <16 x i16> %v
2339 ; CHECK: fun233
2340 ; CHECK: cost of 40 for instruction:   %cmp = fcmp ogt <16 x float> %val1, %val2
2341 ; CHECK: cost of 4 for instruction:   %v = zext <16 x i1> %cmp to <16 x i16>
2344 define <16 x i32> @fun234(<16 x float> %val1, <16 x float> %val2) {
2345   %cmp = fcmp ogt <16 x float> %val1, %val2
2346   %v = zext <16 x i1> %cmp to <16 x i32>
2347   ret <16 x i32> %v
2349 ; CHECK: fun234
2350 ; CHECK: cost of 40 for instruction:   %cmp = fcmp ogt <16 x float> %val1, %val2
2351 ; CHECK: cost of 4 for instruction:   %v = zext <16 x i1> %cmp to <16 x i32>
2354 define <16 x i64> @fun235(<16 x float> %val1, <16 x float> %val2) {
2355   %cmp = fcmp ogt <16 x float> %val1, %val2
2356   %v = zext <16 x i1> %cmp to <16 x i64>
2357   ret <16 x i64> %v
2359 ; CHECK: fun235
2360 ; CHECK: cost of 40 for instruction:   %cmp = fcmp ogt <16 x float> %val1, %val2
2361 ; CHECK: cost of 23 for instruction:   %v = zext <16 x i1> %cmp to <16 x i64>
2364 define <16 x i8> @fun236(<16 x double> %val1, <16 x double> %val2) {
2365   %cmp = fcmp ogt <16 x double> %val1, %val2
2366   %v = zext <16 x i1> %cmp to <16 x i8>
2367   ret <16 x i8> %v
2369 ; CHECK: fun236
2370 ; CHECK: cost of 8 for instruction:   %cmp = fcmp ogt <16 x double> %val1, %val2
2371 ; CHECK: cost of 8 for instruction:   %v = zext <16 x i1> %cmp to <16 x i8>
2374 define <16 x i16> @fun237(<16 x double> %val1, <16 x double> %val2) {
2375   %cmp = fcmp ogt <16 x double> %val1, %val2
2376   %v = zext <16 x i1> %cmp to <16 x i16>
2377   ret <16 x i16> %v
2379 ; CHECK: fun237
2380 ; CHECK: cost of 8 for instruction:   %cmp = fcmp ogt <16 x double> %val1, %val2
2381 ; CHECK: cost of 8 for instruction:   %v = zext <16 x i1> %cmp to <16 x i16>
2384 define <16 x i32> @fun238(<16 x double> %val1, <16 x double> %val2) {
2385   %cmp = fcmp ogt <16 x double> %val1, %val2
2386   %v = zext <16 x i1> %cmp to <16 x i32>
2387   ret <16 x i32> %v
2389 ; CHECK: fun238
2390 ; CHECK: cost of 8 for instruction:   %cmp = fcmp ogt <16 x double> %val1, %val2
2391 ; CHECK: cost of 8 for instruction:   %v = zext <16 x i1> %cmp to <16 x i32>
2394 define <16 x i64> @fun239(<16 x double> %val1, <16 x double> %val2) {
2395   %cmp = fcmp ogt <16 x double> %val1, %val2
2396   %v = zext <16 x i1> %cmp to <16 x i64>
2397   ret <16 x i64> %v
2399 ; CHECK: fun239
2400 ; CHECK: cost of 8 for instruction:   %cmp = fcmp ogt <16 x double> %val1, %val2
2401 ; CHECK: cost of 8 for instruction:   %v = zext <16 x i1> %cmp to <16 x i64>