~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/CodeGen/AArch64/neon-bitcast.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+neon -verify-machineinstrs < %s | FileCheck %s
 
2
 
 
3
; From <8 x i8>
 
4
 
 
5
define <1 x i64> @test_v8i8_to_v1i64(<8 x i8> %in) nounwind {
 
6
; CHECK: test_v8i8_to_v1i64:
 
7
; CHECK-NEXT: // BB#0:
 
8
; CHECK-NEXT: ret
 
9
 
 
10
  %val = bitcast <8 x i8> %in to <1 x i64>
 
11
  ret <1 x i64> %val
 
12
}
 
13
 
 
14
define <2 x i32> @test_v8i8_to_v2i32(<8 x i8> %in) nounwind {
 
15
; CHECK: test_v8i8_to_v2i32:
 
16
; CHECK-NEXT: // BB#0:
 
17
; CHECK-NEXT: ret
 
18
 
 
19
  %val = bitcast <8 x i8> %in to <2 x i32>
 
20
  ret <2 x i32> %val
 
21
}
 
22
 
 
23
define <2 x float> @test_v8i8_to_v2f32(<8 x i8> %in) nounwind{
 
24
; CHECK: test_v8i8_to_v2f32:
 
25
; CHECK-NEXT: // BB#0:
 
26
; CHECK-NEXT: ret
 
27
 
 
28
  %val = bitcast <8 x i8> %in to <2 x float>
 
29
  ret <2 x float> %val
 
30
}
 
31
 
 
32
define <4 x i16> @test_v8i8_to_v4i16(<8 x i8> %in) nounwind{
 
33
; CHECK: test_v8i8_to_v4i16:
 
34
; CHECK-NEXT: // BB#0:
 
35
; CHECK-NEXT: ret
 
36
 
 
37
  %val = bitcast <8 x i8> %in to <4 x i16>
 
38
  ret <4 x i16> %val
 
39
}
 
40
 
 
41
define <8 x i8> @test_v8i8_to_v8i8(<8 x i8> %in) nounwind{
 
42
; CHECK: test_v8i8_to_v8i8:
 
43
; CHECK-NEXT: // BB#0:
 
44
; CHECK-NEXT: ret
 
45
 
 
46
  %val = bitcast <8 x i8> %in to <8 x i8>
 
47
  ret <8 x i8> %val
 
48
}
 
49
 
 
50
; From <4 x i16>
 
51
 
 
52
define <1 x i64> @test_v4i16_to_v1i64(<4 x i16> %in) nounwind {
 
53
; CHECK: test_v4i16_to_v1i64:
 
54
; CHECK-NEXT: // BB#0:
 
55
; CHECK-NEXT: ret
 
56
 
 
57
  %val = bitcast <4 x i16> %in to <1 x i64>
 
58
  ret <1 x i64> %val
 
59
}
 
60
 
 
61
define <2 x i32> @test_v4i16_to_v2i32(<4 x i16> %in) nounwind {
 
62
; CHECK: test_v4i16_to_v2i32:
 
63
; CHECK-NEXT: // BB#0:
 
64
; CHECK-NEXT: ret
 
65
 
 
66
  %val = bitcast <4 x i16> %in to <2 x i32>
 
67
  ret <2 x i32> %val
 
68
}
 
69
 
 
70
define <2 x float> @test_v4i16_to_v2f32(<4 x i16> %in) nounwind{
 
71
; CHECK: test_v4i16_to_v2f32:
 
72
; CHECK-NEXT: // BB#0:
 
73
; CHECK-NEXT: ret
 
74
 
 
75
  %val = bitcast <4 x i16> %in to <2 x float>
 
76
  ret <2 x float> %val
 
77
}
 
78
 
 
79
define <4 x i16> @test_v4i16_to_v4i16(<4 x i16> %in) nounwind{
 
80
; CHECK: test_v4i16_to_v4i16:
 
81
; CHECK-NEXT: // BB#0:
 
82
; CHECK-NEXT: ret
 
83
 
 
84
  %val = bitcast <4 x i16> %in to <4 x i16>
 
85
  ret <4 x i16> %val
 
86
}
 
87
 
 
88
define <8 x i8> @test_v4i16_to_v8i8(<4 x i16> %in) nounwind{
 
89
; CHECK: test_v4i16_to_v8i8:
 
90
; CHECK-NEXT: // BB#0:
 
91
; CHECK-NEXT: ret
 
92
 
 
93
  %val = bitcast <4 x i16> %in to <8 x i8>
 
94
  ret <8 x i8> %val
 
95
}
 
