a49af34f57930289635617c25da51d37a560f027
[oota-llvm.git] / test / CodeGen / X86 / vec_split.ll
1 ; RUN: llc -march=x86-64 -mcpu=corei7 < %s | FileCheck %s -check-prefix=SSE4
2 ; RUN: llc -march=x86-64 -mcpu=core-avx2 < %s | FileCheck %s -check-prefix=AVX2
3
4 define <16 x i16> @split16(<16 x i16> %a, <16 x i16> %b, <16 x i8> %__mask) {
5 ; SSE4-LABEL: split16:
6 ; SSE4: pminuw
7 ; SSE4: pminuw
8 ; AVX2-LABEL: split16:
9 ; AVX2: vpminuw
10 ; AVX2: ret
11   %1 = icmp ult <16 x i16> %a, %b
12   %2 = select <16 x i1> %1, <16 x i16> %a, <16 x i16> %b
13   ret <16 x i16> %2
14 }
15
16 define <32 x i16> @split32(<32 x i16> %a, <32 x i16> %b, <32 x i8> %__mask) {
17 ; SSE4-LABEL: split32:
18 ; SSE4: pminuw
19 ; SSE4: pminuw
20 ; SSE4: pminuw
21 ; SSE4: pminuw
22 ; AVX2-LABEL: split32:
23 ; AVX2: vpminuw
24 ; AVX2: vpminuw
25 ; AVX2: ret
26   %1 = icmp ult <32 x i16> %a, %b
27   %2 = select <32 x i1> %1, <32 x i16> %a, <32 x i16> %b
28   ret <32 x i16> %2
29 }