Add AVX2 VEXTRACTI128 and VINSERTI128 instructions. Fix VPERM2I128 to be qualified...
[oota-llvm.git] / test / Bitcode / shuffle.ll
1 ; RUN: llvm-as < %s | llvm-dis
2
3 ; <rdar://problem/8622574>
4 ; tests the bitcodereader can handle the case where the reader will initially
5 ; create shuffle with a place holder mask.
6
7
8 define <4 x float> @test(<2 x double> %d2)  {
9 entry:
10   %call20.i = tail call <4 x float> @cmp(<2 x double> %d2,
11                                         <2 x double> bitcast (
12                                           <4 x float> shufflevector (
13                                             <3 x float> shufflevector (
14                                               <4 x float> shufflevector (
15                                                 <3 x float> bitcast (
16                                                   i96 trunc (
17                                                     i128 bitcast (<2 x double> bitcast (
18                                                       <4 x i32> <i32 0, i32 0, i32 0, i32 undef> to <2 x double>)
19                                                     to i128) to i96)
20                                                   to <3 x float>),
21                                                 <3 x float> undef,
22                                                 <4 x i32> <i32 0, i32 1, i32 2, i32 undef>),
23                                               <4 x float> undef,
24                                             <3 x i32> <i32 0, i32 1, i32 2>),
25                                             <3 x float> undef,
26                                             <4 x i32> <i32 0, i32 1, i32 2, i32 undef>)
27                                           to <2 x double>))
28   ret <4 x float> %call20.i
29 }
30
31 declare <4 x float> @cmp(<2 x double>, <2 x double>)