96
 
 
97
; From <2 x i32>
 
98
 
 
99
define <1 x i64> @test_v2i32_to_v1i64(<2 x i32> %in) nounwind {
 
100
; CHECK: test_v2i32_to_v1i64:
 
101
; CHECK-NEXT: // BB#0:
 
102
; CHECK-NEXT: ret
 
103
 
 
104
  %val = bitcast <2 x i32> %in to <1 x i64>
 
105
  ret <1 x i64> %val
 
106
}
 
107
 
 
108
define <2 x i32> @test_v2i32_to_v2i32(<2 x i32> %in) nounwind {
 
109
; CHECK: test_v2i32_to_v2i32:
 
110
; CHECK-NEXT: // BB#0:
 
111
; CHECK-NEXT: ret
 
112
 
 
113
  %val = bitcast <2 x i32> %in to <2 x i32>
 
114
  ret <2 x i32> %val
 
115
}
 
116
 
 
117
define <2 x float> @test_v2i32_to_v2f32(<2 x i32> %in) nounwind{
 
118
; CHECK: test_v2i32_to_v2f32:
 
119
; CHECK-NEXT: // BB#0:
 
120
; CHECK-NEXT: ret
 
121
 
 
122
  %val = bitcast <2 x i32> %in to <2 x float>
 
123
  ret <2 x float> %val
 
124
}
 
125
 
 
126
define <4 x i16> @test_v2i32_to_v4i16(<2 x i32> %in) nounwind{
 
127
; CHECK: test_v2i32_to_v4i16:
 
128
; CHECK-NEXT: // BB#0:
 
129
; CHECK-NEXT: ret
 
130
 
 
131
  %val = bitcast <2 x i32> %in to <4 x i16>
 
132
  ret <4 x i16> %val
 
133
}
 
134
 
 
135
define <8 x i8> @test_v2i32_to_v8i8(<2 x i32> %in) nounwind{
 
136
; CHECK: test_v2i32_to_v8i8:
 
137
; CHECK-NEXT: // BB#0:
 
138
; CHECK-NEXT: ret
 
139
 
 
140
  %val = bitcast <2 x i32> %in to <8 x i8>
 
141
  ret <8 x i8> %val
 
142
}
 
143
 
 
144
; From <2 x float>
 
145
 
 
146
define <1 x i64> @test_v2f32_to_v1i64(<2 x float> %in) nounwind {
 
147
; CHECK: test_v2f32_to_v1i64:
 
148
; CHECK-NEXT: // BB#0:
 
149
; CHECK-NEXT: ret
 
150
 
 
151
  %val = bitcast <2 x float> %in to <1 x i64>
 
152
  ret <1 x i64> %val
 
153
}
 
154
 
 
155
define <2 x i32> @test_v2f32_to_v2i32(<2 x float> %in) nounwind {
 
156
; CHECK: test_v2f32_to_v2i32:
 
157
; CHECK-NEXT: // BB#0:
 
158
; CHECK-NEXT: ret
 
159
 
 
160
  %val = bitcast <2 x float> %in to <2 x i32>
 
161
  ret <2 x i32> %val
 
162
}
 
163
 
 
164
define <2 x float> @test_v2f32_to_v2f32(<2 x float> %in) nounwind{
 
165
; CHECK: test_v2f32_to_v2f32:
 
166
; CHECK-NEXT: // BB#0:
 
167
; CHECK-NEXT: ret
 
168
 
 
169
  %val = bitcast <2 x float> %in to <2 x float>
 
170
  ret <2 x float> %val
 
171
}
 
172
 
 
173
define <4 x i16> @test_v2f32_to_v4i16(<2 x float> %in) nounwind{
 
174
; CHECK: test_v2f32_to_v4i16:
 
175
; CHECK-NEXT: // BB#0:
 
176
; CHECK-NEXT: ret
 
177
 
 
178
  %val = bitcast <2 x float> %in to <4 x i16>
 
179
  ret <4 x i16> %val
 
180
}
 
181
 
 
182
define <8 x i8> @test_v2f32_to_v8i8(<2 x float> %in) nounwind{
 
183
; CHECK: test_v2f32_to_v8i8:
 
184
; CHECK-NEXT: // BB#0:
 
185
; CHECK-NEXT: ret
 
186
 
 
187
  %val = bitcast <2 x float> %in to <8 x i8>
 
188
  ret <8 x i8> %val
 
189
}
 
190
 
 
191
; From <1 x i64>
 
