1; RUN: llc -march=x86-64 -mcpu=corei7 < %s | FileCheck %s -check-prefix=SSE4
2; RUN: llc -march=x86-64 -mcpu=corei7-avx < %s | FileCheck %s -check-prefix=AVX1
3; RUN: llc -march=x86-64 -mcpu=core-avx2 < %s | FileCheck %s -check-prefix=AVX2
4
5define <16 x i16> @split16(<16 x i16> %a, <16 x i16> %b, <16 x i8> %__mask) {
6; SSE4-LABEL: split16:
7; SSE4: pminuw
8; SSE4: pminuw
9; SSE4: ret
10; AVX1-LABEL: split16:
11; AVX1: vpminuw
12; AVX1: vpminuw
13; AVX1: ret
14; AVX2-LABEL: split16:
15; AVX2: vpminuw
16; AVX2: ret
17  %1 = icmp ult <16 x i16> %a, %b
18  %2 = select <16 x i1> %1, <16 x i16> %a, <16 x i16> %b
19  ret <16 x i16> %2
20}
21
22define <32 x i16> @split32(<32 x i16> %a, <32 x i16> %b, <32 x i8> %__mask) {
23; SSE4-LABEL: split32:
24; SSE4: pminuw
25; SSE4: pminuw
26; SSE4: pminuw
27; SSE4: pminuw
28; SSE4: ret
29; AVX1-LABEL: split32:
30; AVX1: vpminuw
31; AVX1: vpminuw
32; AVX1: vpminuw
33; AVX1: vpminuw
34; AVX1: ret
35; AVX2-LABEL: split32:
36; AVX2: vpminuw
37; AVX2: vpminuw
38; AVX2: ret
39  %1 = icmp ult <32 x i16> %a, %b
40  %2 = select <32 x i1> %1, <32 x i16> %a, <32 x i16> %b
41  ret <32 x i16> %2
42}
43