192
 
 
193
define <1 x i64> @test_v1i64_to_v1i64(<1 x i64> %in) nounwind {
 
194
; CHECK: test_v1i64_to_v1i64:
 
195
; CHECK-NEXT: // BB#0:
 
196
; CHECK-NEXT: ret
 
197
 
 
198
  %val = bitcast <1 x i64> %in to <1 x i64>
 
199
  ret <1 x i64> %val
 
200
}
 
201
 
 
202
define <2 x i32> @test_v1i64_to_v2i32(<1 x i64> %in) nounwind {
 
203
; CHECK: test_v1i64_to_v2i32:
 
204
; CHECK-NEXT: // BB#0:
 
205
; CHECK-NEXT: ret
 
206
 
 
207
  %val = bitcast <1 x i64> %in to <2 x i32>
 
208
  ret <2 x i32> %val
 
209
}
 
210
 
 
211
define <2 x float> @test_v1i64_to_v2f32(<1 x i64> %in) nounwind{
 
212
; CHECK: test_v1i64_to_v2f32:
 
213
; CHECK-NEXT: // BB#0:
 
214
; CHECK-NEXT: ret
 
215
 
 
216
  %val = bitcast <1 x i64> %in to <2 x float>
 
217
  ret <2 x float> %val
 
218
}
 
219
 
 
220
define <4 x i16> @test_v1i64_to_v4i16(<1 x i64> %in) nounwind{
 
221
; CHECK: test_v1i64_to_v4i16:
 
222
; CHECK-NEXT: // BB#0:
 
223
; CHECK-NEXT: ret
 
224
 
 
225
  %val = bitcast <1 x i64> %in to <4 x i16>
 
226
  ret <4 x i16> %val
 
227
}
 
228
 
 
229
define <8 x i8> @test_v1i64_to_v8i8(<1 x i64> %in) nounwind{
 
230
; CHECK: test_v1i64_to_v8i8:
 
231
; CHECK-NEXT: // BB#0:
 
232
; CHECK-NEXT: ret
 
233
 
 
234
  %val = bitcast <1 x i64> %in to <8 x i8>
 
235
  ret <8 x i8> %val
 
236
}
 
237
 
 
238
 
 
239
; From <16 x i8>
 
240
 
 
241
define <2 x double> @test_v16i8_to_v2f64(<16 x i8> %in) nounwind {
 
242
; CHECK: test_v16i8_to_v2f64:
 
243
; CHECK-NEXT: // BB#0:
 
244
; CHECK-NEXT: ret
 
245
 
 
246
  %val = bitcast <16 x i8> %in to <2 x double>
 
247
  ret <2 x double> %val
 
248
}
 
249
 
 
250
define <2 x i64> @test_v16i8_to_v2i64(<16 x i8> %in) nounwind {
 
251
; CHECK: test_v16i8_to_v2i64:
 
252
; CHECK-NEXT: // BB#0:
 
253
; CHECK-NEXT: ret
 
254
 
 
255
  %val = bitcast <16 x i8> %in to <2 x i64>
 
256
  ret <2 x i64> %val
 
257
}
 
258
 
 
259
define <4 x i32> @test_v16i8_to_v4i32(<16 x i8> %in) nounwind {
 
260
; CHECK: test_v16i8_to_v4i32:
 
261
; CHECK-NEXT: // BB#0:
 
262
; CHECK-NEXT: ret
 
263
 
 
264
  %val = bitcast <16 x i8> %in to <4 x i32>
 
265
  ret <4 x i32> %val
 
266
}
 
267
 
 
268
define <4 x float> @test_v16i8_to_v2f32(<16 x i8> %in) nounwind{
 
269
; CHECK: test_v16i8_to_v2f32:
 
270
; CHECK-NEXT: // BB#0:
 
271
; CHECK-NEXT: ret
 
272
 
 
273
  %val = bitcast <16 x i8> %in to <4 x float>
 
274
  ret <4 x float> %val
 
275
}
 
276
 
 
277
define <8 x i16> @test_v16i8_to_v8i16(<16 x i8> %in) nounwind{
 
278
; CHECK: test_v16i8_to_v8i16:
 
279
; CHECK-NEXT: // BB#0:
 
280
; CHECK-NEXT: ret
 
281
 
 
282
  %val = bitcast <16 x i8> %in to <8 x i16>
 
283
  ret <8 x i16> %val
 
284
}
 
285
 
 
286
define <16 x i8> @test_v16i8_to_v16i8(<16 x i8> %in) nounwind{
 
287
; CHECK: test_v16i8_to_v16i8:
 
288
; CHECK-NEXT: // BB#0:
 
289
; CHECK-NEXT: ret
 
290
 
 
291
  %val = bitcast <16 x i8> %in to <16 x i8>
 
292
  ret <16 x i8> %val
 
293
}
 
294
 
 
295
; From <8 x i16>
 
296
 
 
297
define <2 x double> @test_v8i16_to_v2f64(<8 x i16> %in) nounwind {
 
298
; CHECK: test_v8i16_to_v2f64:
 
299
; CHECK-NEXT: // BB#0:
 
300
; CHECK-NEXT: ret
 
301
 
 
302
  %val = bitcast <8 x i16> %in to <2 x double>
 
303
  ret <2 x double> %val
 
304
}
 
305
 
 
306
define <2 x i64> @test_v8i16_to_v2i64(<8 x i16> %in) nounwind {
 
307
; CHECK: test_v8i16_to_v2i64:
 
308
; CHECK-NEXT: // BB#0:
 
309
; CHECK-NEXT: ret
 
310
 
 
311
  %val = bitcast <8 x i16> %in to <2 x i64>
 
312
  ret <2 x i64> %val
 
313
}
 
314
 
 
315
define <4 x i32> @test_v8i16_to_v4i32(<8 x i16> %in) nounwind {
 
316
; CHECK: test_v8i16_to_v4i32:
 
317
; CHECK-NEXT: // BB#0:
 
318
; CHECK-NEXT: ret
 
319
 
 
320
  %val = bitcast <8 x i16> %in to <4 x i32>
 
321
  ret <4 x i32> %val
 
322
}
 
323
 
 
324
define <4 x float> @test_v8i16_to_v2f32(<8 x i16> %in) nounwind{
 
325
; CHECK: test_v8i16_to_v2f32:
 
326
; CHECK-NEXT: // BB#0:
 
327
; CHECK-NEXT: ret
 
328
 
 
329
  %val = bitcast <8 x i16> %in to <4 x float>
 
330
  ret <4 x float> %val
 
331
}
 
332
 
 
333
define <8 x i16> @test_v8i16_to_v8i16(<8 x i16> %in) nounwind{
 
334
; CHECK: test_v8i16_to_v8i16:
 
335
; CHECK-NEXT: // BB#0:
 
336
; CHECK-NEXT: ret
 
337
 
 
338
  %val = bitcast <8 x i16> %in to <8 x i16>
 
339
  ret <8 x i16> %val
 
340
}
 
341
 
 
342
define <16 x i8> @test_v8i16_to_v16i8(<8 x i16> %in) nounwind{
 
343
; CHECK: test_v8i16_to_v16i8:
 
344
; CHECK-NEXT: // BB#0:
 
345
; CHECK-NEXT: ret
 
346
 
 
347
  %val = bitcast <8 x i16> %in to <16 x i8>
 
348
  ret <16 x i8> %val
 
349
}
 
350
 
 
351
; From <4 x i32>
 
352
 
 
353
define <2 x double> @test_v4i32_to_v2f64(<4 x i32> %in) nounwind {
 
354
; CHECK: test_v4i32_to_v2f64:
 
355
; CHECK-NEXT: // BB#0:
 
356
; CHECK-NEXT: ret
 
357
 
 
358
  %val = bitcast <4 x i32> %in to <2 x double>
 
359
  ret <2 x double> %val
 
360
}
 
361
 
 
362
define <2 x i64> @test_v4i32_to_v2i64(<4 x i32> %in) nounwind {
 
363
; CHECK: test_v4i32_to_v2i64:
 
364
; CHECK-NEXT: // BB#0:
 
365
; CHECK-NEXT: ret
 
366
 
 
367
  %val = bitcast <4 x i32> %in to <2 x i64>
 
368
  ret <2 x i64> %val
 
369
}
 
370
 
 
371
define <4 x i32> @test_v4i32_to_v4i32(<4 x i32> %in) nounwind {
 
372
; CHECK: test_v4i32_to_v4i32:
 
373
; CHECK-NEXT: // BB#0:
 
374
; CHECK-NEXT: ret
 
375
 
 
376
  %val = bitcast <4 x i32> %in to <4 x i32>
 
377
  ret <4 x i32> %val
 
378
}
 
379
 
 
380
define <4 x float> @test_v4i32_to_v2f32(<4 x i32> %in) nounwind{
 
381
; CHECK: test_v4i32_to_v2f32:
 
382
; CHECK-NEXT: // BB#0:
 
383
; CHECK-NEXT: ret
 
384
 
 
385
  %val = bitcast <4 x i32> %in to <4 x float>
 
386
  ret <4 x float> %val
 
387
}
 
388
 
 
389
define <8 x i16> @test_v4i32_to_v8i16(<4 x i32> %in) nounwind{
 
390
; CHECK: test_v4i32_to_v8i16:
 
391
; CHECK-NEXT: // BB#0:
 
392
; CHECK-NEXT: ret
 
393
 
 
394
  %val = bitcast <4 x i32> %in to <8 x i16>
 
395
  ret <8 x i16> %val
 
396
}
 
397
 
 
398
define <16 x i8> @test_v4i32_to_v16i8(<4 x i32> %in) nounwind{
 
399
; CHECK: test_v4i32_to_v16i8:
 
400
; CHECK-NEXT: // BB#0:
 
401
; CHECK-NEXT: ret
 
402
 
 
403
  %val = bitcast <4 x i32> %in to <16 x i8>
 
404
  ret <16 x i8> %val
 
405
}
 
406
 
 
407
; From <4 x float>
 
408
 
 
409
define <2 x double> @test_v4f32_to_v2f64(<4 x float> %in) nounwind {
 
410
; CHECK: test_v4f32_to_v2f64:
 
411
; CHECK-NEXT: // BB#0:
 
412
; CHECK-NEXT: ret
 
413
 
 
414
  %val = bitcast <4 x float> %in to <2 x double>
 
415
  ret <2 x double> %val
 
416
}
 
417
 
 
418
define <2 x i64> @test_v4f32_to_v2i64(<4 x float> %in) nounwind {
 
419
; CHECK: test_v4f32_to_v2i64:
 
420
; CHECK-NEXT: // BB#0:
 
421
; CHECK-NEXT: ret
 
422
 
 
423
  %val = bitcast <4 x float> %in to <2 x i64>
 
424
  ret <2 x i64> %val
 
425
}
 
426
 
 
427
define <4 x i32> @test_v4f32_to_v4i32(<4 x float> %in) nounwind {
 
428
; CHECK: test_v4f32_to_v4i32:
 
429
; CHECK-NEXT: // BB#0:
 
430
; CHECK-NEXT: ret
 
431
 
 
432
  %val = bitcast <4 x float> %in to <4 x i32>
 
433
  ret <4 x i32> %val
 
434
}
 
435
 
 
436
define <4 x float> @test_v4f32_to_v4f32(<4 x float> %in) nounwind{
 
437
; CHECK: test_v4f32_to_v4f32:
 
438
; CHECK-NEXT: // BB#0:
 
439
; CHECK-NEXT: ret
 
440
 
 
441
  %val = bitcast <4 x float> %in to <4 x float>
 
442
  ret <4 x float> %val
 
443
}
 
444
 
 
445
define <8 x i16> @test_v4f32_to_v8i16(<4 x float> %in) nounwind{
 
446
; CHECK: test_v4f32_to_v8i16:
 
447
; CHECK-NEXT: // BB#0:
 
448
; CHECK-NEXT: ret
 
449
 
 
450
  %val = bitcast <4 x float> %in to <8 x i16>
 
451
  ret <8 x i16> %val
 
452
}
 
453
 
 
454
define <16 x i8> @test_v4f32_to_v16i8(<4 x float> %in) nounwind{
 
455
; CHECK: test_v4f32_to_v16i8:
 
456
; CHECK-NEXT: // BB#0:
 
457
; CHECK-NEXT: ret
 
458
 
 
459
  %val = bitcast <4 x float> %in to <16 x i8>
 
460
  ret <16 x i8> %val
 
461
}
 
462
 
 
463
; From <2 x i64>
 
464
 
 
465
define <2 x double> @test_v2i64_to_v2f64(<2 x i64> %in) nounwind {
 
466
; CHECK: test_v2i64_to_v2f64:
 
467
; CHECK-NEXT: // BB#0:
 
468
; CHECK-NEXT: ret
 
469
 
 
470
  %val = bitcast <2 x i64> %in to <2 x double>
 
471
  ret <2 x double> %val
 
472
}
 
473
 
 
474
define <2 x i64> @test_v2i64_to_v2i64(<2 x i64> %in) nounwind {
 
475
; CHECK: test_v2i64_to_v2i64:
 
476
; CHECK-NEXT: // BB#0:
 
477
; CHECK-NEXT: ret
 
478
 
 
479
  %val = bitcast <2 x i64> %in to <2 x i64>
 
480
  ret <2 x i64> %val
 
481
}
 
482
 
 
483
define <4 x i32> @test_v2i64_to_v4i32(<2 x i64> %in) nounwind {
 
484
; CHECK: test_v2i64_to_v4i32:
 
485
; CHECK-NEXT: // BB#0:
 
486
; CHECK-NEXT: ret
 
487
 
 
488
  %val = bitcast <2 x i64> %in to <4 x i32>
 
489
  ret <4 x i32> %val
 
490
}
 
491
 
 
492
define <4 x float> @test_v2i64_to_v4f32(<2 x i64> %in) nounwind{
 
493
; CHECK: test_v2i64_to_v4f32:
 
494
; CHECK-NEXT: // BB#0:
 
495
; CHECK-NEXT: ret
 
496
 
 
497
  %val = bitcast <2 x i64> %in to <4 x float>
 
498
  ret <4 x float> %val
 
499
}
 
500
 
 
501
define <8 x i16> @test_v2i64_to_v8i16(<2 x i64> %in) nounwind{
 
502
; CHECK: test_v2i64_to_v8i16:
 
503
; CHECK-NEXT: // BB#0:
 
504
; CHECK-NEXT: ret
 
505
 
 
506
  %val = bitcast <2 x i64> %in to <8 x i16>
 
507
  ret <8 x i16> %val
 
508
}
 
509
 
 
510
define <16 x i8> @test_v2i64_to_v16i8(<2 x i64> %in) nounwind{
 
511
; CHECK: test_v2i64_to_v16i8:
 
512
; CHECK-NEXT: // BB#0:
 
513
; CHECK-NEXT: ret
 
514
 
 
515
  %val = bitcast <2 x i64> %in to <16 x i8>
 
516
  ret <16 x i8> %val
 
517
}
 
518
 
 
519
; From <2 x double>
 
520
 
 
521
define <2 x double> @test_v2f64_to_v2f64(<2 x double> %in) nounwind {
 
522
; CHECK: test_v2f64_to_v2f64:
 
523
; CHECK-NEXT: // BB#0:
 
524
; CHECK-NEXT: ret
 
525
 
 
526
  %val = bitcast <2 x double> %in to <2 x double>
 
527
  ret <2 x double> %val
 
528
}
 
529
 
 
530
define <2 x i64> @test_v2f64_to_v2i64(<2 x double> %in) nounwind {
 
531
; CHECK: test_v2f64_to_v2i64:
 
532
; CHECK-NEXT: // BB#0:
 
533
; CHECK-NEXT: ret
 
534
 
 
535
  %val = bitcast <2 x double> %in to <2 x i64>
 
536
  ret <2 x i64> %val
 
537
}
 
538
 
 
539
define <4 x i32> @test_v2f64_to_v4i32(<2 x double> %in) nounwind {
 
540
; CHECK: test_v2f64_to_v4i32:
 
541
; CHECK-NEXT: // BB#0:
 
542
; CHECK-NEXT: ret
 
543
 
 
544
  %val = bitcast <2 x double> %in to <4 x i32>
 
545
  ret <4 x i32> %val
 
546
}
 
547
 
 
548
define <4 x float> @test_v2f64_to_v4f32(<2 x double> %in) nounwind{
 
549
; CHECK: test_v2f64_to_v4f32:
 
550
; CHECK-NEXT: // BB#0:
 
551
; CHECK-NEXT: ret
 
552
 
 
553
  %val = bitcast <2 x double> %in to <4 x float>
 
554
  ret <4 x float> %val
 
555
}
 
556
 
 
557
define <8 x i16> @test_v2f64_to_v8i16(<2 x double> %in) nounwind{
 
558
; CHECK: test_v2f64_to_v8i16:
 
559
; CHECK-NEXT: // BB#0:
 
560
; CHECK-NEXT: ret
 
561
 
 
562
  %val = bitcast <2 x double> %in to <8 x i16>
 
563
  ret <8 x i16> %val
 
564
}
 
565
 
 
566
define <16 x i8> @test_v2f64_to_v16i8(<2 x double> %in) nounwind{
 
567
; CHECK: test_v2f64_to_v16i8:
 
568
; CHECK-NEXT: // BB#0:
 
569
; CHECK-NEXT: ret
 
570
 
 
571
  %val = bitcast <2 x double> %in to <16 x i8>
 
572
  ret <16 x i8> %val
 
573
}
 
574