[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / X86 / avx512-calling-conv.ll
blobb13c27e0d470b17d08b0767c5fb26a0db23ed9e8
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-apple-darwin9 -mcpu=knl | FileCheck %s --check-prefix=ALL_X64 --check-prefix=KNL --check-prefix=KNL-NEW
3 ; RUN: llc < %s -mtriple=x86_64-apple-darwin9 -mcpu=knl -x86-enable-old-knl-abi | FileCheck %s --check-prefix=ALL_X64 --check-prefix=KNL --check-prefix=KNL-OLD
4 ; RUN: llc < %s -mtriple=x86_64-apple-darwin9 -mcpu=skx | FileCheck %s --check-prefix=ALL_X64 --check-prefix=SKX
5 ; RUN: llc < %s -mtriple=i686-apple-darwin9 -mcpu=knl | FileCheck %s --check-prefix=KNL_X32
7 define <16 x i1> @test1() {
8 ; ALL_X64-LABEL: test1:
9 ; ALL_X64:       ## %bb.0:
10 ; ALL_X64-NEXT:    vxorps %xmm0, %xmm0, %xmm0
11 ; ALL_X64-NEXT:    retq
13 ; KNL_X32-LABEL: test1:
14 ; KNL_X32:       ## %bb.0:
15 ; KNL_X32-NEXT:    vxorps %xmm0, %xmm0, %xmm0
16 ; KNL_X32-NEXT:    retl
17   ret <16 x i1> zeroinitializer
20 define <16 x i1> @test2(<16 x i1>%a, <16 x i1>%b) {
21 ; ALL_X64-LABEL: test2:
22 ; ALL_X64:       ## %bb.0:
23 ; ALL_X64-NEXT:    vandps %xmm1, %xmm0, %xmm0
24 ; ALL_X64-NEXT:    retq
26 ; KNL_X32-LABEL: test2:
27 ; KNL_X32:       ## %bb.0:
28 ; KNL_X32-NEXT:    vandps %xmm1, %xmm0, %xmm0
29 ; KNL_X32-NEXT:    retl
30   %c = and <16 x i1>%a, %b
31   ret <16 x i1> %c
34 define <8 x i1> @test3(<8 x i1>%a, <8 x i1>%b) {
35 ; ALL_X64-LABEL: test3:
36 ; ALL_X64:       ## %bb.0:
37 ; ALL_X64-NEXT:    vandps %xmm1, %xmm0, %xmm0
38 ; ALL_X64-NEXT:    retq
40 ; KNL_X32-LABEL: test3:
41 ; KNL_X32:       ## %bb.0:
42 ; KNL_X32-NEXT:    vandps %xmm1, %xmm0, %xmm0
43 ; KNL_X32-NEXT:    retl
44   %c = and <8 x i1>%a, %b
45   ret <8 x i1> %c
48 define <4 x i1> @test4(<4 x i1>%a, <4 x i1>%b) {
49 ; ALL_X64-LABEL: test4:
50 ; ALL_X64:       ## %bb.0:
51 ; ALL_X64-NEXT:    vandps %xmm1, %xmm0, %xmm0
52 ; ALL_X64-NEXT:    retq
54 ; KNL_X32-LABEL: test4:
55 ; KNL_X32:       ## %bb.0:
56 ; KNL_X32-NEXT:    vandps %xmm1, %xmm0, %xmm0
57 ; KNL_X32-NEXT:    retl
58   %c = and <4 x i1>%a, %b
59   ret <4 x i1> %c
62 declare <8 x i1> @func8xi1(<8 x i1> %a)
64 define <8 x i32> @test5(<8 x i32>%a, <8 x i32>%b) {
65 ; KNL-LABEL: test5:
66 ; KNL:       ## %bb.0:
67 ; KNL-NEXT:    pushq %rax
68 ; KNL-NEXT:    .cfi_def_cfa_offset 16
69 ; KNL-NEXT:    vpcmpgtd %ymm1, %ymm0, %ymm0
70 ; KNL-NEXT:    vpmovdw %zmm0, %ymm0
71 ; KNL-NEXT:    ## kill: def $xmm0 killed $xmm0 killed $ymm0
72 ; KNL-NEXT:    callq _func8xi1
73 ; KNL-NEXT:    vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero
74 ; KNL-NEXT:    vpslld $31, %ymm0, %ymm0
75 ; KNL-NEXT:    vpsrad $31, %ymm0, %ymm0
76 ; KNL-NEXT:    popq %rax
77 ; KNL-NEXT:    retq
79 ; SKX-LABEL: test5:
80 ; SKX:       ## %bb.0:
81 ; SKX-NEXT:    pushq %rax
82 ; SKX-NEXT:    .cfi_def_cfa_offset 16
83 ; SKX-NEXT:    vpcmpgtd %ymm1, %ymm0, %k0
84 ; SKX-NEXT:    vpmovm2w %k0, %xmm0
85 ; SKX-NEXT:    vzeroupper
86 ; SKX-NEXT:    callq _func8xi1
87 ; SKX-NEXT:    vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero
88 ; SKX-NEXT:    vpslld $31, %ymm0, %ymm0
89 ; SKX-NEXT:    vpsrad $31, %ymm0, %ymm0
90 ; SKX-NEXT:    popq %rax
91 ; SKX-NEXT:    retq
93 ; KNL_X32-LABEL: test5:
94 ; KNL_X32:       ## %bb.0:
95 ; KNL_X32-NEXT:    subl $12, %esp
96 ; KNL_X32-NEXT:    .cfi_def_cfa_offset 16
97 ; KNL_X32-NEXT:    vpcmpgtd %ymm1, %ymm0, %ymm0
98 ; KNL_X32-NEXT:    vpmovdw %zmm0, %ymm0
99 ; KNL_X32-NEXT:    ## kill: def $xmm0 killed $xmm0 killed $ymm0
100 ; KNL_X32-NEXT:    calll _func8xi1
101 ; KNL_X32-NEXT:    vpmovzxwd {{.*#+}} ymm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero
102 ; KNL_X32-NEXT:    vpslld $31, %ymm0, %ymm0
103 ; KNL_X32-NEXT:    vpsrad $31, %ymm0, %ymm0
104 ; KNL_X32-NEXT:    addl $12, %esp
105 ; KNL_X32-NEXT:    retl
106   %cmpRes = icmp sgt <8 x i32>%a, %b
107   %resi = call <8 x i1> @func8xi1(<8 x i1> %cmpRes)
108   %res = sext <8 x i1>%resi to <8 x i32>
109   ret <8 x i32> %res
112 declare <16 x i1> @func16xi1(<16 x i1> %a)
114 define <16 x i32> @test6(<16 x i32>%a, <16 x i32>%b) {
115 ; KNL-LABEL: test6:
116 ; KNL:       ## %bb.0:
117 ; KNL-NEXT:    pushq %rax
118 ; KNL-NEXT:    .cfi_def_cfa_offset 16
119 ; KNL-NEXT:    vpcmpgtd %zmm1, %zmm0, %k1
120 ; KNL-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
121 ; KNL-NEXT:    vpmovdb %zmm0, %xmm0
122 ; KNL-NEXT:    callq _func16xi1
123 ; KNL-NEXT:    vpmovzxbd {{.*#+}} zmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero,xmm0[4],zero,zero,zero,xmm0[5],zero,zero,zero,xmm0[6],zero,zero,zero,xmm0[7],zero,zero,zero,xmm0[8],zero,zero,zero,xmm0[9],zero,zero,zero,xmm0[10],zero,zero,zero,xmm0[11],zero,zero,zero,xmm0[12],zero,zero,zero,xmm0[13],zero,zero,zero,xmm0[14],zero,zero,zero,xmm0[15],zero,zero,zero
124 ; KNL-NEXT:    vpslld $31, %zmm0, %zmm0
125 ; KNL-NEXT:    vpsrad $31, %zmm0, %zmm0
126 ; KNL-NEXT:    popq %rax
127 ; KNL-NEXT:    retq
129 ; SKX-LABEL: test6:
130 ; SKX:       ## %bb.0:
131 ; SKX-NEXT:    pushq %rax
132 ; SKX-NEXT:    .cfi_def_cfa_offset 16
133 ; SKX-NEXT:    vpcmpgtd %zmm1, %zmm0, %k0
134 ; SKX-NEXT:    vpmovm2b %k0, %xmm0
135 ; SKX-NEXT:    vzeroupper
136 ; SKX-NEXT:    callq _func16xi1
137 ; SKX-NEXT:    vpmovzxbd {{.*#+}} zmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero,xmm0[4],zero,zero,zero,xmm0[5],zero,zero,zero,xmm0[6],zero,zero,zero,xmm0[7],zero,zero,zero,xmm0[8],zero,zero,zero,xmm0[9],zero,zero,zero,xmm0[10],zero,zero,zero,xmm0[11],zero,zero,zero,xmm0[12],zero,zero,zero,xmm0[13],zero,zero,zero,xmm0[14],zero,zero,zero,xmm0[15],zero,zero,zero
138 ; SKX-NEXT:    vpslld $31, %zmm0, %zmm0
139 ; SKX-NEXT:    vpsrad $31, %zmm0, %zmm0
140 ; SKX-NEXT:    popq %rax
141 ; SKX-NEXT:    retq
143 ; KNL_X32-LABEL: test6:
144 ; KNL_X32:       ## %bb.0:
145 ; KNL_X32-NEXT:    subl $12, %esp
146 ; KNL_X32-NEXT:    .cfi_def_cfa_offset 16
147 ; KNL_X32-NEXT:    vpcmpgtd %zmm1, %zmm0, %k1
148 ; KNL_X32-NEXT:    vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
149 ; KNL_X32-NEXT:    vpmovdb %zmm0, %xmm0
150 ; KNL_X32-NEXT:    calll _func16xi1
151 ; KNL_X32-NEXT:    vpmovzxbd {{.*#+}} zmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero,xmm0[4],zero,zero,zero,xmm0[5],zero,zero,zero,xmm0[6],zero,zero,zero,xmm0[7],zero,zero,zero,xmm0[8],zero,zero,zero,xmm0[9],zero,zero,zero,xmm0[10],zero,zero,zero,xmm0[11],zero,zero,zero,xmm0[12],zero,zero,zero,xmm0[13],zero,zero,zero,xmm0[14],zero,zero,zero,xmm0[15],zero,zero,zero
152 ; KNL_X32-NEXT:    vpslld $31, %zmm0, %zmm0
153 ; KNL_X32-NEXT:    vpsrad $31, %zmm0, %zmm0
154 ; KNL_X32-NEXT:    addl $12, %esp
155 ; KNL_X32-NEXT:    retl
156   %cmpRes = icmp sgt <16 x i32>%a, %b
157   %resi = call <16 x i1> @func16xi1(<16 x i1> %cmpRes)
158   %res = sext <16 x i1>%resi to <16 x i32>
159   ret <16 x i32> %res
162 declare <4 x i1> @func4xi1(<4 x i1> %a)
164 define <4 x i32> @test7(<4 x i32>%a, <4 x i32>%b) {
165 ; ALL_X64-LABEL: test7:
166 ; ALL_X64:       ## %bb.0:
167 ; ALL_X64-NEXT:    pushq %rax
168 ; ALL_X64-NEXT:    .cfi_def_cfa_offset 16
169 ; ALL_X64-NEXT:    vpcmpgtd %xmm1, %xmm0, %xmm0
170 ; ALL_X64-NEXT:    callq _func4xi1
171 ; ALL_X64-NEXT:    vpslld $31, %xmm0, %xmm0
172 ; ALL_X64-NEXT:    vpsrad $31, %xmm0, %xmm0
173 ; ALL_X64-NEXT:    popq %rax
174 ; ALL_X64-NEXT:    retq
176 ; KNL_X32-LABEL: test7:
177 ; KNL_X32:       ## %bb.0:
178 ; KNL_X32-NEXT:    subl $12, %esp
179 ; KNL_X32-NEXT:    .cfi_def_cfa_offset 16
180 ; KNL_X32-NEXT:    vpcmpgtd %xmm1, %xmm0, %xmm0
181 ; KNL_X32-NEXT:    calll _func4xi1
182 ; KNL_X32-NEXT:    vpslld $31, %xmm0, %xmm0
183 ; KNL_X32-NEXT:    vpsrad $31, %xmm0, %xmm0
184 ; KNL_X32-NEXT:    addl $12, %esp
185 ; KNL_X32-NEXT:    retl
186   %cmpRes = icmp sgt <4 x i32>%a, %b
187   %resi = call <4 x i1> @func4xi1(<4 x i1> %cmpRes)
188   %res = sext <4 x i1>%resi to <4 x i32>
189   ret <4 x i32> %res
192 define <8 x i1> @test7a(<8 x i32>%a, <8 x i32>%b) {
193 ; KNL-LABEL: test7a:
194 ; KNL:       ## %bb.0:
195 ; KNL-NEXT:    pushq %rax
196 ; KNL-NEXT:    .cfi_def_cfa_offset 16
197 ; KNL-NEXT:    vpcmpgtd %ymm1, %ymm0, %ymm0
198 ; KNL-NEXT:    vpmovdw %zmm0, %ymm0
199 ; KNL-NEXT:    ## kill: def $xmm0 killed $xmm0 killed $ymm0
200 ; KNL-NEXT:    callq _func8xi1
201 ; KNL-NEXT:    vandps {{.*}}(%rip), %xmm0, %xmm0
202 ; KNL-NEXT:    popq %rax
203 ; KNL-NEXT:    retq
205 ; SKX-LABEL: test7a:
206 ; SKX:       ## %bb.0:
207 ; SKX-NEXT:    pushq %rax
208 ; SKX-NEXT:    .cfi_def_cfa_offset 16
209 ; SKX-NEXT:    vpcmpgtd %ymm1, %ymm0, %k0
210 ; SKX-NEXT:    vpmovm2w %k0, %xmm0
211 ; SKX-NEXT:    vzeroupper
212 ; SKX-NEXT:    callq _func8xi1
213 ; SKX-NEXT:    vpand {{.*}}(%rip), %xmm0, %xmm0
214 ; SKX-NEXT:    popq %rax
215 ; SKX-NEXT:    retq
217 ; KNL_X32-LABEL: test7a:
218 ; KNL_X32:       ## %bb.0:
219 ; KNL_X32-NEXT:    subl $12, %esp
220 ; KNL_X32-NEXT:    .cfi_def_cfa_offset 16
221 ; KNL_X32-NEXT:    vpcmpgtd %ymm1, %ymm0, %ymm0
222 ; KNL_X32-NEXT:    vpmovdw %zmm0, %ymm0
223 ; KNL_X32-NEXT:    ## kill: def $xmm0 killed $xmm0 killed $ymm0
224 ; KNL_X32-NEXT:    calll _func8xi1
225 ; KNL_X32-NEXT:    vandps LCPI7_0, %xmm0, %xmm0
226 ; KNL_X32-NEXT:    addl $12, %esp
227 ; KNL_X32-NEXT:    retl
228   %cmpRes = icmp sgt <8 x i32>%a, %b
229   %resi = call <8 x i1> @func8xi1(<8 x i1> %cmpRes)
230   %res = and <8 x i1>%resi,  <i1 true, i1 false, i1 true, i1 false, i1 true, i1 false, i1 true, i1 false>
231   ret <8 x i1> %res
234 define <16 x i8> @test8(<16 x i8> %a1, <16 x i8> %a2, i1 %cond) {
235 ; ALL_X64-LABEL: test8:
236 ; ALL_X64:       ## %bb.0:
237 ; ALL_X64-NEXT:    testb $1, %dil
238 ; ALL_X64-NEXT:    jne LBB8_2
239 ; ALL_X64-NEXT:  ## %bb.1:
240 ; ALL_X64-NEXT:    vmovaps %xmm1, %xmm0
241 ; ALL_X64-NEXT:  LBB8_2:
242 ; ALL_X64-NEXT:    retq
244 ; KNL_X32-LABEL: test8:
245 ; KNL_X32:       ## %bb.0:
246 ; KNL_X32-NEXT:    testb $1, {{[0-9]+}}(%esp)
247 ; KNL_X32-NEXT:    jne LBB8_2
248 ; KNL_X32-NEXT:  ## %bb.1:
249 ; KNL_X32-NEXT:    vmovaps %xmm1, %xmm0
250 ; KNL_X32-NEXT:  LBB8_2:
251 ; KNL_X32-NEXT:    retl
252   %res = select i1 %cond, <16 x i8> %a1, <16 x i8> %a2
253   ret <16 x i8> %res
256 define i1 @test9(double %a, double %b) {
257 ; ALL_X64-LABEL: test9:
258 ; ALL_X64:       ## %bb.0:
259 ; ALL_X64-NEXT:    vucomisd %xmm0, %xmm1
260 ; ALL_X64-NEXT:    setb %al
261 ; ALL_X64-NEXT:    retq
263 ; KNL_X32-LABEL: test9:
264 ; KNL_X32:       ## %bb.0:
265 ; KNL_X32-NEXT:    vmovsd {{.*#+}} xmm0 = mem[0],zero
266 ; KNL_X32-NEXT:    vucomisd {{[0-9]+}}(%esp), %xmm0
267 ; KNL_X32-NEXT:    setb %al
268 ; KNL_X32-NEXT:    retl
269   %c = fcmp ugt double %a, %b
270   ret i1 %c
273 define i32 @test10(i32 %a, i32 %b, i1 %cond) {
274 ; ALL_X64-LABEL: test10:
275 ; ALL_X64:       ## %bb.0:
276 ; ALL_X64-NEXT:    movl %edi, %eax
277 ; ALL_X64-NEXT:    testb $1, %dl
278 ; ALL_X64-NEXT:    cmovel %esi, %eax
279 ; ALL_X64-NEXT:    retq
281 ; KNL_X32-LABEL: test10:
282 ; KNL_X32:       ## %bb.0:
283 ; KNL_X32-NEXT:    testb $1, {{[0-9]+}}(%esp)
284 ; KNL_X32-NEXT:    leal {{[0-9]+}}(%esp), %eax
285 ; KNL_X32-NEXT:    leal {{[0-9]+}}(%esp), %ecx
286 ; KNL_X32-NEXT:    cmovnel %eax, %ecx
287 ; KNL_X32-NEXT:    movl (%ecx), %eax
288 ; KNL_X32-NEXT:    retl
289   %c = select i1 %cond, i32 %a, i32 %b
290   ret i32 %c
293 define i1 @test11(i32 %a, i32 %b) {
294 ; ALL_X64-LABEL: test11:
295 ; ALL_X64:       ## %bb.0:
296 ; ALL_X64-NEXT:    cmpl %esi, %edi
297 ; ALL_X64-NEXT:    setg %al
298 ; ALL_X64-NEXT:    retq
300 ; KNL_X32-LABEL: test11:
301 ; KNL_X32:       ## %bb.0:
302 ; KNL_X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
303 ; KNL_X32-NEXT:    cmpl {{[0-9]+}}(%esp), %eax
304 ; KNL_X32-NEXT:    setg %al
305 ; KNL_X32-NEXT:    retl
306   %c = icmp sgt i32 %a, %b
307   ret i1 %c
310 define i32 @test12(i32 %a1, i32 %a2, i32 %b1) {
311 ; ALL_X64-LABEL: test12:
312 ; ALL_X64:       ## %bb.0:
313 ; ALL_X64-NEXT:    pushq %rbp
314 ; ALL_X64-NEXT:    .cfi_def_cfa_offset 16
315 ; ALL_X64-NEXT:    pushq %r14
316 ; ALL_X64-NEXT:    .cfi_def_cfa_offset 24
317 ; ALL_X64-NEXT:    pushq %rbx
318 ; ALL_X64-NEXT:    .cfi_def_cfa_offset 32
319 ; ALL_X64-NEXT:    .cfi_offset %rbx, -32
320 ; ALL_X64-NEXT:    .cfi_offset %r14, -24
321 ; ALL_X64-NEXT:    .cfi_offset %rbp, -16
322 ; ALL_X64-NEXT:    movl %esi, %r14d
323 ; ALL_X64-NEXT:    movl %edi, %ebp
324 ; ALL_X64-NEXT:    movl %edx, %esi
325 ; ALL_X64-NEXT:    callq _test11
326 ; ALL_X64-NEXT:    movzbl %al, %ebx
327 ; ALL_X64-NEXT:    movl %ebp, %edi
328 ; ALL_X64-NEXT:    movl %r14d, %esi
329 ; ALL_X64-NEXT:    movl %ebx, %edx
330 ; ALL_X64-NEXT:    callq _test10
331 ; ALL_X64-NEXT:    xorl %ecx, %ecx
332 ; ALL_X64-NEXT:    testb $1, %bl
333 ; ALL_X64-NEXT:    cmovel %ecx, %eax
334 ; ALL_X64-NEXT:    popq %rbx
335 ; ALL_X64-NEXT:    popq %r14
336 ; ALL_X64-NEXT:    popq %rbp
337 ; ALL_X64-NEXT:    retq
339 ; KNL_X32-LABEL: test12:
340 ; KNL_X32:       ## %bb.0:
341 ; KNL_X32-NEXT:    pushl %ebx
342 ; KNL_X32-NEXT:    .cfi_def_cfa_offset 8
343 ; KNL_X32-NEXT:    pushl %edi
344 ; KNL_X32-NEXT:    .cfi_def_cfa_offset 12
345 ; KNL_X32-NEXT:    pushl %esi
346 ; KNL_X32-NEXT:    .cfi_def_cfa_offset 16
347 ; KNL_X32-NEXT:    subl $16, %esp
348 ; KNL_X32-NEXT:    .cfi_def_cfa_offset 32
349 ; KNL_X32-NEXT:    .cfi_offset %esi, -16
350 ; KNL_X32-NEXT:    .cfi_offset %edi, -12
351 ; KNL_X32-NEXT:    .cfi_offset %ebx, -8
352 ; KNL_X32-NEXT:    movl {{[0-9]+}}(%esp), %esi
353 ; KNL_X32-NEXT:    movl {{[0-9]+}}(%esp), %edi
354 ; KNL_X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
355 ; KNL_X32-NEXT:    movl %eax, {{[0-9]+}}(%esp)
356 ; KNL_X32-NEXT:    movl %edi, (%esp)
357 ; KNL_X32-NEXT:    calll _test11
358 ; KNL_X32-NEXT:    movl %eax, %ebx
359 ; KNL_X32-NEXT:    movzbl %al, %eax
360 ; KNL_X32-NEXT:    movl %eax, {{[0-9]+}}(%esp)
361 ; KNL_X32-NEXT:    movl %esi, {{[0-9]+}}(%esp)
362 ; KNL_X32-NEXT:    movl %edi, (%esp)
363 ; KNL_X32-NEXT:    calll _test10
364 ; KNL_X32-NEXT:    xorl %ecx, %ecx
365 ; KNL_X32-NEXT:    testb $1, %bl
366 ; KNL_X32-NEXT:    cmovel %ecx, %eax
367 ; KNL_X32-NEXT:    addl $16, %esp
368 ; KNL_X32-NEXT:    popl %esi
369 ; KNL_X32-NEXT:    popl %edi
370 ; KNL_X32-NEXT:    popl %ebx
371 ; KNL_X32-NEXT:    retl
372   %cond = call i1 @test11(i32 %a1, i32 %b1)
373   %res = call i32 @test10(i32 %a1, i32 %a2, i1 %cond)
374   %res1 = select i1 %cond, i32 %res, i32 0
375   ret i32 %res1
378 define <1 x i1> @test13(<1 x i1>* %foo) {
379 ; KNL-LABEL: test13:
380 ; KNL:       ## %bb.0:
381 ; KNL-NEXT:    movzbl (%rdi), %eax
382 ; KNL-NEXT:    ## kill: def $al killed $al killed $eax
383 ; KNL-NEXT:    retq
385 ; SKX-LABEL: test13:
386 ; SKX:       ## %bb.0:
387 ; SKX-NEXT:    kmovb (%rdi), %k0
388 ; SKX-NEXT:    kmovd %k0, %eax
389 ; SKX-NEXT:    ## kill: def $al killed $al killed $eax
390 ; SKX-NEXT:    retq
392 ; KNL_X32-LABEL: test13:
393 ; KNL_X32:       ## %bb.0:
394 ; KNL_X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
395 ; KNL_X32-NEXT:    movzbl (%eax), %eax
396 ; KNL_X32-NEXT:    ## kill: def $al killed $al killed $eax
397 ; KNL_X32-NEXT:    retl
398   %bar = load <1 x i1>, <1 x i1>* %foo
399   ret <1 x i1> %bar
402 define void @test14(<32 x i16>* %x) {
403 ; KNL-NEW-LABEL: test14:
404 ; KNL-NEW:       ## %bb.0:
405 ; KNL-NEW-NEXT:    pushq %rbx
406 ; KNL-NEW-NEXT:    .cfi_def_cfa_offset 16
407 ; KNL-NEW-NEXT:    .cfi_offset %rbx, -16
408 ; KNL-NEW-NEXT:    movq %rdi, %rbx
409 ; KNL-NEW-NEXT:    vmovaps (%rdi), %zmm0
410 ; KNL-NEW-NEXT:    callq _test14_callee
411 ; KNL-NEW-NEXT:    vmovaps %zmm0, (%rbx)
412 ; KNL-NEW-NEXT:    popq %rbx
413 ; KNL-NEW-NEXT:    retq
415 ; KNL-OLD-LABEL: test14:
416 ; KNL-OLD:       ## %bb.0:
417 ; KNL-OLD-NEXT:    pushq %rbx
418 ; KNL-OLD-NEXT:    .cfi_def_cfa_offset 16
419 ; KNL-OLD-NEXT:    .cfi_offset %rbx, -16
420 ; KNL-OLD-NEXT:    movq %rdi, %rbx
421 ; KNL-OLD-NEXT:    vmovaps (%rdi), %ymm0
422 ; KNL-OLD-NEXT:    vmovaps 32(%rdi), %ymm1
423 ; KNL-OLD-NEXT:    callq _test14_callee
424 ; KNL-OLD-NEXT:    vmovaps %ymm1, 32(%rbx)
425 ; KNL-OLD-NEXT:    vmovaps %ymm0, (%rbx)
426 ; KNL-OLD-NEXT:    popq %rbx
427 ; KNL-OLD-NEXT:    retq
429 ; SKX-LABEL: test14:
430 ; SKX:       ## %bb.0:
431 ; SKX-NEXT:    pushq %rbx
432 ; SKX-NEXT:    .cfi_def_cfa_offset 16
433 ; SKX-NEXT:    .cfi_offset %rbx, -16
434 ; SKX-NEXT:    movq %rdi, %rbx
435 ; SKX-NEXT:    vmovaps (%rdi), %zmm0
436 ; SKX-NEXT:    callq _test14_callee
437 ; SKX-NEXT:    vmovaps %zmm0, (%rbx)
438 ; SKX-NEXT:    popq %rbx
439 ; SKX-NEXT:    vzeroupper
440 ; SKX-NEXT:    retq
442 ; KNL_X32-LABEL: test14:
443 ; KNL_X32:       ## %bb.0:
444 ; KNL_X32-NEXT:    pushl %esi
445 ; KNL_X32-NEXT:    .cfi_def_cfa_offset 8
446 ; KNL_X32-NEXT:    subl $8, %esp
447 ; KNL_X32-NEXT:    .cfi_def_cfa_offset 16
448 ; KNL_X32-NEXT:    .cfi_offset %esi, -8
449 ; KNL_X32-NEXT:    movl {{[0-9]+}}(%esp), %esi
450 ; KNL_X32-NEXT:    vmovaps (%esi), %zmm0
451 ; KNL_X32-NEXT:    calll _test14_callee
452 ; KNL_X32-NEXT:    vmovaps %zmm0, (%esi)
453 ; KNL_X32-NEXT:    addl $8, %esp
454 ; KNL_X32-NEXT:    popl %esi
455 ; KNL_X32-NEXT:    retl
456   %a = load <32 x i16>, <32 x i16>* %x
457   %b = call <32 x i16> @test14_callee(<32 x i16> %a)
458   store <32 x i16> %b, <32 x i16>* %x
459   ret void
461 declare <32 x i16> @test14_callee(<32 x i16>)
463 define void @test15(<64 x i8>* %x) {
464 ; KNL-NEW-LABEL: test15:
465 ; KNL-NEW:       ## %bb.0:
466 ; KNL-NEW-NEXT:    pushq %rbx
467 ; KNL-NEW-NEXT:    .cfi_def_cfa_offset 16
468 ; KNL-NEW-NEXT:    .cfi_offset %rbx, -16
469 ; KNL-NEW-NEXT:    movq %rdi, %rbx
470 ; KNL-NEW-NEXT:    vmovaps (%rdi), %zmm0
471 ; KNL-NEW-NEXT:    callq _test15_callee
472 ; KNL-NEW-NEXT:    vmovaps %zmm0, (%rbx)
473 ; KNL-NEW-NEXT:    popq %rbx
474 ; KNL-NEW-NEXT:    retq
476 ; KNL-OLD-LABEL: test15:
477 ; KNL-OLD:       ## %bb.0:
478 ; KNL-OLD-NEXT:    pushq %rbx
479 ; KNL-OLD-NEXT:    .cfi_def_cfa_offset 16
480 ; KNL-OLD-NEXT:    .cfi_offset %rbx, -16
481 ; KNL-OLD-NEXT:    movq %rdi, %rbx
482 ; KNL-OLD-NEXT:    vmovaps (%rdi), %ymm0
483 ; KNL-OLD-NEXT:    vmovaps 32(%rdi), %ymm1
484 ; KNL-OLD-NEXT:    callq _test15_callee
485 ; KNL-OLD-NEXT:    vmovaps %ymm1, 32(%rbx)
486 ; KNL-OLD-NEXT:    vmovaps %ymm0, (%rbx)
487 ; KNL-OLD-NEXT:    popq %rbx
488 ; KNL-OLD-NEXT:    retq
490 ; SKX-LABEL: test15:
491 ; SKX:       ## %bb.0:
492 ; SKX-NEXT:    pushq %rbx
493 ; SKX-NEXT:    .cfi_def_cfa_offset 16
494 ; SKX-NEXT:    .cfi_offset %rbx, -16
495 ; SKX-NEXT:    movq %rdi, %rbx
496 ; SKX-NEXT:    vmovaps (%rdi), %zmm0
497 ; SKX-NEXT:    callq _test15_callee
498 ; SKX-NEXT:    vmovaps %zmm0, (%rbx)
499 ; SKX-NEXT:    popq %rbx
500 ; SKX-NEXT:    vzeroupper
501 ; SKX-NEXT:    retq
503 ; KNL_X32-LABEL: test15:
504 ; KNL_X32:       ## %bb.0:
505 ; KNL_X32-NEXT:    pushl %esi
506 ; KNL_X32-NEXT:    .cfi_def_cfa_offset 8
507 ; KNL_X32-NEXT:    subl $8, %esp
508 ; KNL_X32-NEXT:    .cfi_def_cfa_offset 16
509 ; KNL_X32-NEXT:    .cfi_offset %esi, -8
510 ; KNL_X32-NEXT:    movl {{[0-9]+}}(%esp), %esi
511 ; KNL_X32-NEXT:    vmovaps (%esi), %zmm0
512 ; KNL_X32-NEXT:    calll _test15_callee
513 ; KNL_X32-NEXT:    vmovaps %zmm0, (%esi)
514 ; KNL_X32-NEXT:    addl $8, %esp
515 ; KNL_X32-NEXT:    popl %esi
516 ; KNL_X32-NEXT:    retl
517   %a = load <64 x i8>, <64 x i8>* %x
518   %b = call <64 x i8> @test15_callee(<64 x i8> %a)
519   store <64 x i8> %b, <64 x i8>* %x
520   ret void
522 declare <64 x i8> @test15_callee(<64 x i8>)
524 define <17 x i1> @test16(<17 x i1> %a, <17 x i1> %b) nounwind {
525 ; KNL-LABEL: test16:
526 ; KNL:       ## %bb.0:
527 ; KNL-NEXT:    pushq %rbp
528 ; KNL-NEXT:    pushq %r15
529 ; KNL-NEXT:    pushq %r14
530 ; KNL-NEXT:    pushq %r13
531 ; KNL-NEXT:    pushq %r12
532 ; KNL-NEXT:    pushq %rbx
533 ; KNL-NEXT:    movq %rdi, %rax
534 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
535 ; KNL-NEXT:    kmovw %edi, %k0
536 ; KNL-NEXT:    kshiftlw $15, %k0, %k0
537 ; KNL-NEXT:    kshiftrw $15, %k0, %k0
538 ; KNL-NEXT:    kshiftlw $2, %k0, %k2
539 ; KNL-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
540 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
541 ; KNL-NEXT:    kmovw %edi, %k1
542 ; KNL-NEXT:    kshiftlw $1, %k1, %k1
543 ; KNL-NEXT:    korw %k1, %k2, %k1
544 ; KNL-NEXT:    korw %k1, %k0, %k0
545 ; KNL-NEXT:    kshiftlw $14, %k0, %k0
546 ; KNL-NEXT:    kshiftrw $14, %k0, %k0
547 ; KNL-NEXT:    kshiftlw $3, %k0, %k2
548 ; KNL-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
549 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
550 ; KNL-NEXT:    kmovw %edi, %k1
551 ; KNL-NEXT:    kshiftlw $2, %k1, %k1
552 ; KNL-NEXT:    korw %k1, %k2, %k1
553 ; KNL-NEXT:    korw %k1, %k0, %k0
554 ; KNL-NEXT:    kshiftlw $13, %k0, %k0
555 ; KNL-NEXT:    kshiftrw $13, %k0, %k0
556 ; KNL-NEXT:    kshiftlw $4, %k0, %k2
557 ; KNL-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
558 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
559 ; KNL-NEXT:    kmovw %edi, %k1
560 ; KNL-NEXT:    kshiftlw $3, %k1, %k1
561 ; KNL-NEXT:    korw %k1, %k2, %k1
562 ; KNL-NEXT:    korw %k1, %k0, %k0
563 ; KNL-NEXT:    kshiftlw $12, %k0, %k0
564 ; KNL-NEXT:    kshiftrw $12, %k0, %k0
565 ; KNL-NEXT:    kshiftlw $5, %k0, %k2
566 ; KNL-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
567 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
568 ; KNL-NEXT:    kmovw %edi, %k1
569 ; KNL-NEXT:    kshiftlw $4, %k1, %k1
570 ; KNL-NEXT:    korw %k1, %k2, %k1
571 ; KNL-NEXT:    korw %k1, %k0, %k0
572 ; KNL-NEXT:    kshiftlw $11, %k0, %k0
573 ; KNL-NEXT:    kshiftrw $11, %k0, %k0
574 ; KNL-NEXT:    kshiftlw $6, %k0, %k2
575 ; KNL-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
576 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
577 ; KNL-NEXT:    kmovw %edi, %k1
578 ; KNL-NEXT:    kshiftlw $5, %k1, %k1
579 ; KNL-NEXT:    korw %k1, %k2, %k1
580 ; KNL-NEXT:    korw %k1, %k0, %k0
581 ; KNL-NEXT:    kshiftlw $10, %k0, %k0
582 ; KNL-NEXT:    kshiftrw $10, %k0, %k0
583 ; KNL-NEXT:    kshiftlw $7, %k0, %k2
584 ; KNL-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
585 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
586 ; KNL-NEXT:    kmovw %edi, %k1
587 ; KNL-NEXT:    kshiftlw $6, %k1, %k1
588 ; KNL-NEXT:    korw %k1, %k2, %k1
589 ; KNL-NEXT:    korw %k1, %k0, %k0
590 ; KNL-NEXT:    kshiftlw $9, %k0, %k0
591 ; KNL-NEXT:    kshiftrw $9, %k0, %k0
592 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
593 ; KNL-NEXT:    kmovw %edi, %k1
594 ; KNL-NEXT:    kshiftlw $7, %k1, %k1
595 ; KNL-NEXT:    kshiftlw $8, %k0, %k2
596 ; KNL-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
597 ; KNL-NEXT:    korw %k1, %k2, %k1
598 ; KNL-NEXT:    korw %k1, %k0, %k0
599 ; KNL-NEXT:    kshiftlw $8, %k0, %k0
600 ; KNL-NEXT:    kshiftrw $8, %k0, %k0
601 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
602 ; KNL-NEXT:    kmovw %edi, %k1
603 ; KNL-NEXT:    kshiftlw $8, %k1, %k1
604 ; KNL-NEXT:    kshiftlw $9, %k0, %k2
605 ; KNL-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
606 ; KNL-NEXT:    korw %k1, %k2, %k1
607 ; KNL-NEXT:    korw %k1, %k0, %k0
608 ; KNL-NEXT:    kshiftlw $7, %k0, %k0
609 ; KNL-NEXT:    kshiftrw $7, %k0, %k0
610 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
611 ; KNL-NEXT:    kmovw %edi, %k1
612 ; KNL-NEXT:    kshiftlw $9, %k1, %k1
613 ; KNL-NEXT:    kshiftlw $10, %k0, %k2
614 ; KNL-NEXT:    kmovw %k2, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
615 ; KNL-NEXT:    korw %k1, %k2, %k1
616 ; KNL-NEXT:    korw %k1, %k0, %k0
617 ; KNL-NEXT:    kshiftlw $6, %k0, %k0
618 ; KNL-NEXT:    kshiftrw $6, %k0, %k0
619 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
620 ; KNL-NEXT:    kmovw %edi, %k1
621 ; KNL-NEXT:    kshiftlw $10, %k1, %k1
622 ; KNL-NEXT:    kshiftlw $11, %k0, %k6
623 ; KNL-NEXT:    korw %k1, %k6, %k1
624 ; KNL-NEXT:    korw %k1, %k0, %k0
625 ; KNL-NEXT:    kshiftlw $5, %k0, %k0
626 ; KNL-NEXT:    kshiftrw $5, %k0, %k0
627 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
628 ; KNL-NEXT:    kmovw %edi, %k1
629 ; KNL-NEXT:    kshiftlw $11, %k1, %k1
630 ; KNL-NEXT:    kshiftlw $12, %k0, %k5
631 ; KNL-NEXT:    korw %k1, %k5, %k1
632 ; KNL-NEXT:    korw %k1, %k0, %k0
633 ; KNL-NEXT:    kshiftlw $4, %k0, %k0
634 ; KNL-NEXT:    kshiftrw $4, %k0, %k0
635 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
636 ; KNL-NEXT:    kmovw %edi, %k1
637 ; KNL-NEXT:    kshiftlw $12, %k1, %k1
638 ; KNL-NEXT:    kshiftlw $13, %k0, %k4
639 ; KNL-NEXT:    korw %k1, %k4, %k1
640 ; KNL-NEXT:    korw %k1, %k0, %k0
641 ; KNL-NEXT:    kshiftlw $3, %k0, %k0
642 ; KNL-NEXT:    kshiftrw $3, %k0, %k2
643 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
644 ; KNL-NEXT:    kmovw %edi, %k1
645 ; KNL-NEXT:    kshiftlw $13, %k1, %k0
646 ; KNL-NEXT:    kshiftlw $14, %k0, %k3
647 ; KNL-NEXT:    korw %k0, %k3, %k0
648 ; KNL-NEXT:    korw %k0, %k2, %k0
649 ; KNL-NEXT:    kshiftlw $2, %k0, %k0
650 ; KNL-NEXT:    kshiftrw $2, %k0, %k2
651 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
652 ; KNL-NEXT:    kmovw %edi, %k0
653 ; KNL-NEXT:    kshiftlw $14, %k0, %k0
654 ; KNL-NEXT:    kshiftlw $15, %k0, %k1
655 ; KNL-NEXT:    korw %k0, %k1, %k0
656 ; KNL-NEXT:    korw %k0, %k2, %k0
657 ; KNL-NEXT:    kshiftlw $1, %k0, %k0
658 ; KNL-NEXT:    kshiftrw $1, %k0, %k0
659 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
660 ; KNL-NEXT:    kmovw %edi, %k2
661 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
662 ; KNL-NEXT:    korw %k2, %k0, %k0
663 ; KNL-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
664 ; KNL-NEXT:    kmovw %edx, %k0
665 ; KNL-NEXT:    kshiftlw $1, %k0, %k0
666 ; KNL-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 ## 2-byte Reload
667 ; KNL-NEXT:    korw %k0, %k2, %k0
668 ; KNL-NEXT:    kmovw %esi, %k2
669 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
670 ; KNL-NEXT:    kshiftrw $15, %k2, %k2
671 ; KNL-NEXT:    korw %k0, %k2, %k0
672 ; KNL-NEXT:    kmovw %ecx, %k2
673 ; KNL-NEXT:    kshiftlw $2, %k2, %k2
674 ; KNL-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 ## 2-byte Reload
675 ; KNL-NEXT:    korw %k2, %k7, %k2
676 ; KNL-NEXT:    kshiftlw $14, %k0, %k0
677 ; KNL-NEXT:    kshiftrw $14, %k0, %k0
678 ; KNL-NEXT:    korw %k2, %k0, %k0
679 ; KNL-NEXT:    kmovw %r8d, %k2
680 ; KNL-NEXT:    kshiftlw $3, %k2, %k2
681 ; KNL-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 ## 2-byte Reload
682 ; KNL-NEXT:    korw %k2, %k7, %k2
683 ; KNL-NEXT:    kshiftlw $13, %k0, %k0
684 ; KNL-NEXT:    kshiftrw $13, %k0, %k0
685 ; KNL-NEXT:    korw %k2, %k0, %k0
686 ; KNL-NEXT:    kmovw %r9d, %k2
687 ; KNL-NEXT:    kshiftlw $4, %k2, %k2
688 ; KNL-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 ## 2-byte Reload
689 ; KNL-NEXT:    korw %k2, %k7, %k2
690 ; KNL-NEXT:    kshiftlw $12, %k0, %k0
691 ; KNL-NEXT:    kshiftrw $12, %k0, %k0
692 ; KNL-NEXT:    korw %k2, %k0, %k0
693 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
694 ; KNL-NEXT:    kmovw %ecx, %k2
695 ; KNL-NEXT:    kshiftlw $5, %k2, %k2
696 ; KNL-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 ## 2-byte Reload
697 ; KNL-NEXT:    korw %k2, %k7, %k2
698 ; KNL-NEXT:    kshiftlw $11, %k0, %k0
699 ; KNL-NEXT:    kshiftrw $11, %k0, %k0
700 ; KNL-NEXT:    korw %k2, %k0, %k0
701 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
702 ; KNL-NEXT:    kmovw %ecx, %k2
703 ; KNL-NEXT:    kshiftlw $6, %k2, %k2
704 ; KNL-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 ## 2-byte Reload
705 ; KNL-NEXT:    korw %k2, %k7, %k2
706 ; KNL-NEXT:    kshiftlw $10, %k0, %k0
707 ; KNL-NEXT:    kshiftrw $10, %k0, %k0
708 ; KNL-NEXT:    korw %k2, %k0, %k0
709 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
710 ; KNL-NEXT:    kmovw %ecx, %k2
711 ; KNL-NEXT:    kshiftlw $7, %k2, %k2
712 ; KNL-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 ## 2-byte Reload
713 ; KNL-NEXT:    korw %k2, %k7, %k2
714 ; KNL-NEXT:    kshiftlw $9, %k0, %k0
715 ; KNL-NEXT:    kshiftrw $9, %k0, %k0
716 ; KNL-NEXT:    korw %k2, %k0, %k0
717 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
718 ; KNL-NEXT:    kmovw %ecx, %k2
719 ; KNL-NEXT:    kshiftlw $8, %k2, %k2
720 ; KNL-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 ## 2-byte Reload
721 ; KNL-NEXT:    korw %k2, %k7, %k2
722 ; KNL-NEXT:    kshiftlw $8, %k0, %k0
723 ; KNL-NEXT:    kshiftrw $8, %k0, %k0
724 ; KNL-NEXT:    korw %k2, %k0, %k0
725 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
726 ; KNL-NEXT:    kmovw %ecx, %k2
727 ; KNL-NEXT:    kshiftlw $9, %k2, %k2
728 ; KNL-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k7 ## 2-byte Reload
729 ; KNL-NEXT:    korw %k2, %k7, %k2
730 ; KNL-NEXT:    kshiftlw $7, %k0, %k0
731 ; KNL-NEXT:    kshiftrw $7, %k0, %k0
732 ; KNL-NEXT:    korw %k2, %k0, %k0
733 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
734 ; KNL-NEXT:    kmovw %ecx, %k2
735 ; KNL-NEXT:    kshiftlw $10, %k2, %k2
736 ; KNL-NEXT:    korw %k2, %k6, %k2
737 ; KNL-NEXT:    kshiftlw $6, %k0, %k0
738 ; KNL-NEXT:    kshiftrw $6, %k0, %k0
739 ; KNL-NEXT:    korw %k2, %k0, %k0
740 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
741 ; KNL-NEXT:    kmovw %ecx, %k2
742 ; KNL-NEXT:    kshiftlw $11, %k2, %k2
743 ; KNL-NEXT:    korw %k2, %k5, %k2
744 ; KNL-NEXT:    xorl %ecx, %ecx
745 ; KNL-NEXT:    testb $1, {{[0-9]+}}(%rsp)
746 ; KNL-NEXT:    movl $65535, %edx ## imm = 0xFFFF
747 ; KNL-NEXT:    movl $0, %esi
748 ; KNL-NEXT:    cmovnel %edx, %esi
749 ; KNL-NEXT:    kshiftlw $5, %k0, %k0
750 ; KNL-NEXT:    kshiftrw $5, %k0, %k0
751 ; KNL-NEXT:    korw %k2, %k0, %k0
752 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
753 ; KNL-NEXT:    kmovw %edi, %k2
754 ; KNL-NEXT:    kshiftlw $12, %k2, %k2
755 ; KNL-NEXT:    korw %k2, %k4, %k2
756 ; KNL-NEXT:    testb $1, {{[0-9]+}}(%rsp)
757 ; KNL-NEXT:    kshiftlw $4, %k0, %k0
758 ; KNL-NEXT:    kshiftrw $4, %k0, %k0
759 ; KNL-NEXT:    korw %k2, %k0, %k0
760 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
761 ; KNL-NEXT:    kmovw %edi, %k2
762 ; KNL-NEXT:    kshiftlw $13, %k2, %k2
763 ; KNL-NEXT:    korw %k2, %k3, %k2
764 ; KNL-NEXT:    cmovnel %edx, %ecx
765 ; KNL-NEXT:    kshiftlw $3, %k0, %k0
766 ; KNL-NEXT:    kshiftrw $3, %k0, %k0
767 ; KNL-NEXT:    korw %k2, %k0, %k0
768 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dl
769 ; KNL-NEXT:    kmovw %edx, %k2
770 ; KNL-NEXT:    kshiftlw $14, %k2, %k2
771 ; KNL-NEXT:    korw %k2, %k1, %k1
772 ; KNL-NEXT:    kshiftlw $2, %k0, %k0
773 ; KNL-NEXT:    kshiftrw $2, %k0, %k0
774 ; KNL-NEXT:    korw %k1, %k0, %k0
775 ; KNL-NEXT:    kshiftlw $1, %k0, %k0
776 ; KNL-NEXT:    kshiftrw $1, %k0, %k0
777 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dl
778 ; KNL-NEXT:    kmovw %edx, %k1
779 ; KNL-NEXT:    kshiftlw $15, %k1, %k1
780 ; KNL-NEXT:    korw %k1, %k0, %k0
781 ; KNL-NEXT:    kmovw %esi, %k1
782 ; KNL-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k2 ## 2-byte Reload
783 ; KNL-NEXT:    kandw %k2, %k0, %k0
784 ; KNL-NEXT:    kmovw %ecx, %k2
785 ; KNL-NEXT:    kandw %k1, %k2, %k1
786 ; KNL-NEXT:    kmovw %k1, %r8d
787 ; KNL-NEXT:    kshiftrw $1, %k0, %k1
788 ; KNL-NEXT:    kmovw %k1, %r9d
789 ; KNL-NEXT:    kshiftrw $2, %k0, %k1
790 ; KNL-NEXT:    kmovw %k1, %r10d
791 ; KNL-NEXT:    kshiftrw $3, %k0, %k1
792 ; KNL-NEXT:    kmovw %k1, %r11d
793 ; KNL-NEXT:    kshiftrw $4, %k0, %k1
794 ; KNL-NEXT:    kmovw %k1, %r12d
795 ; KNL-NEXT:    kshiftrw $5, %k0, %k1
796 ; KNL-NEXT:    kmovw %k1, %r15d
797 ; KNL-NEXT:    kshiftrw $6, %k0, %k1
798 ; KNL-NEXT:    kmovw %k1, %r14d
799 ; KNL-NEXT:    kshiftrw $7, %k0, %k1
800 ; KNL-NEXT:    kmovw %k1, %r13d
801 ; KNL-NEXT:    kshiftrw $8, %k0, %k1
802 ; KNL-NEXT:    kmovw %k1, %ebx
803 ; KNL-NEXT:    kshiftrw $9, %k0, %k1
804 ; KNL-NEXT:    kmovw %k1, %esi
805 ; KNL-NEXT:    kshiftrw $10, %k0, %k1
806 ; KNL-NEXT:    kmovw %k1, %ebp
807 ; KNL-NEXT:    kshiftrw $11, %k0, %k1
808 ; KNL-NEXT:    kmovw %k1, %ecx
809 ; KNL-NEXT:    kshiftrw $12, %k0, %k1
810 ; KNL-NEXT:    kmovw %k1, %edx
811 ; KNL-NEXT:    kshiftrw $13, %k0, %k1
812 ; KNL-NEXT:    kmovw %k1, %edi
813 ; KNL-NEXT:    kshiftrw $14, %k0, %k1
814 ; KNL-NEXT:    andl $1, %r8d
815 ; KNL-NEXT:    movb %r8b, 2(%rax)
816 ; KNL-NEXT:    kmovw %k0, %r8d
817 ; KNL-NEXT:    andl $1, %r8d
818 ; KNL-NEXT:    andl $1, %r9d
819 ; KNL-NEXT:    leal (%r8,%r9,2), %r8d
820 ; KNL-NEXT:    kmovw %k1, %r9d
821 ; KNL-NEXT:    kshiftrw $15, %k0, %k0
822 ; KNL-NEXT:    andl $1, %r10d
823 ; KNL-NEXT:    leal (%r8,%r10,4), %r8d
824 ; KNL-NEXT:    kmovw %k0, %r10d
825 ; KNL-NEXT:    andl $1, %r11d
826 ; KNL-NEXT:    leal (%r8,%r11,8), %r8d
827 ; KNL-NEXT:    andl $1, %r12d
828 ; KNL-NEXT:    shll $4, %r12d
829 ; KNL-NEXT:    orl %r8d, %r12d
830 ; KNL-NEXT:    andl $1, %r15d
831 ; KNL-NEXT:    shll $5, %r15d
832 ; KNL-NEXT:    orl %r12d, %r15d
833 ; KNL-NEXT:    andl $1, %r14d
834 ; KNL-NEXT:    shll $6, %r14d
835 ; KNL-NEXT:    andl $1, %r13d
836 ; KNL-NEXT:    shll $7, %r13d
837 ; KNL-NEXT:    orl %r14d, %r13d
838 ; KNL-NEXT:    andl $1, %ebx
839 ; KNL-NEXT:    shll $8, %ebx
840 ; KNL-NEXT:    orl %r13d, %ebx
841 ; KNL-NEXT:    andl $1, %esi
842 ; KNL-NEXT:    shll $9, %esi
843 ; KNL-NEXT:    orl %ebx, %esi
844 ; KNL-NEXT:    andl $1, %ebp
845 ; KNL-NEXT:    shll $10, %ebp
846 ; KNL-NEXT:    orl %esi, %ebp
847 ; KNL-NEXT:    orl %r15d, %ebp
848 ; KNL-NEXT:    andl $1, %ecx
849 ; KNL-NEXT:    shll $11, %ecx
850 ; KNL-NEXT:    andl $1, %edx
851 ; KNL-NEXT:    shll $12, %edx
852 ; KNL-NEXT:    orl %ecx, %edx
853 ; KNL-NEXT:    andl $1, %edi
854 ; KNL-NEXT:    shll $13, %edi
855 ; KNL-NEXT:    orl %edx, %edi
856 ; KNL-NEXT:    andl $1, %r9d
857 ; KNL-NEXT:    shll $14, %r9d
858 ; KNL-NEXT:    orl %edi, %r9d
859 ; KNL-NEXT:    andl $1, %r10d
860 ; KNL-NEXT:    shll $15, %r10d
861 ; KNL-NEXT:    orl %r9d, %r10d
862 ; KNL-NEXT:    orl %ebp, %r10d
863 ; KNL-NEXT:    movw %r10w, (%rax)
864 ; KNL-NEXT:    popq %rbx
865 ; KNL-NEXT:    popq %r12
866 ; KNL-NEXT:    popq %r13
867 ; KNL-NEXT:    popq %r14
868 ; KNL-NEXT:    popq %r15
869 ; KNL-NEXT:    popq %rbp
870 ; KNL-NEXT:    retq
872 ; SKX-LABEL: test16:
873 ; SKX:       ## %bb.0:
874 ; SKX-NEXT:    pushq %rbp
875 ; SKX-NEXT:    pushq %r15
876 ; SKX-NEXT:    pushq %r14
877 ; SKX-NEXT:    pushq %r13
878 ; SKX-NEXT:    pushq %r12
879 ; SKX-NEXT:    pushq %rbx
880 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k0
881 ; SKX-NEXT:    movq %rdi, %rax
882 ; SKX-NEXT:    kshiftld $31, %k0, %k0
883 ; SKX-NEXT:    kshiftrd $31, %k0, %k1
884 ; SKX-NEXT:    kshiftld $2, %k0, %k0
885 ; SKX-NEXT:    kord %k0, %k1, %k1
886 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
887 ; SKX-NEXT:    kshiftld $31, %k2, %k2
888 ; SKX-NEXT:    kshiftrd $30, %k2, %k2
889 ; SKX-NEXT:    kord %k1, %k2, %k1
890 ; SKX-NEXT:    kshiftrd $3, %k1, %k2
891 ; SKX-NEXT:    kshiftld $3, %k2, %k2
892 ; SKX-NEXT:    kshiftld $30, %k1, %k1
893 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
894 ; SKX-NEXT:    kshiftrd $30, %k1, %k1
895 ; SKX-NEXT:    kord %k2, %k1, %k1
896 ; SKX-NEXT:    kshiftld $31, %k3, %k2
897 ; SKX-NEXT:    kshiftrd $29, %k2, %k2
898 ; SKX-NEXT:    kord %k1, %k2, %k1
899 ; SKX-NEXT:    kshiftrd $4, %k1, %k2
900 ; SKX-NEXT:    kshiftld $4, %k2, %k2
901 ; SKX-NEXT:    kshiftld $29, %k1, %k1
902 ; SKX-NEXT:    kshiftrd $29, %k1, %k1
903 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
904 ; SKX-NEXT:    kord %k2, %k1, %k1
905 ; SKX-NEXT:    kshiftld $31, %k3, %k2
906 ; SKX-NEXT:    kshiftrd $28, %k2, %k2
907 ; SKX-NEXT:    kord %k1, %k2, %k1
908 ; SKX-NEXT:    kshiftrd $5, %k1, %k2
909 ; SKX-NEXT:    kshiftld $5, %k2, %k2
910 ; SKX-NEXT:    kshiftld $28, %k1, %k1
911 ; SKX-NEXT:    kshiftrd $28, %k1, %k1
912 ; SKX-NEXT:    kord %k2, %k1, %k1
913 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
914 ; SKX-NEXT:    kshiftld $31, %k2, %k2
915 ; SKX-NEXT:    kshiftrd $27, %k2, %k2
916 ; SKX-NEXT:    kord %k1, %k2, %k1
917 ; SKX-NEXT:    kshiftrd $6, %k1, %k2
918 ; SKX-NEXT:    kshiftld $6, %k2, %k2
919 ; SKX-NEXT:    kshiftld $27, %k1, %k1
920 ; SKX-NEXT:    kshiftrd $27, %k1, %k1
921 ; SKX-NEXT:    kord %k2, %k1, %k1
922 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
923 ; SKX-NEXT:    kshiftld $31, %k2, %k2
924 ; SKX-NEXT:    kshiftrd $26, %k2, %k2
925 ; SKX-NEXT:    kord %k1, %k2, %k1
926 ; SKX-NEXT:    kshiftrd $7, %k1, %k2
927 ; SKX-NEXT:    kshiftld $7, %k2, %k2
928 ; SKX-NEXT:    kshiftld $26, %k1, %k1
929 ; SKX-NEXT:    kshiftrd $26, %k1, %k1
930 ; SKX-NEXT:    kord %k2, %k1, %k1
931 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
932 ; SKX-NEXT:    kshiftld $31, %k2, %k2
933 ; SKX-NEXT:    kshiftrd $25, %k2, %k2
934 ; SKX-NEXT:    kord %k1, %k2, %k1
935 ; SKX-NEXT:    kshiftrd $8, %k1, %k2
936 ; SKX-NEXT:    kshiftld $8, %k2, %k2
937 ; SKX-NEXT:    kshiftld $25, %k1, %k1
938 ; SKX-NEXT:    kshiftrd $25, %k1, %k1
939 ; SKX-NEXT:    kord %k2, %k1, %k1
940 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
941 ; SKX-NEXT:    kshiftld $31, %k2, %k2
942 ; SKX-NEXT:    kshiftrd $24, %k2, %k2
943 ; SKX-NEXT:    kord %k1, %k2, %k1
944 ; SKX-NEXT:    kshiftrd $9, %k1, %k2
945 ; SKX-NEXT:    kshiftld $9, %k2, %k2
946 ; SKX-NEXT:    kshiftld $24, %k1, %k1
947 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
948 ; SKX-NEXT:    kshiftrd $24, %k1, %k1
949 ; SKX-NEXT:    kord %k2, %k1, %k1
950 ; SKX-NEXT:    kshiftld $31, %k3, %k2
951 ; SKX-NEXT:    kshiftrd $23, %k2, %k2
952 ; SKX-NEXT:    kord %k1, %k2, %k1
953 ; SKX-NEXT:    kshiftrd $10, %k1, %k2
954 ; SKX-NEXT:    kshiftld $10, %k2, %k2
955 ; SKX-NEXT:    kshiftld $23, %k1, %k1
956 ; SKX-NEXT:    kshiftrd $23, %k1, %k1
957 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
958 ; SKX-NEXT:    kord %k2, %k1, %k1
959 ; SKX-NEXT:    kshiftld $31, %k3, %k2
960 ; SKX-NEXT:    kshiftrd $22, %k2, %k2
961 ; SKX-NEXT:    kord %k1, %k2, %k1
962 ; SKX-NEXT:    kshiftrd $11, %k1, %k2
963 ; SKX-NEXT:    kshiftld $11, %k2, %k2
964 ; SKX-NEXT:    kshiftld $22, %k1, %k1
965 ; SKX-NEXT:    kshiftrd $22, %k1, %k1
966 ; SKX-NEXT:    kord %k2, %k1, %k1
967 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
968 ; SKX-NEXT:    kshiftld $31, %k2, %k2
969 ; SKX-NEXT:    kshiftrd $21, %k2, %k2
970 ; SKX-NEXT:    kord %k1, %k2, %k1
971 ; SKX-NEXT:    kshiftrd $12, %k1, %k2
972 ; SKX-NEXT:    kshiftld $12, %k2, %k2
973 ; SKX-NEXT:    kshiftld $21, %k1, %k1
974 ; SKX-NEXT:    kshiftrd $21, %k1, %k1
975 ; SKX-NEXT:    kord %k2, %k1, %k1
976 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
977 ; SKX-NEXT:    kshiftld $31, %k2, %k2
978 ; SKX-NEXT:    kshiftrd $20, %k2, %k2
979 ; SKX-NEXT:    kord %k1, %k2, %k1
980 ; SKX-NEXT:    kshiftrd $13, %k1, %k2
981 ; SKX-NEXT:    kshiftld $13, %k2, %k2
982 ; SKX-NEXT:    kshiftld $20, %k1, %k1
983 ; SKX-NEXT:    kshiftrd $20, %k1, %k1
984 ; SKX-NEXT:    kord %k2, %k1, %k1
985 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
986 ; SKX-NEXT:    kshiftld $31, %k2, %k2
987 ; SKX-NEXT:    kshiftrd $19, %k2, %k2
988 ; SKX-NEXT:    kord %k1, %k2, %k1
989 ; SKX-NEXT:    kshiftrd $14, %k1, %k2
990 ; SKX-NEXT:    kshiftld $14, %k2, %k2
991 ; SKX-NEXT:    kshiftld $19, %k1, %k1
992 ; SKX-NEXT:    kshiftrd $19, %k1, %k1
993 ; SKX-NEXT:    kord %k2, %k1, %k1
994 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
995 ; SKX-NEXT:    kshiftld $31, %k2, %k2
996 ; SKX-NEXT:    kshiftrd $18, %k2, %k2
997 ; SKX-NEXT:    kord %k1, %k2, %k1
998 ; SKX-NEXT:    kshiftrd $15, %k1, %k2
999 ; SKX-NEXT:    kshiftld $15, %k2, %k2
1000 ; SKX-NEXT:    kshiftld $18, %k1, %k1
1001 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
1002 ; SKX-NEXT:    kshiftrd $18, %k1, %k1
1003 ; SKX-NEXT:    kord %k2, %k1, %k1
1004 ; SKX-NEXT:    kshiftld $31, %k3, %k2
1005 ; SKX-NEXT:    kshiftrd $17, %k2, %k2
1006 ; SKX-NEXT:    kord %k1, %k2, %k1
1007 ; SKX-NEXT:    kshiftrd $16, %k1, %k2
1008 ; SKX-NEXT:    kshiftld $16, %k2, %k2
1009 ; SKX-NEXT:    kshiftld $17, %k1, %k1
1010 ; SKX-NEXT:    kshiftrd $17, %k1, %k1
1011 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
1012 ; SKX-NEXT:    kord %k2, %k1, %k1
1013 ; SKX-NEXT:    kshiftld $31, %k3, %k2
1014 ; SKX-NEXT:    kshiftrd $16, %k2, %k2
1015 ; SKX-NEXT:    kord %k1, %k2, %k1
1016 ; SKX-NEXT:    kshiftrd $17, %k1, %k2
1017 ; SKX-NEXT:    kshiftld $17, %k2, %k2
1018 ; SKX-NEXT:    kshiftld $16, %k1, %k1
1019 ; SKX-NEXT:    kshiftrd $16, %k1, %k1
1020 ; SKX-NEXT:    kord %k2, %k1, %k1
1021 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
1022 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1023 ; SKX-NEXT:    kshiftrd $15, %k2, %k2
1024 ; SKX-NEXT:    kord %k1, %k2, %k1
1025 ; SKX-NEXT:    kmovd %esi, %k2
1026 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1027 ; SKX-NEXT:    kshiftrd $31, %k2, %k2
1028 ; SKX-NEXT:    kord %k0, %k2, %k0
1029 ; SKX-NEXT:    kmovd %edx, %k2
1030 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1031 ; SKX-NEXT:    kshiftrd $30, %k2, %k2
1032 ; SKX-NEXT:    kord %k0, %k2, %k0
1033 ; SKX-NEXT:    kshiftrd $3, %k0, %k2
1034 ; SKX-NEXT:    kshiftld $3, %k2, %k2
1035 ; SKX-NEXT:    kshiftld $30, %k0, %k0
1036 ; SKX-NEXT:    kshiftrd $30, %k0, %k0
1037 ; SKX-NEXT:    kord %k2, %k0, %k0
1038 ; SKX-NEXT:    kmovd %ecx, %k2
1039 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1040 ; SKX-NEXT:    kshiftrd $29, %k2, %k2
1041 ; SKX-NEXT:    kord %k0, %k2, %k0
1042 ; SKX-NEXT:    kshiftrd $4, %k0, %k2
1043 ; SKX-NEXT:    kshiftld $4, %k2, %k2
1044 ; SKX-NEXT:    kshiftld $29, %k0, %k0
1045 ; SKX-NEXT:    kshiftrd $29, %k0, %k0
1046 ; SKX-NEXT:    kord %k2, %k0, %k0
1047 ; SKX-NEXT:    kmovd %r8d, %k2
1048 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1049 ; SKX-NEXT:    kshiftrd $28, %k2, %k2
1050 ; SKX-NEXT:    kord %k0, %k2, %k0
1051 ; SKX-NEXT:    kshiftrd $5, %k0, %k2
1052 ; SKX-NEXT:    kshiftld $5, %k2, %k2
1053 ; SKX-NEXT:    kshiftld $28, %k0, %k0
1054 ; SKX-NEXT:    kshiftrd $28, %k0, %k0
1055 ; SKX-NEXT:    kord %k2, %k0, %k0
1056 ; SKX-NEXT:    kmovd %r9d, %k2
1057 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1058 ; SKX-NEXT:    kshiftrd $27, %k2, %k2
1059 ; SKX-NEXT:    kord %k0, %k2, %k0
1060 ; SKX-NEXT:    kshiftrd $6, %k0, %k2
1061 ; SKX-NEXT:    kshiftld $6, %k2, %k2
1062 ; SKX-NEXT:    kshiftld $27, %k0, %k0
1063 ; SKX-NEXT:    kshiftrd $27, %k0, %k0
1064 ; SKX-NEXT:    kord %k2, %k0, %k0
1065 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
1066 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1067 ; SKX-NEXT:    kshiftrd $26, %k2, %k2
1068 ; SKX-NEXT:    kord %k0, %k2, %k0
1069 ; SKX-NEXT:    kshiftrd $7, %k0, %k2
1070 ; SKX-NEXT:    kshiftld $7, %k2, %k2
1071 ; SKX-NEXT:    kshiftld $26, %k0, %k0
1072 ; SKX-NEXT:    kshiftrd $26, %k0, %k0
1073 ; SKX-NEXT:    kord %k2, %k0, %k0
1074 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
1075 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1076 ; SKX-NEXT:    kshiftrd $25, %k2, %k2
1077 ; SKX-NEXT:    kord %k0, %k2, %k0
1078 ; SKX-NEXT:    kshiftrd $8, %k0, %k2
1079 ; SKX-NEXT:    kshiftld $8, %k2, %k2
1080 ; SKX-NEXT:    kshiftld $25, %k0, %k0
1081 ; SKX-NEXT:    kshiftrd $25, %k0, %k0
1082 ; SKX-NEXT:    kord %k2, %k0, %k0
1083 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
1084 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1085 ; SKX-NEXT:    kshiftrd $24, %k2, %k2
1086 ; SKX-NEXT:    kord %k0, %k2, %k0
1087 ; SKX-NEXT:    kshiftrd $9, %k0, %k2
1088 ; SKX-NEXT:    kshiftld $9, %k2, %k2
1089 ; SKX-NEXT:    kshiftld $24, %k0, %k0
1090 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
1091 ; SKX-NEXT:    kshiftrd $24, %k0, %k0
1092 ; SKX-NEXT:    kord %k2, %k0, %k0
1093 ; SKX-NEXT:    kshiftld $31, %k3, %k2
1094 ; SKX-NEXT:    kshiftrd $23, %k2, %k2
1095 ; SKX-NEXT:    kord %k0, %k2, %k0
1096 ; SKX-NEXT:    kshiftrd $10, %k0, %k2
1097 ; SKX-NEXT:    kshiftld $10, %k2, %k2
1098 ; SKX-NEXT:    kshiftld $23, %k0, %k0
1099 ; SKX-NEXT:    kshiftrd $23, %k0, %k0
1100 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
1101 ; SKX-NEXT:    kord %k2, %k0, %k0
1102 ; SKX-NEXT:    kshiftld $31, %k3, %k2
1103 ; SKX-NEXT:    kshiftrd $22, %k2, %k2
1104 ; SKX-NEXT:    kord %k0, %k2, %k0
1105 ; SKX-NEXT:    kshiftrd $11, %k0, %k2
1106 ; SKX-NEXT:    kshiftld $11, %k2, %k2
1107 ; SKX-NEXT:    kshiftld $22, %k0, %k0
1108 ; SKX-NEXT:    kshiftrd $22, %k0, %k0
1109 ; SKX-NEXT:    kord %k2, %k0, %k0
1110 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
1111 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1112 ; SKX-NEXT:    kshiftrd $21, %k2, %k2
1113 ; SKX-NEXT:    kord %k0, %k2, %k0
1114 ; SKX-NEXT:    kshiftrd $12, %k0, %k2
1115 ; SKX-NEXT:    kshiftld $12, %k2, %k2
1116 ; SKX-NEXT:    kshiftld $21, %k0, %k0
1117 ; SKX-NEXT:    kshiftrd $21, %k0, %k0
1118 ; SKX-NEXT:    kord %k2, %k0, %k0
1119 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
1120 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1121 ; SKX-NEXT:    kshiftrd $20, %k2, %k2
1122 ; SKX-NEXT:    kord %k0, %k2, %k0
1123 ; SKX-NEXT:    kshiftrd $13, %k0, %k2
1124 ; SKX-NEXT:    kshiftld $13, %k2, %k2
1125 ; SKX-NEXT:    kshiftld $20, %k0, %k0
1126 ; SKX-NEXT:    kshiftrd $20, %k0, %k0
1127 ; SKX-NEXT:    kord %k2, %k0, %k0
1128 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
1129 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1130 ; SKX-NEXT:    kshiftrd $19, %k2, %k2
1131 ; SKX-NEXT:    kord %k0, %k2, %k0
1132 ; SKX-NEXT:    kshiftrd $14, %k0, %k2
1133 ; SKX-NEXT:    kshiftld $14, %k2, %k2
1134 ; SKX-NEXT:    kshiftld $19, %k0, %k0
1135 ; SKX-NEXT:    kshiftrd $19, %k0, %k0
1136 ; SKX-NEXT:    kord %k2, %k0, %k0
1137 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
1138 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1139 ; SKX-NEXT:    kshiftrd $18, %k2, %k2
1140 ; SKX-NEXT:    kord %k0, %k2, %k0
1141 ; SKX-NEXT:    kshiftrd $15, %k0, %k2
1142 ; SKX-NEXT:    kshiftld $15, %k2, %k2
1143 ; SKX-NEXT:    kshiftld $18, %k0, %k0
1144 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
1145 ; SKX-NEXT:    kshiftrd $18, %k0, %k0
1146 ; SKX-NEXT:    kord %k2, %k0, %k0
1147 ; SKX-NEXT:    kshiftld $31, %k3, %k2
1148 ; SKX-NEXT:    kshiftrd $17, %k2, %k2
1149 ; SKX-NEXT:    kord %k0, %k2, %k0
1150 ; SKX-NEXT:    kshiftrd $16, %k0, %k2
1151 ; SKX-NEXT:    kshiftld $16, %k2, %k2
1152 ; SKX-NEXT:    kshiftld $17, %k0, %k0
1153 ; SKX-NEXT:    kshiftrd $17, %k0, %k0
1154 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
1155 ; SKX-NEXT:    kord %k2, %k0, %k0
1156 ; SKX-NEXT:    kshiftld $31, %k3, %k2
1157 ; SKX-NEXT:    kshiftrd $16, %k2, %k2
1158 ; SKX-NEXT:    kord %k0, %k2, %k0
1159 ; SKX-NEXT:    kshiftrd $17, %k0, %k2
1160 ; SKX-NEXT:    kshiftld $17, %k2, %k2
1161 ; SKX-NEXT:    kshiftld $16, %k0, %k0
1162 ; SKX-NEXT:    kshiftrd $16, %k0, %k0
1163 ; SKX-NEXT:    kord %k2, %k0, %k0
1164 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
1165 ; SKX-NEXT:    kshiftld $31, %k2, %k2
1166 ; SKX-NEXT:    kshiftrd $15, %k2, %k2
1167 ; SKX-NEXT:    kord %k0, %k2, %k0
1168 ; SKX-NEXT:    kandd %k1, %k0, %k0
1169 ; SKX-NEXT:    kshiftrd $16, %k0, %k1
1170 ; SKX-NEXT:    kmovd %k1, %r8d
1171 ; SKX-NEXT:    kshiftrd $1, %k0, %k1
1172 ; SKX-NEXT:    kmovd %k1, %r9d
1173 ; SKX-NEXT:    kshiftrd $2, %k0, %k1
1174 ; SKX-NEXT:    kmovd %k1, %r10d
1175 ; SKX-NEXT:    kshiftrd $3, %k0, %k1
1176 ; SKX-NEXT:    kmovd %k1, %r11d
1177 ; SKX-NEXT:    kshiftrd $4, %k0, %k1
1178 ; SKX-NEXT:    kmovd %k1, %r12d
1179 ; SKX-NEXT:    kshiftrd $5, %k0, %k1
1180 ; SKX-NEXT:    kmovd %k1, %r15d
1181 ; SKX-NEXT:    kshiftrd $6, %k0, %k1
1182 ; SKX-NEXT:    kmovd %k1, %r14d
1183 ; SKX-NEXT:    kshiftrd $7, %k0, %k1
1184 ; SKX-NEXT:    kmovd %k1, %r13d
1185 ; SKX-NEXT:    kshiftrd $8, %k0, %k1
1186 ; SKX-NEXT:    kmovd %k1, %ebx
1187 ; SKX-NEXT:    kshiftrd $9, %k0, %k1
1188 ; SKX-NEXT:    kmovd %k1, %esi
1189 ; SKX-NEXT:    kshiftrd $10, %k0, %k1
1190 ; SKX-NEXT:    kmovd %k1, %ebp
1191 ; SKX-NEXT:    kshiftrd $11, %k0, %k1
1192 ; SKX-NEXT:    kmovd %k1, %ecx
1193 ; SKX-NEXT:    kshiftrd $12, %k0, %k1
1194 ; SKX-NEXT:    kmovd %k1, %edx
1195 ; SKX-NEXT:    kshiftrd $13, %k0, %k1
1196 ; SKX-NEXT:    kmovd %k1, %edi
1197 ; SKX-NEXT:    kshiftrd $14, %k0, %k1
1198 ; SKX-NEXT:    andl $1, %r8d
1199 ; SKX-NEXT:    movb %r8b, 2(%rax)
1200 ; SKX-NEXT:    kmovd %k0, %r8d
1201 ; SKX-NEXT:    andl $1, %r8d
1202 ; SKX-NEXT:    andl $1, %r9d
1203 ; SKX-NEXT:    leal (%r8,%r9,2), %r8d
1204 ; SKX-NEXT:    kmovd %k1, %r9d
1205 ; SKX-NEXT:    kshiftrd $15, %k0, %k0
1206 ; SKX-NEXT:    andl $1, %r10d
1207 ; SKX-NEXT:    leal (%r8,%r10,4), %r8d
1208 ; SKX-NEXT:    kmovd %k0, %r10d
1209 ; SKX-NEXT:    andl $1, %r11d
1210 ; SKX-NEXT:    leal (%r8,%r11,8), %r8d
1211 ; SKX-NEXT:    andl $1, %r12d
1212 ; SKX-NEXT:    shll $4, %r12d
1213 ; SKX-NEXT:    orl %r8d, %r12d
1214 ; SKX-NEXT:    andl $1, %r15d
1215 ; SKX-NEXT:    shll $5, %r15d
1216 ; SKX-NEXT:    orl %r12d, %r15d
1217 ; SKX-NEXT:    andl $1, %r14d
1218 ; SKX-NEXT:    shll $6, %r14d
1219 ; SKX-NEXT:    andl $1, %r13d
1220 ; SKX-NEXT:    shll $7, %r13d
1221 ; SKX-NEXT:    orl %r14d, %r13d
1222 ; SKX-NEXT:    andl $1, %ebx
1223 ; SKX-NEXT:    shll $8, %ebx
1224 ; SKX-NEXT:    orl %r13d, %ebx
1225 ; SKX-NEXT:    andl $1, %esi
1226 ; SKX-NEXT:    shll $9, %esi
1227 ; SKX-NEXT:    orl %ebx, %esi
1228 ; SKX-NEXT:    andl $1, %ebp
1229 ; SKX-NEXT:    shll $10, %ebp
1230 ; SKX-NEXT:    orl %esi, %ebp
1231 ; SKX-NEXT:    orl %r15d, %ebp
1232 ; SKX-NEXT:    andl $1, %ecx
1233 ; SKX-NEXT:    shll $11, %ecx
1234 ; SKX-NEXT:    andl $1, %edx
1235 ; SKX-NEXT:    shll $12, %edx
1236 ; SKX-NEXT:    orl %ecx, %edx
1237 ; SKX-NEXT:    andl $1, %edi
1238 ; SKX-NEXT:    shll $13, %edi
1239 ; SKX-NEXT:    orl %edx, %edi
1240 ; SKX-NEXT:    andl $1, %r9d
1241 ; SKX-NEXT:    shll $14, %r9d
1242 ; SKX-NEXT:    orl %edi, %r9d
1243 ; SKX-NEXT:    andl $1, %r10d
1244 ; SKX-NEXT:    shll $15, %r10d
1245 ; SKX-NEXT:    orl %r9d, %r10d
1246 ; SKX-NEXT:    orl %ebp, %r10d
1247 ; SKX-NEXT:    movw %r10w, (%rax)
1248 ; SKX-NEXT:    popq %rbx
1249 ; SKX-NEXT:    popq %r12
1250 ; SKX-NEXT:    popq %r13
1251 ; SKX-NEXT:    popq %r14
1252 ; SKX-NEXT:    popq %r15
1253 ; SKX-NEXT:    popq %rbp
1254 ; SKX-NEXT:    retq
1256 ; KNL_X32-LABEL: test16:
1257 ; KNL_X32:       ## %bb.0:
1258 ; KNL_X32-NEXT:    pushl %ebp
1259 ; KNL_X32-NEXT:    pushl %ebx
1260 ; KNL_X32-NEXT:    pushl %edi
1261 ; KNL_X32-NEXT:    pushl %esi
1262 ; KNL_X32-NEXT:    subl $20, %esp
1263 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1264 ; KNL_X32-NEXT:    kmovw %eax, %k0
1265 ; KNL_X32-NEXT:    kshiftlw $15, %k0, %k0
1266 ; KNL_X32-NEXT:    kshiftrw $15, %k0, %k0
1267 ; KNL_X32-NEXT:    kshiftlw $2, %k0, %k2
1268 ; KNL_X32-NEXT:    kmovw %k2, {{[-0-9]+}}(%e{{[sb]}}p) ## 2-byte Spill
1269 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1270 ; KNL_X32-NEXT:    kmovw %eax, %k1
1271 ; KNL_X32-NEXT:    kshiftlw $1, %k1, %k1
1272 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
1273 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1274 ; KNL_X32-NEXT:    kshiftlw $14, %k0, %k0
1275 ; KNL_X32-NEXT:    kshiftrw $14, %k0, %k0
1276 ; KNL_X32-NEXT:    kshiftlw $3, %k0, %k2
1277 ; KNL_X32-NEXT:    kmovw %k2, {{[-0-9]+}}(%e{{[sb]}}p) ## 2-byte Spill
1278 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1279 ; KNL_X32-NEXT:    kmovw %eax, %k1
1280 ; KNL_X32-NEXT:    kshiftlw $2, %k1, %k1
1281 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
1282 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1283 ; KNL_X32-NEXT:    kshiftlw $13, %k0, %k0
1284 ; KNL_X32-NEXT:    kshiftrw $13, %k0, %k0
1285 ; KNL_X32-NEXT:    kshiftlw $4, %k0, %k2
1286 ; KNL_X32-NEXT:    kmovw %k2, {{[-0-9]+}}(%e{{[sb]}}p) ## 2-byte Spill
1287 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1288 ; KNL_X32-NEXT:    kmovw %eax, %k1
1289 ; KNL_X32-NEXT:    kshiftlw $3, %k1, %k1
1290 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
1291 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1292 ; KNL_X32-NEXT:    kshiftlw $12, %k0, %k0
1293 ; KNL_X32-NEXT:    kshiftrw $12, %k0, %k0
1294 ; KNL_X32-NEXT:    kshiftlw $5, %k0, %k2
1295 ; KNL_X32-NEXT:    kmovw %k2, {{[-0-9]+}}(%e{{[sb]}}p) ## 2-byte Spill
1296 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1297 ; KNL_X32-NEXT:    kmovw %eax, %k1
1298 ; KNL_X32-NEXT:    kshiftlw $4, %k1, %k1
1299 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
1300 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1301 ; KNL_X32-NEXT:    kshiftlw $11, %k0, %k0
1302 ; KNL_X32-NEXT:    kshiftrw $11, %k0, %k0
1303 ; KNL_X32-NEXT:    kshiftlw $6, %k0, %k2
1304 ; KNL_X32-NEXT:    kmovw %k2, {{[-0-9]+}}(%e{{[sb]}}p) ## 2-byte Spill
1305 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1306 ; KNL_X32-NEXT:    kmovw %eax, %k1
1307 ; KNL_X32-NEXT:    kshiftlw $5, %k1, %k1
1308 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
1309 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1310 ; KNL_X32-NEXT:    kshiftlw $10, %k0, %k0
1311 ; KNL_X32-NEXT:    kshiftrw $10, %k0, %k0
1312 ; KNL_X32-NEXT:    kshiftlw $7, %k0, %k2
1313 ; KNL_X32-NEXT:    kmovw %k2, {{[-0-9]+}}(%e{{[sb]}}p) ## 2-byte Spill
1314 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1315 ; KNL_X32-NEXT:    kmovw %eax, %k1
1316 ; KNL_X32-NEXT:    kshiftlw $6, %k1, %k1
1317 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
1318 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1319 ; KNL_X32-NEXT:    kshiftlw $9, %k0, %k0
1320 ; KNL_X32-NEXT:    kshiftrw $9, %k0, %k0
1321 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1322 ; KNL_X32-NEXT:    kmovw %eax, %k1
1323 ; KNL_X32-NEXT:    kshiftlw $7, %k1, %k1
1324 ; KNL_X32-NEXT:    kshiftlw $8, %k0, %k2
1325 ; KNL_X32-NEXT:    kmovw %k2, {{[-0-9]+}}(%e{{[sb]}}p) ## 2-byte Spill
1326 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
1327 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1328 ; KNL_X32-NEXT:    kshiftlw $8, %k0, %k0
1329 ; KNL_X32-NEXT:    kshiftrw $8, %k0, %k0
1330 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1331 ; KNL_X32-NEXT:    kmovw %eax, %k1
1332 ; KNL_X32-NEXT:    kshiftlw $8, %k1, %k1
1333 ; KNL_X32-NEXT:    kshiftlw $9, %k0, %k2
1334 ; KNL_X32-NEXT:    kmovw %k2, {{[-0-9]+}}(%e{{[sb]}}p) ## 2-byte Spill
1335 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
1336 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1337 ; KNL_X32-NEXT:    kshiftlw $7, %k0, %k0
1338 ; KNL_X32-NEXT:    kshiftrw $7, %k0, %k0
1339 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1340 ; KNL_X32-NEXT:    kmovw %eax, %k1
1341 ; KNL_X32-NEXT:    kshiftlw $9, %k1, %k1
1342 ; KNL_X32-NEXT:    kshiftlw $10, %k0, %k2
1343 ; KNL_X32-NEXT:    kmovw %k2, {{[-0-9]+}}(%e{{[sb]}}p) ## 2-byte Spill
1344 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
1345 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1346 ; KNL_X32-NEXT:    kshiftlw $6, %k0, %k0
1347 ; KNL_X32-NEXT:    kshiftrw $6, %k0, %k0
1348 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1349 ; KNL_X32-NEXT:    kmovw %eax, %k1
1350 ; KNL_X32-NEXT:    kshiftlw $10, %k1, %k1
1351 ; KNL_X32-NEXT:    kshiftlw $11, %k0, %k6
1352 ; KNL_X32-NEXT:    korw %k1, %k6, %k1
1353 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1354 ; KNL_X32-NEXT:    kshiftlw $5, %k0, %k0
1355 ; KNL_X32-NEXT:    kshiftrw $5, %k0, %k0
1356 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1357 ; KNL_X32-NEXT:    kmovw %eax, %k1
1358 ; KNL_X32-NEXT:    kshiftlw $11, %k1, %k1
1359 ; KNL_X32-NEXT:    kshiftlw $12, %k0, %k5
1360 ; KNL_X32-NEXT:    korw %k1, %k5, %k1
1361 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1362 ; KNL_X32-NEXT:    kshiftlw $4, %k0, %k0
1363 ; KNL_X32-NEXT:    kshiftrw $4, %k0, %k0
1364 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1365 ; KNL_X32-NEXT:    kmovw %eax, %k1
1366 ; KNL_X32-NEXT:    kshiftlw $12, %k1, %k1
1367 ; KNL_X32-NEXT:    kshiftlw $13, %k0, %k4
1368 ; KNL_X32-NEXT:    korw %k1, %k4, %k1
1369 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1370 ; KNL_X32-NEXT:    kshiftlw $3, %k0, %k0
1371 ; KNL_X32-NEXT:    kshiftrw $3, %k0, %k2
1372 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1373 ; KNL_X32-NEXT:    kmovw %eax, %k1
1374 ; KNL_X32-NEXT:    kshiftlw $13, %k1, %k0
1375 ; KNL_X32-NEXT:    kshiftlw $14, %k0, %k3
1376 ; KNL_X32-NEXT:    korw %k0, %k3, %k0
1377 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
1378 ; KNL_X32-NEXT:    kshiftlw $2, %k0, %k0
1379 ; KNL_X32-NEXT:    kshiftrw $2, %k0, %k2
1380 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1381 ; KNL_X32-NEXT:    kmovw %eax, %k0
1382 ; KNL_X32-NEXT:    kshiftlw $14, %k0, %k0
1383 ; KNL_X32-NEXT:    kshiftlw $15, %k0, %k1
1384 ; KNL_X32-NEXT:    korw %k0, %k1, %k0
1385 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
1386 ; KNL_X32-NEXT:    kshiftlw $1, %k0, %k0
1387 ; KNL_X32-NEXT:    kshiftrw $1, %k0, %k0
1388 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1389 ; KNL_X32-NEXT:    kmovw %eax, %k2
1390 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
1391 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1392 ; KNL_X32-NEXT:    kmovw %k0, (%esp) ## 2-byte Spill
1393 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1394 ; KNL_X32-NEXT:    kmovw %eax, %k0
1395 ; KNL_X32-NEXT:    kshiftlw $1, %k0, %k0
1396 ; KNL_X32-NEXT:    kmovw {{[-0-9]+}}(%e{{[sb]}}p), %k2 ## 2-byte Reload
1397 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
1398 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1399 ; KNL_X32-NEXT:    kmovw %eax, %k2
1400 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
1401 ; KNL_X32-NEXT:    kshiftrw $15, %k2, %k2
1402 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
1403 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1404 ; KNL_X32-NEXT:    kmovw %eax, %k2
1405 ; KNL_X32-NEXT:    kshiftlw $2, %k2, %k2
1406 ; KNL_X32-NEXT:    kmovw {{[-0-9]+}}(%e{{[sb]}}p), %k7 ## 2-byte Reload
1407 ; KNL_X32-NEXT:    korw %k2, %k7, %k2
1408 ; KNL_X32-NEXT:    kshiftlw $14, %k0, %k0
1409 ; KNL_X32-NEXT:    kshiftrw $14, %k0, %k0
1410 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1411 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1412 ; KNL_X32-NEXT:    kmovw %eax, %k2
1413 ; KNL_X32-NEXT:    kshiftlw $3, %k2, %k2
1414 ; KNL_X32-NEXT:    kmovw {{[-0-9]+}}(%e{{[sb]}}p), %k7 ## 2-byte Reload
1415 ; KNL_X32-NEXT:    korw %k2, %k7, %k2
1416 ; KNL_X32-NEXT:    kshiftlw $13, %k0, %k0
1417 ; KNL_X32-NEXT:    kshiftrw $13, %k0, %k0
1418 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1419 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1420 ; KNL_X32-NEXT:    kmovw %eax, %k2
1421 ; KNL_X32-NEXT:    kshiftlw $4, %k2, %k2
1422 ; KNL_X32-NEXT:    kmovw {{[-0-9]+}}(%e{{[sb]}}p), %k7 ## 2-byte Reload
1423 ; KNL_X32-NEXT:    korw %k2, %k7, %k2
1424 ; KNL_X32-NEXT:    kshiftlw $12, %k0, %k0
1425 ; KNL_X32-NEXT:    kshiftrw $12, %k0, %k0
1426 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1427 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1428 ; KNL_X32-NEXT:    kmovw %eax, %k2
1429 ; KNL_X32-NEXT:    kshiftlw $5, %k2, %k2
1430 ; KNL_X32-NEXT:    kmovw {{[-0-9]+}}(%e{{[sb]}}p), %k7 ## 2-byte Reload
1431 ; KNL_X32-NEXT:    korw %k2, %k7, %k2
1432 ; KNL_X32-NEXT:    kshiftlw $11, %k0, %k0
1433 ; KNL_X32-NEXT:    kshiftrw $11, %k0, %k0
1434 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1435 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1436 ; KNL_X32-NEXT:    kmovw %eax, %k2
1437 ; KNL_X32-NEXT:    kshiftlw $6, %k2, %k2
1438 ; KNL_X32-NEXT:    kmovw {{[-0-9]+}}(%e{{[sb]}}p), %k7 ## 2-byte Reload
1439 ; KNL_X32-NEXT:    korw %k2, %k7, %k2
1440 ; KNL_X32-NEXT:    kshiftlw $10, %k0, %k0
1441 ; KNL_X32-NEXT:    kshiftrw $10, %k0, %k0
1442 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1443 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1444 ; KNL_X32-NEXT:    kmovw %eax, %k2
1445 ; KNL_X32-NEXT:    kshiftlw $7, %k2, %k2
1446 ; KNL_X32-NEXT:    kmovw {{[-0-9]+}}(%e{{[sb]}}p), %k7 ## 2-byte Reload
1447 ; KNL_X32-NEXT:    korw %k2, %k7, %k2
1448 ; KNL_X32-NEXT:    kshiftlw $9, %k0, %k0
1449 ; KNL_X32-NEXT:    kshiftrw $9, %k0, %k0
1450 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1451 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1452 ; KNL_X32-NEXT:    kmovw %eax, %k2
1453 ; KNL_X32-NEXT:    kshiftlw $8, %k2, %k2
1454 ; KNL_X32-NEXT:    kmovw {{[-0-9]+}}(%e{{[sb]}}p), %k7 ## 2-byte Reload
1455 ; KNL_X32-NEXT:    korw %k2, %k7, %k2
1456 ; KNL_X32-NEXT:    kshiftlw $8, %k0, %k0
1457 ; KNL_X32-NEXT:    kshiftrw $8, %k0, %k0
1458 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1459 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1460 ; KNL_X32-NEXT:    kmovw %eax, %k2
1461 ; KNL_X32-NEXT:    kshiftlw $9, %k2, %k2
1462 ; KNL_X32-NEXT:    kmovw {{[-0-9]+}}(%e{{[sb]}}p), %k7 ## 2-byte Reload
1463 ; KNL_X32-NEXT:    korw %k2, %k7, %k2
1464 ; KNL_X32-NEXT:    kshiftlw $7, %k0, %k0
1465 ; KNL_X32-NEXT:    kshiftrw $7, %k0, %k0
1466 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1467 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1468 ; KNL_X32-NEXT:    kmovw %eax, %k2
1469 ; KNL_X32-NEXT:    kshiftlw $10, %k2, %k2
1470 ; KNL_X32-NEXT:    korw %k2, %k6, %k2
1471 ; KNL_X32-NEXT:    kshiftlw $6, %k0, %k0
1472 ; KNL_X32-NEXT:    kshiftrw $6, %k0, %k0
1473 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1474 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1475 ; KNL_X32-NEXT:    kmovw %eax, %k2
1476 ; KNL_X32-NEXT:    kshiftlw $11, %k2, %k2
1477 ; KNL_X32-NEXT:    korw %k2, %k5, %k2
1478 ; KNL_X32-NEXT:    kshiftlw $5, %k0, %k0
1479 ; KNL_X32-NEXT:    kshiftrw $5, %k0, %k0
1480 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1481 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1482 ; KNL_X32-NEXT:    kmovw %eax, %k2
1483 ; KNL_X32-NEXT:    kshiftlw $12, %k2, %k2
1484 ; KNL_X32-NEXT:    korw %k2, %k4, %k2
1485 ; KNL_X32-NEXT:    kshiftlw $4, %k0, %k0
1486 ; KNL_X32-NEXT:    kshiftrw $4, %k0, %k0
1487 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1488 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1489 ; KNL_X32-NEXT:    kmovw %eax, %k2
1490 ; KNL_X32-NEXT:    kshiftlw $13, %k2, %k2
1491 ; KNL_X32-NEXT:    korw %k2, %k3, %k2
1492 ; KNL_X32-NEXT:    kshiftlw $3, %k0, %k0
1493 ; KNL_X32-NEXT:    kshiftrw $3, %k0, %k0
1494 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
1495 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
1496 ; KNL_X32-NEXT:    kmovw %eax, %k2
1497 ; KNL_X32-NEXT:    kshiftlw $14, %k2, %k2
1498 ; KNL_X32-NEXT:    korw %k2, %k1, %k1
1499 ; KNL_X32-NEXT:    xorl %eax, %eax
1500 ; KNL_X32-NEXT:    testb $1, {{[0-9]+}}(%esp)
1501 ; KNL_X32-NEXT:    movl $65535, %ecx ## imm = 0xFFFF
1502 ; KNL_X32-NEXT:    movl $0, %edx
1503 ; KNL_X32-NEXT:    cmovnel %ecx, %edx
1504 ; KNL_X32-NEXT:    kshiftlw $2, %k0, %k0
1505 ; KNL_X32-NEXT:    kshiftrw $2, %k0, %k0
1506 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1507 ; KNL_X32-NEXT:    kshiftlw $1, %k0, %k0
1508 ; KNL_X32-NEXT:    kshiftrw $1, %k0, %k0
1509 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %bl
1510 ; KNL_X32-NEXT:    kmovw %ebx, %k1
1511 ; KNL_X32-NEXT:    kshiftlw $15, %k1, %k1
1512 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
1513 ; KNL_X32-NEXT:    kmovw %edx, %k1
1514 ; KNL_X32-NEXT:    testb $1, {{[0-9]+}}(%esp)
1515 ; KNL_X32-NEXT:    cmovnel %ecx, %eax
1516 ; KNL_X32-NEXT:    kmovw (%esp), %k2 ## 2-byte Reload
1517 ; KNL_X32-NEXT:    kandw %k2, %k0, %k0
1518 ; KNL_X32-NEXT:    kmovw %eax, %k2
1519 ; KNL_X32-NEXT:    kandw %k1, %k2, %k1
1520 ; KNL_X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
1521 ; KNL_X32-NEXT:    kmovw %k1, %ebx
1522 ; KNL_X32-NEXT:    kshiftrw $1, %k0, %k1
1523 ; KNL_X32-NEXT:    kmovw %k1, %esi
1524 ; KNL_X32-NEXT:    kshiftrw $2, %k0, %k1
1525 ; KNL_X32-NEXT:    kmovw %k1, %edi
1526 ; KNL_X32-NEXT:    kshiftrw $3, %k0, %k1
1527 ; KNL_X32-NEXT:    kmovw %k1, %ebp
1528 ; KNL_X32-NEXT:    kshiftrw $4, %k0, %k1
1529 ; KNL_X32-NEXT:    kmovw %k1, %edx
1530 ; KNL_X32-NEXT:    kshiftrw $5, %k0, %k1
1531 ; KNL_X32-NEXT:    kmovw %k1, %ecx
1532 ; KNL_X32-NEXT:    kshiftrw $6, %k0, %k1
1533 ; KNL_X32-NEXT:    andl $1, %ebx
1534 ; KNL_X32-NEXT:    movb %bl, 2(%eax)
1535 ; KNL_X32-NEXT:    kmovw %k0, %ebx
1536 ; KNL_X32-NEXT:    andl $1, %ebx
1537 ; KNL_X32-NEXT:    andl $1, %esi
1538 ; KNL_X32-NEXT:    leal (%ebx,%esi,2), %esi
1539 ; KNL_X32-NEXT:    kmovw %k1, %ebx
1540 ; KNL_X32-NEXT:    kshiftrw $7, %k0, %k1
1541 ; KNL_X32-NEXT:    andl $1, %edi
1542 ; KNL_X32-NEXT:    leal (%esi,%edi,4), %esi
1543 ; KNL_X32-NEXT:    kmovw %k1, %edi
1544 ; KNL_X32-NEXT:    kshiftrw $8, %k0, %k1
1545 ; KNL_X32-NEXT:    andl $1, %ebp
1546 ; KNL_X32-NEXT:    leal (%esi,%ebp,8), %esi
1547 ; KNL_X32-NEXT:    kmovw %k1, %ebp
1548 ; KNL_X32-NEXT:    kshiftrw $9, %k0, %k1
1549 ; KNL_X32-NEXT:    andl $1, %edx
1550 ; KNL_X32-NEXT:    shll $4, %edx
1551 ; KNL_X32-NEXT:    orl %esi, %edx
1552 ; KNL_X32-NEXT:    kmovw %k1, %esi
1553 ; KNL_X32-NEXT:    kshiftrw $10, %k0, %k1
1554 ; KNL_X32-NEXT:    andl $1, %ecx
1555 ; KNL_X32-NEXT:    shll $5, %ecx
1556 ; KNL_X32-NEXT:    orl %edx, %ecx
1557 ; KNL_X32-NEXT:    kmovw %k1, %edx
1558 ; KNL_X32-NEXT:    kshiftrw $11, %k0, %k1
1559 ; KNL_X32-NEXT:    andl $1, %ebx
1560 ; KNL_X32-NEXT:    shll $6, %ebx
1561 ; KNL_X32-NEXT:    andl $1, %edi
1562 ; KNL_X32-NEXT:    shll $7, %edi
1563 ; KNL_X32-NEXT:    orl %ebx, %edi
1564 ; KNL_X32-NEXT:    kmovw %k1, %ebx
1565 ; KNL_X32-NEXT:    kshiftrw $12, %k0, %k1
1566 ; KNL_X32-NEXT:    andl $1, %ebp
1567 ; KNL_X32-NEXT:    shll $8, %ebp
1568 ; KNL_X32-NEXT:    orl %edi, %ebp
1569 ; KNL_X32-NEXT:    kmovw %k1, %edi
1570 ; KNL_X32-NEXT:    kshiftrw $13, %k0, %k1
1571 ; KNL_X32-NEXT:    andl $1, %esi
1572 ; KNL_X32-NEXT:    shll $9, %esi
1573 ; KNL_X32-NEXT:    orl %ebp, %esi
1574 ; KNL_X32-NEXT:    kmovw %k1, %ebp
1575 ; KNL_X32-NEXT:    kshiftrw $14, %k0, %k1
1576 ; KNL_X32-NEXT:    andl $1, %edx
1577 ; KNL_X32-NEXT:    shll $10, %edx
1578 ; KNL_X32-NEXT:    orl %esi, %edx
1579 ; KNL_X32-NEXT:    kmovw %k1, %esi
1580 ; KNL_X32-NEXT:    kshiftrw $15, %k0, %k0
1581 ; KNL_X32-NEXT:    orl %ecx, %edx
1582 ; KNL_X32-NEXT:    kmovw %k0, %ecx
1583 ; KNL_X32-NEXT:    andl $1, %ebx
1584 ; KNL_X32-NEXT:    shll $11, %ebx
1585 ; KNL_X32-NEXT:    andl $1, %edi
1586 ; KNL_X32-NEXT:    shll $12, %edi
1587 ; KNL_X32-NEXT:    orl %ebx, %edi
1588 ; KNL_X32-NEXT:    andl $1, %ebp
1589 ; KNL_X32-NEXT:    shll $13, %ebp
1590 ; KNL_X32-NEXT:    orl %edi, %ebp
1591 ; KNL_X32-NEXT:    andl $1, %esi
1592 ; KNL_X32-NEXT:    shll $14, %esi
1593 ; KNL_X32-NEXT:    orl %ebp, %esi
1594 ; KNL_X32-NEXT:    andl $1, %ecx
1595 ; KNL_X32-NEXT:    shll $15, %ecx
1596 ; KNL_X32-NEXT:    orl %esi, %ecx
1597 ; KNL_X32-NEXT:    orl %edx, %ecx
1598 ; KNL_X32-NEXT:    movw %cx, (%eax)
1599 ; KNL_X32-NEXT:    addl $20, %esp
1600 ; KNL_X32-NEXT:    popl %esi
1601 ; KNL_X32-NEXT:    popl %edi
1602 ; KNL_X32-NEXT:    popl %ebx
1603 ; KNL_X32-NEXT:    popl %ebp
1604 ; KNL_X32-NEXT:    retl $4
1605   %c = and <17 x i1> %a, %b
1606   ret <17 x i1> %c
1609 define <7 x i1> @test17(<7 x i1> %a, <7 x i1> %b, <7 x i1> %c, <7 x i1> %d, <7 x i1>%e, <7 x i1>%f, <7 x i1> %g, <7 x i1> %h, <7 x i1> %i) nounwind {
1610 ; KNL-LABEL: test17:
1611 ; KNL:       ## %bb.0:
1612 ; KNL-NEXT:    movq %rdi, %rax
1613 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1614 ; KNL-NEXT:    kmovw %edi, %k0
1615 ; KNL-NEXT:    kshiftlw $15, %k0, %k0
1616 ; KNL-NEXT:    kshiftrw $15, %k0, %k0
1617 ; KNL-NEXT:    kshiftlw $2, %k0, %k1
1618 ; KNL-NEXT:    korw %k1, %k0, %k0
1619 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1620 ; KNL-NEXT:    kmovw %edi, %k2
1621 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
1622 ; KNL-NEXT:    kshiftrw $14, %k2, %k2
1623 ; KNL-NEXT:    korw %k0, %k2, %k0
1624 ; KNL-NEXT:    kshiftrw $3, %k0, %k2
1625 ; KNL-NEXT:    kshiftlw $3, %k2, %k2
1626 ; KNL-NEXT:    kshiftlw $14, %k0, %k0
1627 ; KNL-NEXT:    kshiftrw $14, %k0, %k0
1628 ; KNL-NEXT:    korw %k2, %k0, %k0
1629 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1630 ; KNL-NEXT:    kmovw %edi, %k2
1631 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
1632 ; KNL-NEXT:    kshiftrw $13, %k2, %k2
1633 ; KNL-NEXT:    korw %k0, %k2, %k0
1634 ; KNL-NEXT:    kshiftrw $4, %k0, %k2
1635 ; KNL-NEXT:    kshiftlw $4, %k2, %k2
1636 ; KNL-NEXT:    kshiftlw $13, %k0, %k0
1637 ; KNL-NEXT:    kshiftrw $13, %k0, %k0
1638 ; KNL-NEXT:    korw %k2, %k0, %k0
1639 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1640 ; KNL-NEXT:    kmovw %edi, %k2
1641 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
1642 ; KNL-NEXT:    kshiftrw $12, %k2, %k2
1643 ; KNL-NEXT:    korw %k0, %k2, %k0
1644 ; KNL-NEXT:    kshiftrw $5, %k0, %k2
1645 ; KNL-NEXT:    kshiftlw $5, %k2, %k2
1646 ; KNL-NEXT:    kshiftlw $12, %k0, %k0
1647 ; KNL-NEXT:    kshiftrw $12, %k0, %k0
1648 ; KNL-NEXT:    korw %k2, %k0, %k0
1649 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1650 ; KNL-NEXT:    kmovw %edi, %k2
1651 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
1652 ; KNL-NEXT:    kshiftrw $11, %k2, %k2
1653 ; KNL-NEXT:    korw %k0, %k2, %k0
1654 ; KNL-NEXT:    kshiftrw $6, %k0, %k2
1655 ; KNL-NEXT:    kshiftlw $6, %k2, %k2
1656 ; KNL-NEXT:    kshiftlw $11, %k0, %k0
1657 ; KNL-NEXT:    kshiftrw $11, %k0, %k0
1658 ; KNL-NEXT:    korw %k2, %k0, %k0
1659 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1660 ; KNL-NEXT:    kmovw %edi, %k2
1661 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
1662 ; KNL-NEXT:    kshiftrw $10, %k2, %k2
1663 ; KNL-NEXT:    korw %k0, %k2, %k0
1664 ; KNL-NEXT:    kshiftrw $7, %k0, %k2
1665 ; KNL-NEXT:    kshiftlw $7, %k2, %k2
1666 ; KNL-NEXT:    kshiftlw $10, %k0, %k0
1667 ; KNL-NEXT:    kshiftrw $10, %k0, %k0
1668 ; KNL-NEXT:    korw %k2, %k0, %k0
1669 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1670 ; KNL-NEXT:    kmovw %edi, %k2
1671 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
1672 ; KNL-NEXT:    kshiftrw $9, %k2, %k2
1673 ; KNL-NEXT:    korw %k0, %k2, %k0
1674 ; KNL-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
1675 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1676 ; KNL-NEXT:    kmovw %edi, %k0
1677 ; KNL-NEXT:    kshiftlw $15, %k0, %k0
1678 ; KNL-NEXT:    kshiftrw $15, %k0, %k0
1679 ; KNL-NEXT:    korw %k1, %k0, %k0
1680 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1681 ; KNL-NEXT:    kmovw %edi, %k2
1682 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
1683 ; KNL-NEXT:    kshiftrw $14, %k2, %k2
1684 ; KNL-NEXT:    korw %k0, %k2, %k0
1685 ; KNL-NEXT:    kshiftrw $3, %k0, %k2
1686 ; KNL-NEXT:    kshiftlw $3, %k2, %k2
1687 ; KNL-NEXT:    kshiftlw $14, %k0, %k0
1688 ; KNL-NEXT:    kshiftrw $14, %k0, %k0
1689 ; KNL-NEXT:    korw %k2, %k0, %k0
1690 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1691 ; KNL-NEXT:    kmovw %edi, %k2
1692 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
1693 ; KNL-NEXT:    kshiftrw $13, %k2, %k2
1694 ; KNL-NEXT:    korw %k0, %k2, %k0
1695 ; KNL-NEXT:    kshiftrw $4, %k0, %k2
1696 ; KNL-NEXT:    kshiftlw $4, %k2, %k2
1697 ; KNL-NEXT:    kshiftlw $13, %k0, %k0
1698 ; KNL-NEXT:    kshiftrw $13, %k0, %k0
1699 ; KNL-NEXT:    korw %k2, %k0, %k0
1700 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1701 ; KNL-NEXT:    kmovw %edi, %k2
1702 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
1703 ; KNL-NEXT:    kshiftrw $12, %k2, %k2
1704 ; KNL-NEXT:    korw %k0, %k2, %k0
1705 ; KNL-NEXT:    kshiftrw $5, %k0, %k2
1706 ; KNL-NEXT:    kshiftlw $5, %k2, %k2
1707 ; KNL-NEXT:    kshiftlw $12, %k0, %k0
1708 ; KNL-NEXT:    kshiftrw $12, %k0, %k0
1709 ; KNL-NEXT:    korw %k2, %k0, %k0
1710 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1711 ; KNL-NEXT:    kmovw %edi, %k2
1712 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
1713 ; KNL-NEXT:    kshiftrw $11, %k2, %k2
1714 ; KNL-NEXT:    korw %k0, %k2, %k0
1715 ; KNL-NEXT:    kshiftrw $6, %k0, %k2
1716 ; KNL-NEXT:    kshiftlw $6, %k2, %k2
1717 ; KNL-NEXT:    kshiftlw $11, %k0, %k0
1718 ; KNL-NEXT:    kshiftrw $11, %k0, %k0
1719 ; KNL-NEXT:    korw %k2, %k0, %k0
1720 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1721 ; KNL-NEXT:    kmovw %edi, %k2
1722 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
1723 ; KNL-NEXT:    kshiftrw $10, %k2, %k2
1724 ; KNL-NEXT:    korw %k0, %k2, %k0
1725 ; KNL-NEXT:    kshiftrw $7, %k0, %k2
1726 ; KNL-NEXT:    kshiftlw $7, %k2, %k2
1727 ; KNL-NEXT:    kshiftlw $10, %k0, %k0
1728 ; KNL-NEXT:    kshiftrw $10, %k0, %k0
1729 ; KNL-NEXT:    korw %k2, %k0, %k0
1730 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1731 ; KNL-NEXT:    kmovw %edi, %k2
1732 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
1733 ; KNL-NEXT:    kshiftrw $9, %k2, %k2
1734 ; KNL-NEXT:    korw %k0, %k2, %k0
1735 ; KNL-NEXT:    kmovw %k0, {{[-0-9]+}}(%r{{[sb]}}p) ## 2-byte Spill
1736 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1737 ; KNL-NEXT:    kmovw %edi, %k0
1738 ; KNL-NEXT:    kshiftlw $15, %k0, %k0
1739 ; KNL-NEXT:    kshiftrw $15, %k0, %k0
1740 ; KNL-NEXT:    korw %k1, %k0, %k0
1741 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1742 ; KNL-NEXT:    kmovw %edi, %k3
1743 ; KNL-NEXT:    kshiftlw $15, %k3, %k3
1744 ; KNL-NEXT:    kshiftrw $14, %k3, %k3
1745 ; KNL-NEXT:    korw %k0, %k3, %k0
1746 ; KNL-NEXT:    kshiftrw $3, %k0, %k3
1747 ; KNL-NEXT:    kshiftlw $3, %k3, %k3
1748 ; KNL-NEXT:    kshiftlw $14, %k0, %k0
1749 ; KNL-NEXT:    kshiftrw $14, %k0, %k0
1750 ; KNL-NEXT:    korw %k3, %k0, %k0
1751 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1752 ; KNL-NEXT:    kmovw %edi, %k3
1753 ; KNL-NEXT:    kshiftlw $15, %k3, %k3
1754 ; KNL-NEXT:    kshiftrw $13, %k3, %k3
1755 ; KNL-NEXT:    korw %k0, %k3, %k0
1756 ; KNL-NEXT:    kshiftrw $4, %k0, %k3
1757 ; KNL-NEXT:    kshiftlw $4, %k3, %k3
1758 ; KNL-NEXT:    kshiftlw $13, %k0, %k0
1759 ; KNL-NEXT:    kshiftrw $13, %k0, %k0
1760 ; KNL-NEXT:    korw %k3, %k0, %k0
1761 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1762 ; KNL-NEXT:    kmovw %edi, %k3
1763 ; KNL-NEXT:    kshiftlw $15, %k3, %k3
1764 ; KNL-NEXT:    kshiftrw $12, %k3, %k3
1765 ; KNL-NEXT:    korw %k0, %k3, %k0
1766 ; KNL-NEXT:    kshiftrw $5, %k0, %k3
1767 ; KNL-NEXT:    kshiftlw $5, %k3, %k3
1768 ; KNL-NEXT:    kshiftlw $12, %k0, %k0
1769 ; KNL-NEXT:    kshiftrw $12, %k0, %k0
1770 ; KNL-NEXT:    korw %k3, %k0, %k0
1771 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1772 ; KNL-NEXT:    kmovw %edi, %k3
1773 ; KNL-NEXT:    kshiftlw $15, %k3, %k3
1774 ; KNL-NEXT:    kshiftrw $11, %k3, %k3
1775 ; KNL-NEXT:    korw %k0, %k3, %k0
1776 ; KNL-NEXT:    kshiftrw $6, %k0, %k3
1777 ; KNL-NEXT:    kshiftlw $6, %k3, %k3
1778 ; KNL-NEXT:    kshiftlw $11, %k0, %k0
1779 ; KNL-NEXT:    kshiftrw $11, %k0, %k0
1780 ; KNL-NEXT:    korw %k3, %k0, %k0
1781 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1782 ; KNL-NEXT:    kmovw %edi, %k3
1783 ; KNL-NEXT:    kshiftlw $15, %k3, %k3
1784 ; KNL-NEXT:    kshiftrw $10, %k3, %k3
1785 ; KNL-NEXT:    korw %k0, %k3, %k0
1786 ; KNL-NEXT:    kshiftrw $7, %k0, %k3
1787 ; KNL-NEXT:    kshiftlw $7, %k3, %k3
1788 ; KNL-NEXT:    kshiftlw $10, %k0, %k0
1789 ; KNL-NEXT:    kshiftrw $10, %k0, %k0
1790 ; KNL-NEXT:    korw %k3, %k0, %k0
1791 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1792 ; KNL-NEXT:    kmovw %edi, %k3
1793 ; KNL-NEXT:    kshiftlw $15, %k3, %k3
1794 ; KNL-NEXT:    kshiftrw $9, %k3, %k3
1795 ; KNL-NEXT:    korw %k0, %k3, %k3
1796 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1797 ; KNL-NEXT:    kmovw %edi, %k0
1798 ; KNL-NEXT:    kshiftlw $15, %k0, %k0
1799 ; KNL-NEXT:    kshiftrw $15, %k0, %k0
1800 ; KNL-NEXT:    korw %k1, %k0, %k0
1801 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1802 ; KNL-NEXT:    kmovw %edi, %k4
1803 ; KNL-NEXT:    kshiftlw $15, %k4, %k4
1804 ; KNL-NEXT:    kshiftrw $14, %k4, %k4
1805 ; KNL-NEXT:    korw %k0, %k4, %k0
1806 ; KNL-NEXT:    kshiftrw $3, %k0, %k4
1807 ; KNL-NEXT:    kshiftlw $3, %k4, %k4
1808 ; KNL-NEXT:    kshiftlw $14, %k0, %k0
1809 ; KNL-NEXT:    kshiftrw $14, %k0, %k0
1810 ; KNL-NEXT:    korw %k4, %k0, %k0
1811 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1812 ; KNL-NEXT:    kmovw %edi, %k4
1813 ; KNL-NEXT:    kshiftlw $15, %k4, %k4
1814 ; KNL-NEXT:    kshiftrw $13, %k4, %k4
1815 ; KNL-NEXT:    korw %k0, %k4, %k0
1816 ; KNL-NEXT:    kshiftrw $4, %k0, %k4
1817 ; KNL-NEXT:    kshiftlw $4, %k4, %k4
1818 ; KNL-NEXT:    kshiftlw $13, %k0, %k0
1819 ; KNL-NEXT:    kshiftrw $13, %k0, %k0
1820 ; KNL-NEXT:    korw %k4, %k0, %k0
1821 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1822 ; KNL-NEXT:    kmovw %edi, %k4
1823 ; KNL-NEXT:    kshiftlw $15, %k4, %k4
1824 ; KNL-NEXT:    kshiftrw $12, %k4, %k4
1825 ; KNL-NEXT:    korw %k0, %k4, %k0
1826 ; KNL-NEXT:    kshiftrw $5, %k0, %k4
1827 ; KNL-NEXT:    kshiftlw $5, %k4, %k4
1828 ; KNL-NEXT:    kshiftlw $12, %k0, %k0
1829 ; KNL-NEXT:    kshiftrw $12, %k0, %k0
1830 ; KNL-NEXT:    korw %k4, %k0, %k0
1831 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1832 ; KNL-NEXT:    kmovw %edi, %k4
1833 ; KNL-NEXT:    kshiftlw $15, %k4, %k4
1834 ; KNL-NEXT:    kshiftrw $11, %k4, %k4
1835 ; KNL-NEXT:    korw %k0, %k4, %k0
1836 ; KNL-NEXT:    kshiftrw $6, %k0, %k4
1837 ; KNL-NEXT:    kshiftlw $6, %k4, %k4
1838 ; KNL-NEXT:    kshiftlw $11, %k0, %k0
1839 ; KNL-NEXT:    kshiftrw $11, %k0, %k0
1840 ; KNL-NEXT:    korw %k4, %k0, %k0
1841 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1842 ; KNL-NEXT:    kmovw %edi, %k4
1843 ; KNL-NEXT:    kshiftlw $15, %k4, %k4
1844 ; KNL-NEXT:    kshiftrw $10, %k4, %k4
1845 ; KNL-NEXT:    korw %k0, %k4, %k0
1846 ; KNL-NEXT:    kshiftrw $7, %k0, %k4
1847 ; KNL-NEXT:    kshiftlw $7, %k4, %k4
1848 ; KNL-NEXT:    kshiftlw $10, %k0, %k0
1849 ; KNL-NEXT:    kshiftrw $10, %k0, %k0
1850 ; KNL-NEXT:    korw %k4, %k0, %k0
1851 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1852 ; KNL-NEXT:    kmovw %edi, %k4
1853 ; KNL-NEXT:    kshiftlw $15, %k4, %k4
1854 ; KNL-NEXT:    kshiftrw $9, %k4, %k4
1855 ; KNL-NEXT:    korw %k0, %k4, %k4
1856 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1857 ; KNL-NEXT:    kmovw %edi, %k0
1858 ; KNL-NEXT:    kshiftlw $15, %k0, %k0
1859 ; KNL-NEXT:    kshiftrw $15, %k0, %k0
1860 ; KNL-NEXT:    korw %k1, %k0, %k0
1861 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1862 ; KNL-NEXT:    kmovw %edi, %k5
1863 ; KNL-NEXT:    kshiftlw $15, %k5, %k5
1864 ; KNL-NEXT:    kshiftrw $14, %k5, %k5
1865 ; KNL-NEXT:    korw %k0, %k5, %k0
1866 ; KNL-NEXT:    kshiftrw $3, %k0, %k5
1867 ; KNL-NEXT:    kshiftlw $3, %k5, %k5
1868 ; KNL-NEXT:    kshiftlw $14, %k0, %k0
1869 ; KNL-NEXT:    kshiftrw $14, %k0, %k0
1870 ; KNL-NEXT:    korw %k5, %k0, %k0
1871 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1872 ; KNL-NEXT:    kmovw %edi, %k5
1873 ; KNL-NEXT:    kshiftlw $15, %k5, %k5
1874 ; KNL-NEXT:    kshiftrw $13, %k5, %k5
1875 ; KNL-NEXT:    korw %k0, %k5, %k0
1876 ; KNL-NEXT:    kshiftrw $4, %k0, %k5
1877 ; KNL-NEXT:    kshiftlw $4, %k5, %k5
1878 ; KNL-NEXT:    kshiftlw $13, %k0, %k0
1879 ; KNL-NEXT:    kshiftrw $13, %k0, %k0
1880 ; KNL-NEXT:    korw %k5, %k0, %k0
1881 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1882 ; KNL-NEXT:    kmovw %edi, %k5
1883 ; KNL-NEXT:    kshiftlw $15, %k5, %k5
1884 ; KNL-NEXT:    kshiftrw $12, %k5, %k5
1885 ; KNL-NEXT:    korw %k0, %k5, %k0
1886 ; KNL-NEXT:    kshiftrw $5, %k0, %k5
1887 ; KNL-NEXT:    kshiftlw $5, %k5, %k5
1888 ; KNL-NEXT:    kshiftlw $12, %k0, %k0
1889 ; KNL-NEXT:    kshiftrw $12, %k0, %k0
1890 ; KNL-NEXT:    korw %k5, %k0, %k0
1891 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1892 ; KNL-NEXT:    kmovw %edi, %k5
1893 ; KNL-NEXT:    kshiftlw $15, %k5, %k5
1894 ; KNL-NEXT:    kshiftrw $11, %k5, %k5
1895 ; KNL-NEXT:    korw %k0, %k5, %k0
1896 ; KNL-NEXT:    kshiftrw $6, %k0, %k5
1897 ; KNL-NEXT:    kshiftlw $6, %k5, %k5
1898 ; KNL-NEXT:    kshiftlw $11, %k0, %k0
1899 ; KNL-NEXT:    kshiftrw $11, %k0, %k0
1900 ; KNL-NEXT:    korw %k5, %k0, %k0
1901 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1902 ; KNL-NEXT:    kmovw %edi, %k5
1903 ; KNL-NEXT:    kshiftlw $15, %k5, %k5
1904 ; KNL-NEXT:    kshiftrw $10, %k5, %k5
1905 ; KNL-NEXT:    korw %k0, %k5, %k0
1906 ; KNL-NEXT:    kshiftrw $7, %k0, %k5
1907 ; KNL-NEXT:    kshiftlw $7, %k5, %k5
1908 ; KNL-NEXT:    kshiftlw $10, %k0, %k0
1909 ; KNL-NEXT:    kshiftrw $10, %k0, %k0
1910 ; KNL-NEXT:    korw %k5, %k0, %k0
1911 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1912 ; KNL-NEXT:    kmovw %edi, %k5
1913 ; KNL-NEXT:    kshiftlw $15, %k5, %k5
1914 ; KNL-NEXT:    kshiftrw $9, %k5, %k5
1915 ; KNL-NEXT:    korw %k0, %k5, %k5
1916 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1917 ; KNL-NEXT:    kmovw %edi, %k0
1918 ; KNL-NEXT:    kshiftlw $15, %k0, %k0
1919 ; KNL-NEXT:    kshiftrw $15, %k0, %k0
1920 ; KNL-NEXT:    korw %k1, %k0, %k0
1921 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1922 ; KNL-NEXT:    kmovw %edi, %k6
1923 ; KNL-NEXT:    kshiftlw $15, %k6, %k6
1924 ; KNL-NEXT:    kshiftrw $14, %k6, %k6
1925 ; KNL-NEXT:    korw %k0, %k6, %k0
1926 ; KNL-NEXT:    kshiftrw $3, %k0, %k6
1927 ; KNL-NEXT:    kshiftlw $3, %k6, %k6
1928 ; KNL-NEXT:    kshiftlw $14, %k0, %k0
1929 ; KNL-NEXT:    kshiftrw $14, %k0, %k0
1930 ; KNL-NEXT:    korw %k6, %k0, %k0
1931 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1932 ; KNL-NEXT:    kmovw %edi, %k6
1933 ; KNL-NEXT:    kshiftlw $15, %k6, %k6
1934 ; KNL-NEXT:    kshiftrw $13, %k6, %k6
1935 ; KNL-NEXT:    korw %k0, %k6, %k0
1936 ; KNL-NEXT:    kshiftrw $4, %k0, %k6
1937 ; KNL-NEXT:    kshiftlw $4, %k6, %k6
1938 ; KNL-NEXT:    kshiftlw $13, %k0, %k0
1939 ; KNL-NEXT:    kshiftrw $13, %k0, %k0
1940 ; KNL-NEXT:    korw %k6, %k0, %k0
1941 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1942 ; KNL-NEXT:    kmovw %edi, %k6
1943 ; KNL-NEXT:    kshiftlw $15, %k6, %k6
1944 ; KNL-NEXT:    kshiftrw $12, %k6, %k6
1945 ; KNL-NEXT:    korw %k0, %k6, %k0
1946 ; KNL-NEXT:    kshiftrw $5, %k0, %k6
1947 ; KNL-NEXT:    kshiftlw $5, %k6, %k6
1948 ; KNL-NEXT:    kshiftlw $12, %k0, %k0
1949 ; KNL-NEXT:    kshiftrw $12, %k0, %k0
1950 ; KNL-NEXT:    korw %k6, %k0, %k0
1951 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1952 ; KNL-NEXT:    kmovw %edi, %k6
1953 ; KNL-NEXT:    kshiftlw $15, %k6, %k6
1954 ; KNL-NEXT:    kshiftrw $11, %k6, %k6
1955 ; KNL-NEXT:    korw %k0, %k6, %k0
1956 ; KNL-NEXT:    kshiftrw $6, %k0, %k6
1957 ; KNL-NEXT:    kshiftlw $6, %k6, %k6
1958 ; KNL-NEXT:    kshiftlw $11, %k0, %k0
1959 ; KNL-NEXT:    kshiftrw $11, %k0, %k0
1960 ; KNL-NEXT:    korw %k6, %k0, %k0
1961 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1962 ; KNL-NEXT:    kmovw %edi, %k6
1963 ; KNL-NEXT:    kshiftlw $15, %k6, %k6
1964 ; KNL-NEXT:    kshiftrw $10, %k6, %k6
1965 ; KNL-NEXT:    korw %k0, %k6, %k0
1966 ; KNL-NEXT:    kshiftrw $7, %k0, %k6
1967 ; KNL-NEXT:    kshiftlw $7, %k6, %k6
1968 ; KNL-NEXT:    kshiftlw $10, %k0, %k0
1969 ; KNL-NEXT:    kshiftrw $10, %k0, %k0
1970 ; KNL-NEXT:    korw %k6, %k0, %k0
1971 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1972 ; KNL-NEXT:    kmovw %edi, %k6
1973 ; KNL-NEXT:    kshiftlw $15, %k6, %k6
1974 ; KNL-NEXT:    kshiftrw $9, %k6, %k6
1975 ; KNL-NEXT:    korw %k0, %k6, %k6
1976 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1977 ; KNL-NEXT:    kmovw %edi, %k0
1978 ; KNL-NEXT:    kshiftlw $15, %k0, %k0
1979 ; KNL-NEXT:    kshiftrw $15, %k0, %k0
1980 ; KNL-NEXT:    korw %k1, %k0, %k0
1981 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1982 ; KNL-NEXT:    kmovw %edi, %k7
1983 ; KNL-NEXT:    kshiftlw $15, %k7, %k7
1984 ; KNL-NEXT:    kshiftrw $14, %k7, %k7
1985 ; KNL-NEXT:    korw %k0, %k7, %k0
1986 ; KNL-NEXT:    kshiftrw $3, %k0, %k7
1987 ; KNL-NEXT:    kshiftlw $3, %k7, %k7
1988 ; KNL-NEXT:    kshiftlw $14, %k0, %k0
1989 ; KNL-NEXT:    kshiftrw $14, %k0, %k0
1990 ; KNL-NEXT:    korw %k7, %k0, %k0
1991 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
1992 ; KNL-NEXT:    kmovw %edi, %k7
1993 ; KNL-NEXT:    kshiftlw $15, %k7, %k7
1994 ; KNL-NEXT:    kshiftrw $13, %k7, %k7
1995 ; KNL-NEXT:    korw %k0, %k7, %k0
1996 ; KNL-NEXT:    kshiftrw $4, %k0, %k7
1997 ; KNL-NEXT:    kshiftlw $4, %k7, %k7
1998 ; KNL-NEXT:    kshiftlw $13, %k0, %k0
1999 ; KNL-NEXT:    kshiftrw $13, %k0, %k0
2000 ; KNL-NEXT:    korw %k7, %k0, %k0
2001 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
2002 ; KNL-NEXT:    kmovw %edi, %k7
2003 ; KNL-NEXT:    kshiftlw $15, %k7, %k7
2004 ; KNL-NEXT:    kshiftrw $12, %k7, %k7
2005 ; KNL-NEXT:    korw %k0, %k7, %k0
2006 ; KNL-NEXT:    kshiftrw $5, %k0, %k7
2007 ; KNL-NEXT:    kshiftlw $5, %k7, %k7
2008 ; KNL-NEXT:    kshiftlw $12, %k0, %k0
2009 ; KNL-NEXT:    kshiftrw $12, %k0, %k0
2010 ; KNL-NEXT:    korw %k7, %k0, %k0
2011 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
2012 ; KNL-NEXT:    kmovw %edi, %k7
2013 ; KNL-NEXT:    kshiftlw $15, %k7, %k7
2014 ; KNL-NEXT:    kshiftrw $11, %k7, %k7
2015 ; KNL-NEXT:    korw %k0, %k7, %k0
2016 ; KNL-NEXT:    kshiftrw $6, %k0, %k7
2017 ; KNL-NEXT:    kshiftlw $6, %k7, %k7
2018 ; KNL-NEXT:    kshiftlw $11, %k0, %k0
2019 ; KNL-NEXT:    kshiftrw $11, %k0, %k0
2020 ; KNL-NEXT:    korw %k7, %k0, %k0
2021 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
2022 ; KNL-NEXT:    kmovw %edi, %k7
2023 ; KNL-NEXT:    kshiftlw $15, %k7, %k7
2024 ; KNL-NEXT:    kshiftrw $10, %k7, %k7
2025 ; KNL-NEXT:    korw %k0, %k7, %k0
2026 ; KNL-NEXT:    kshiftrw $7, %k0, %k7
2027 ; KNL-NEXT:    kshiftlw $7, %k7, %k7
2028 ; KNL-NEXT:    kshiftlw $10, %k0, %k0
2029 ; KNL-NEXT:    kshiftrw $10, %k0, %k0
2030 ; KNL-NEXT:    korw %k7, %k0, %k0
2031 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %dil
2032 ; KNL-NEXT:    kmovw %edi, %k7
2033 ; KNL-NEXT:    kshiftlw $15, %k7, %k7
2034 ; KNL-NEXT:    kshiftrw $9, %k7, %k7
2035 ; KNL-NEXT:    korw %k0, %k7, %k7
2036 ; KNL-NEXT:    kmovw %esi, %k0
2037 ; KNL-NEXT:    kshiftlw $15, %k0, %k0
2038 ; KNL-NEXT:    kshiftrw $15, %k0, %k0
2039 ; KNL-NEXT:    korw %k1, %k0, %k0
2040 ; KNL-NEXT:    kmovw %edx, %k2
2041 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2042 ; KNL-NEXT:    kshiftrw $14, %k2, %k2
2043 ; KNL-NEXT:    korw %k0, %k2, %k0
2044 ; KNL-NEXT:    kshiftrw $3, %k0, %k2
2045 ; KNL-NEXT:    kshiftlw $3, %k2, %k2
2046 ; KNL-NEXT:    kshiftlw $14, %k0, %k0
2047 ; KNL-NEXT:    kshiftrw $14, %k0, %k0
2048 ; KNL-NEXT:    korw %k2, %k0, %k0
2049 ; KNL-NEXT:    kmovw %ecx, %k2
2050 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2051 ; KNL-NEXT:    kshiftrw $13, %k2, %k2
2052 ; KNL-NEXT:    korw %k0, %k2, %k0
2053 ; KNL-NEXT:    kshiftrw $4, %k0, %k2
2054 ; KNL-NEXT:    kshiftlw $4, %k2, %k2
2055 ; KNL-NEXT:    kshiftlw $13, %k0, %k0
2056 ; KNL-NEXT:    kshiftrw $13, %k0, %k0
2057 ; KNL-NEXT:    korw %k2, %k0, %k0
2058 ; KNL-NEXT:    kmovw %r8d, %k2
2059 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2060 ; KNL-NEXT:    kshiftrw $12, %k2, %k2
2061 ; KNL-NEXT:    korw %k0, %k2, %k0
2062 ; KNL-NEXT:    kshiftrw $5, %k0, %k2
2063 ; KNL-NEXT:    kshiftlw $5, %k2, %k2
2064 ; KNL-NEXT:    kshiftlw $12, %k0, %k0
2065 ; KNL-NEXT:    kshiftrw $12, %k0, %k0
2066 ; KNL-NEXT:    korw %k2, %k0, %k0
2067 ; KNL-NEXT:    kmovw %r9d, %k2
2068 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2069 ; KNL-NEXT:    kshiftrw $11, %k2, %k2
2070 ; KNL-NEXT:    korw %k0, %k2, %k0
2071 ; KNL-NEXT:    kshiftrw $6, %k0, %k2
2072 ; KNL-NEXT:    kshiftlw $6, %k2, %k2
2073 ; KNL-NEXT:    kshiftlw $11, %k0, %k0
2074 ; KNL-NEXT:    kshiftrw $11, %k0, %k0
2075 ; KNL-NEXT:    korw %k2, %k0, %k0
2076 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
2077 ; KNL-NEXT:    kmovw %ecx, %k2
2078 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2079 ; KNL-NEXT:    kshiftrw $10, %k2, %k2
2080 ; KNL-NEXT:    korw %k0, %k2, %k0
2081 ; KNL-NEXT:    kshiftrw $7, %k0, %k2
2082 ; KNL-NEXT:    kshiftlw $7, %k2, %k2
2083 ; KNL-NEXT:    kshiftlw $10, %k0, %k0
2084 ; KNL-NEXT:    kshiftrw $10, %k0, %k0
2085 ; KNL-NEXT:    korw %k2, %k0, %k0
2086 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
2087 ; KNL-NEXT:    kmovw %ecx, %k2
2088 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2089 ; KNL-NEXT:    kshiftrw $9, %k2, %k2
2090 ; KNL-NEXT:    korw %k0, %k2, %k0
2091 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
2092 ; KNL-NEXT:    kmovw %ecx, %k2
2093 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2094 ; KNL-NEXT:    kshiftrw $15, %k2, %k2
2095 ; KNL-NEXT:    korw %k1, %k2, %k1
2096 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
2097 ; KNL-NEXT:    kmovw %ecx, %k2
2098 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2099 ; KNL-NEXT:    kshiftrw $14, %k2, %k2
2100 ; KNL-NEXT:    korw %k1, %k2, %k1
2101 ; KNL-NEXT:    kshiftrw $3, %k1, %k2
2102 ; KNL-NEXT:    kshiftlw $3, %k2, %k2
2103 ; KNL-NEXT:    kshiftlw $14, %k1, %k1
2104 ; KNL-NEXT:    kshiftrw $14, %k1, %k1
2105 ; KNL-NEXT:    korw %k2, %k1, %k1
2106 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
2107 ; KNL-NEXT:    kmovw %ecx, %k2
2108 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2109 ; KNL-NEXT:    kshiftrw $13, %k2, %k2
2110 ; KNL-NEXT:    korw %k1, %k2, %k1
2111 ; KNL-NEXT:    kshiftrw $4, %k1, %k2
2112 ; KNL-NEXT:    kshiftlw $4, %k2, %k2
2113 ; KNL-NEXT:    kshiftlw $13, %k1, %k1
2114 ; KNL-NEXT:    kshiftrw $13, %k1, %k1
2115 ; KNL-NEXT:    korw %k2, %k1, %k1
2116 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
2117 ; KNL-NEXT:    kmovw %ecx, %k2
2118 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2119 ; KNL-NEXT:    kshiftrw $12, %k2, %k2
2120 ; KNL-NEXT:    korw %k1, %k2, %k1
2121 ; KNL-NEXT:    kshiftrw $5, %k1, %k2
2122 ; KNL-NEXT:    kshiftlw $5, %k2, %k2
2123 ; KNL-NEXT:    kshiftlw $12, %k1, %k1
2124 ; KNL-NEXT:    kshiftrw $12, %k1, %k1
2125 ; KNL-NEXT:    korw %k2, %k1, %k1
2126 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
2127 ; KNL-NEXT:    kmovw %ecx, %k2
2128 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2129 ; KNL-NEXT:    kshiftrw $11, %k2, %k2
2130 ; KNL-NEXT:    korw %k1, %k2, %k1
2131 ; KNL-NEXT:    kshiftrw $6, %k1, %k2
2132 ; KNL-NEXT:    kshiftlw $6, %k2, %k2
2133 ; KNL-NEXT:    kshiftlw $11, %k1, %k1
2134 ; KNL-NEXT:    kshiftrw $11, %k1, %k1
2135 ; KNL-NEXT:    korw %k2, %k1, %k1
2136 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
2137 ; KNL-NEXT:    kmovw %ecx, %k2
2138 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2139 ; KNL-NEXT:    kshiftrw $10, %k2, %k2
2140 ; KNL-NEXT:    korw %k1, %k2, %k1
2141 ; KNL-NEXT:    kshiftrw $7, %k1, %k2
2142 ; KNL-NEXT:    kshiftlw $7, %k2, %k2
2143 ; KNL-NEXT:    kshiftlw $10, %k1, %k1
2144 ; KNL-NEXT:    kshiftrw $10, %k1, %k1
2145 ; KNL-NEXT:    korw %k2, %k1, %k1
2146 ; KNL-NEXT:    movb {{[0-9]+}}(%rsp), %cl
2147 ; KNL-NEXT:    kmovw %ecx, %k2
2148 ; KNL-NEXT:    kshiftlw $15, %k2, %k2
2149 ; KNL-NEXT:    kshiftrw $9, %k2, %k2
2150 ; KNL-NEXT:    korw %k1, %k2, %k1
2151 ; KNL-NEXT:    kandw %k1, %k0, %k0
2152 ; KNL-NEXT:    kandw %k7, %k0, %k0
2153 ; KNL-NEXT:    kandw %k6, %k0, %k0
2154 ; KNL-NEXT:    kandw %k5, %k0, %k0
2155 ; KNL-NEXT:    kandw %k4, %k0, %k0
2156 ; KNL-NEXT:    kandw %k3, %k0, %k0
2157 ; KNL-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 2-byte Reload
2158 ; KNL-NEXT:    kandw %k1, %k0, %k0
2159 ; KNL-NEXT:    kmovw {{[-0-9]+}}(%r{{[sb]}}p), %k1 ## 2-byte Reload
2160 ; KNL-NEXT:    kandw %k1, %k0, %k0
2161 ; KNL-NEXT:    kshiftrw $6, %k0, %k1
2162 ; KNL-NEXT:    kmovw %k1, %r8d
2163 ; KNL-NEXT:    kshiftrw $5, %k0, %k1
2164 ; KNL-NEXT:    kmovw %k1, %r9d
2165 ; KNL-NEXT:    kshiftrw $4, %k0, %k1
2166 ; KNL-NEXT:    kmovw %k1, %r10d
2167 ; KNL-NEXT:    kshiftrw $3, %k0, %k1
2168 ; KNL-NEXT:    kmovw %k1, %edi
2169 ; KNL-NEXT:    kshiftrw $2, %k0, %k1
2170 ; KNL-NEXT:    kmovw %k1, %ecx
2171 ; KNL-NEXT:    kshiftrw $1, %k0, %k1
2172 ; KNL-NEXT:    kmovw %k1, %edx
2173 ; KNL-NEXT:    kmovw %k0, %esi
2174 ; KNL-NEXT:    andb $1, %sil
2175 ; KNL-NEXT:    andb $1, %dl
2176 ; KNL-NEXT:    addb %dl, %dl
2177 ; KNL-NEXT:    orb %sil, %dl
2178 ; KNL-NEXT:    andb $1, %cl
2179 ; KNL-NEXT:    shlb $2, %cl
2180 ; KNL-NEXT:    orb %dl, %cl
2181 ; KNL-NEXT:    andb $1, %dil
2182 ; KNL-NEXT:    shlb $3, %dil
2183 ; KNL-NEXT:    orb %cl, %dil
2184 ; KNL-NEXT:    andb $1, %r10b
2185 ; KNL-NEXT:    shlb $4, %r10b
2186 ; KNL-NEXT:    orb %dil, %r10b
2187 ; KNL-NEXT:    andb $1, %r9b
2188 ; KNL-NEXT:    shlb $5, %r9b
2189 ; KNL-NEXT:    orb %r10b, %r9b
2190 ; KNL-NEXT:    shlb $6, %r8b
2191 ; KNL-NEXT:    orb %r9b, %r8b
2192 ; KNL-NEXT:    andb $127, %r8b
2193 ; KNL-NEXT:    movb %r8b, (%rax)
2194 ; KNL-NEXT:    retq
2196 ; SKX-LABEL: test17:
2197 ; SKX:       ## %bb.0:
2198 ; SKX-NEXT:    movq %rdi, %rax
2199 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k0
2200 ; SKX-NEXT:    kshiftlb $7, %k0, %k0
2201 ; SKX-NEXT:    kshiftrb $7, %k0, %k1
2202 ; SKX-NEXT:    kshiftlb $2, %k0, %k0
2203 ; SKX-NEXT:    korb %k0, %k1, %k1
2204 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
2205 ; SKX-NEXT:    kshiftlb $7, %k2, %k2
2206 ; SKX-NEXT:    kshiftrb $6, %k2, %k2
2207 ; SKX-NEXT:    korb %k1, %k2, %k1
2208 ; SKX-NEXT:    kshiftrb $3, %k1, %k2
2209 ; SKX-NEXT:    kshiftlb $3, %k2, %k2
2210 ; SKX-NEXT:    kshiftlb $6, %k1, %k1
2211 ; SKX-NEXT:    kshiftrb $6, %k1, %k1
2212 ; SKX-NEXT:    korb %k2, %k1, %k1
2213 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
2214 ; SKX-NEXT:    kshiftlb $7, %k2, %k2
2215 ; SKX-NEXT:    kshiftrb $5, %k2, %k2
2216 ; SKX-NEXT:    korb %k1, %k2, %k1
2217 ; SKX-NEXT:    kshiftrb $4, %k1, %k2
2218 ; SKX-NEXT:    kshiftlb $4, %k2, %k2
2219 ; SKX-NEXT:    kshiftlb $5, %k1, %k1
2220 ; SKX-NEXT:    kshiftrb $5, %k1, %k1
2221 ; SKX-NEXT:    korb %k2, %k1, %k1
2222 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
2223 ; SKX-NEXT:    kshiftlb $7, %k2, %k2
2224 ; SKX-NEXT:    kshiftrb $4, %k2, %k2
2225 ; SKX-NEXT:    korb %k1, %k2, %k1
2226 ; SKX-NEXT:    kshiftrb $5, %k1, %k2
2227 ; SKX-NEXT:    kshiftlb $5, %k2, %k2
2228 ; SKX-NEXT:    kshiftlb $4, %k1, %k1
2229 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
2230 ; SKX-NEXT:    kshiftrb $4, %k1, %k1
2231 ; SKX-NEXT:    korb %k2, %k1, %k1
2232 ; SKX-NEXT:    kshiftlb $7, %k3, %k2
2233 ; SKX-NEXT:    kshiftrb $3, %k2, %k2
2234 ; SKX-NEXT:    korb %k1, %k2, %k1
2235 ; SKX-NEXT:    kshiftrb $6, %k1, %k2
2236 ; SKX-NEXT:    kshiftlb $6, %k2, %k2
2237 ; SKX-NEXT:    kshiftlb $3, %k1, %k1
2238 ; SKX-NEXT:    kshiftrb $3, %k1, %k1
2239 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
2240 ; SKX-NEXT:    korb %k2, %k1, %k1
2241 ; SKX-NEXT:    kshiftlb $7, %k3, %k2
2242 ; SKX-NEXT:    kshiftrb $2, %k2, %k2
2243 ; SKX-NEXT:    korb %k1, %k2, %k1
2244 ; SKX-NEXT:    kshiftrb $7, %k1, %k2
2245 ; SKX-NEXT:    kshiftlb $7, %k2, %k2
2246 ; SKX-NEXT:    kshiftlb $2, %k1, %k1
2247 ; SKX-NEXT:    kshiftrb $2, %k1, %k1
2248 ; SKX-NEXT:    korb %k2, %k1, %k1
2249 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
2250 ; SKX-NEXT:    kshiftlb $7, %k2, %k2
2251 ; SKX-NEXT:    kshiftrb $1, %k2, %k2
2252 ; SKX-NEXT:    korb %k1, %k2, %k1
2253 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k2
2254 ; SKX-NEXT:    kshiftlb $7, %k2, %k2
2255 ; SKX-NEXT:    kshiftrb $7, %k2, %k2
2256 ; SKX-NEXT:    korb %k0, %k2, %k2
2257 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
2258 ; SKX-NEXT:    kshiftlb $7, %k3, %k3
2259 ; SKX-NEXT:    kshiftrb $6, %k3, %k3
2260 ; SKX-NEXT:    korb %k2, %k3, %k2
2261 ; SKX-NEXT:    kshiftrb $3, %k2, %k3
2262 ; SKX-NEXT:    kshiftlb $3, %k3, %k3
2263 ; SKX-NEXT:    kshiftlb $6, %k2, %k2
2264 ; SKX-NEXT:    kshiftrb $6, %k2, %k2
2265 ; SKX-NEXT:    korb %k3, %k2, %k2
2266 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
2267 ; SKX-NEXT:    kshiftlb $7, %k3, %k3
2268 ; SKX-NEXT:    kshiftrb $5, %k3, %k3
2269 ; SKX-NEXT:    korb %k2, %k3, %k2
2270 ; SKX-NEXT:    kshiftrb $4, %k2, %k3
2271 ; SKX-NEXT:    kshiftlb $4, %k3, %k3
2272 ; SKX-NEXT:    kshiftlb $5, %k2, %k2
2273 ; SKX-NEXT:    kshiftrb $5, %k2, %k2
2274 ; SKX-NEXT:    korb %k3, %k2, %k2
2275 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
2276 ; SKX-NEXT:    kshiftlb $7, %k3, %k3
2277 ; SKX-NEXT:    kshiftrb $4, %k3, %k3
2278 ; SKX-NEXT:    korb %k2, %k3, %k2
2279 ; SKX-NEXT:    kshiftrb $5, %k2, %k3
2280 ; SKX-NEXT:    kshiftlb $5, %k3, %k3
2281 ; SKX-NEXT:    kshiftlb $4, %k2, %k2
2282 ; SKX-NEXT:    kshiftrb $4, %k2, %k2
2283 ; SKX-NEXT:    korb %k3, %k2, %k2
2284 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
2285 ; SKX-NEXT:    kshiftlb $7, %k3, %k3
2286 ; SKX-NEXT:    kshiftrb $3, %k3, %k3
2287 ; SKX-NEXT:    korb %k2, %k3, %k2
2288 ; SKX-NEXT:    kshiftrb $6, %k2, %k3
2289 ; SKX-NEXT:    kshiftlb $6, %k3, %k3
2290 ; SKX-NEXT:    kshiftlb $3, %k2, %k2
2291 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2292 ; SKX-NEXT:    kshiftrb $3, %k2, %k2
2293 ; SKX-NEXT:    korb %k3, %k2, %k2
2294 ; SKX-NEXT:    kshiftlb $7, %k4, %k3
2295 ; SKX-NEXT:    kshiftrb $2, %k3, %k3
2296 ; SKX-NEXT:    korb %k2, %k3, %k2
2297 ; SKX-NEXT:    kshiftrb $7, %k2, %k3
2298 ; SKX-NEXT:    kshiftlb $7, %k3, %k3
2299 ; SKX-NEXT:    kshiftlb $2, %k2, %k2
2300 ; SKX-NEXT:    kshiftrb $2, %k2, %k2
2301 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2302 ; SKX-NEXT:    korb %k3, %k2, %k2
2303 ; SKX-NEXT:    kshiftlb $7, %k4, %k3
2304 ; SKX-NEXT:    kshiftrb $1, %k3, %k3
2305 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2306 ; SKX-NEXT:    korb %k2, %k3, %k2
2307 ; SKX-NEXT:    kandb %k1, %k2, %k1
2308 ; SKX-NEXT:    kshiftlb $7, %k4, %k2
2309 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
2310 ; SKX-NEXT:    kshiftrb $7, %k2, %k2
2311 ; SKX-NEXT:    korb %k0, %k2, %k2
2312 ; SKX-NEXT:    kshiftlb $7, %k3, %k3
2313 ; SKX-NEXT:    kshiftrb $6, %k3, %k3
2314 ; SKX-NEXT:    korb %k2, %k3, %k2
2315 ; SKX-NEXT:    kshiftrb $3, %k2, %k3
2316 ; SKX-NEXT:    kshiftlb $3, %k3, %k3
2317 ; SKX-NEXT:    kshiftlb $6, %k2, %k2
2318 ; SKX-NEXT:    kshiftrb $6, %k2, %k2
2319 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2320 ; SKX-NEXT:    korb %k3, %k2, %k2
2321 ; SKX-NEXT:    kshiftlb $7, %k4, %k3
2322 ; SKX-NEXT:    kshiftrb $5, %k3, %k3
2323 ; SKX-NEXT:    korb %k2, %k3, %k2
2324 ; SKX-NEXT:    kshiftrb $4, %k2, %k3
2325 ; SKX-NEXT:    kshiftlb $4, %k3, %k3
2326 ; SKX-NEXT:    kshiftlb $5, %k2, %k2
2327 ; SKX-NEXT:    kshiftrb $5, %k2, %k2
2328 ; SKX-NEXT:    korb %k3, %k2, %k2
2329 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
2330 ; SKX-NEXT:    kshiftlb $7, %k3, %k3
2331 ; SKX-NEXT:    kshiftrb $4, %k3, %k3
2332 ; SKX-NEXT:    korb %k2, %k3, %k2
2333 ; SKX-NEXT:    kshiftrb $5, %k2, %k3
2334 ; SKX-NEXT:    kshiftlb $5, %k3, %k3
2335 ; SKX-NEXT:    kshiftlb $4, %k2, %k2
2336 ; SKX-NEXT:    kshiftrb $4, %k2, %k2
2337 ; SKX-NEXT:    korb %k3, %k2, %k2
2338 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
2339 ; SKX-NEXT:    kshiftlb $7, %k3, %k3
2340 ; SKX-NEXT:    kshiftrb $3, %k3, %k3
2341 ; SKX-NEXT:    korb %k2, %k3, %k2
2342 ; SKX-NEXT:    kshiftrb $6, %k2, %k3
2343 ; SKX-NEXT:    kshiftlb $6, %k3, %k3
2344 ; SKX-NEXT:    kshiftlb $3, %k2, %k2
2345 ; SKX-NEXT:    kshiftrb $3, %k2, %k2
2346 ; SKX-NEXT:    korb %k3, %k2, %k2
2347 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
2348 ; SKX-NEXT:    kshiftlb $7, %k3, %k3
2349 ; SKX-NEXT:    kshiftrb $2, %k3, %k3
2350 ; SKX-NEXT:    korb %k2, %k3, %k2
2351 ; SKX-NEXT:    kshiftrb $7, %k2, %k3
2352 ; SKX-NEXT:    kshiftlb $7, %k3, %k3
2353 ; SKX-NEXT:    kshiftlb $2, %k2, %k2
2354 ; SKX-NEXT:    kshiftrb $2, %k2, %k2
2355 ; SKX-NEXT:    korb %k3, %k2, %k2
2356 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
2357 ; SKX-NEXT:    kshiftlb $7, %k3, %k3
2358 ; SKX-NEXT:    kshiftrb $1, %k3, %k3
2359 ; SKX-NEXT:    korb %k2, %k3, %k2
2360 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k3
2361 ; SKX-NEXT:    kshiftlb $7, %k3, %k3
2362 ; SKX-NEXT:    kshiftrb $7, %k3, %k3
2363 ; SKX-NEXT:    korb %k0, %k3, %k3
2364 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2365 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2366 ; SKX-NEXT:    kshiftrb $6, %k4, %k4
2367 ; SKX-NEXT:    korb %k3, %k4, %k3
2368 ; SKX-NEXT:    kshiftrb $3, %k3, %k4
2369 ; SKX-NEXT:    kshiftlb $3, %k4, %k4
2370 ; SKX-NEXT:    kshiftlb $6, %k3, %k3
2371 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2372 ; SKX-NEXT:    kshiftrb $6, %k3, %k3
2373 ; SKX-NEXT:    korb %k4, %k3, %k3
2374 ; SKX-NEXT:    kshiftlb $7, %k5, %k4
2375 ; SKX-NEXT:    kshiftrb $5, %k4, %k4
2376 ; SKX-NEXT:    korb %k3, %k4, %k3
2377 ; SKX-NEXT:    kshiftrb $4, %k3, %k4
2378 ; SKX-NEXT:    kshiftlb $4, %k4, %k4
2379 ; SKX-NEXT:    kshiftlb $5, %k3, %k3
2380 ; SKX-NEXT:    kshiftrb $5, %k3, %k3
2381 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2382 ; SKX-NEXT:    korb %k4, %k3, %k3
2383 ; SKX-NEXT:    kshiftlb $7, %k5, %k4
2384 ; SKX-NEXT:    kshiftrb $4, %k4, %k4
2385 ; SKX-NEXT:    korb %k3, %k4, %k3
2386 ; SKX-NEXT:    kshiftrb $5, %k3, %k4
2387 ; SKX-NEXT:    kshiftlb $5, %k4, %k4
2388 ; SKX-NEXT:    kshiftlb $4, %k3, %k3
2389 ; SKX-NEXT:    kshiftrb $4, %k3, %k3
2390 ; SKX-NEXT:    korb %k4, %k3, %k3
2391 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2392 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2393 ; SKX-NEXT:    kshiftrb $3, %k4, %k4
2394 ; SKX-NEXT:    korb %k3, %k4, %k3
2395 ; SKX-NEXT:    kshiftrb $6, %k3, %k4
2396 ; SKX-NEXT:    kshiftlb $6, %k4, %k4
2397 ; SKX-NEXT:    kshiftlb $3, %k3, %k3
2398 ; SKX-NEXT:    kshiftrb $3, %k3, %k3
2399 ; SKX-NEXT:    korb %k4, %k3, %k3
2400 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2401 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2402 ; SKX-NEXT:    kshiftrb $2, %k4, %k4
2403 ; SKX-NEXT:    korb %k3, %k4, %k3
2404 ; SKX-NEXT:    kshiftrb $7, %k3, %k4
2405 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2406 ; SKX-NEXT:    kshiftlb $2, %k3, %k3
2407 ; SKX-NEXT:    kshiftrb $2, %k3, %k3
2408 ; SKX-NEXT:    korb %k4, %k3, %k3
2409 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2410 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2411 ; SKX-NEXT:    kshiftrb $1, %k4, %k4
2412 ; SKX-NEXT:    korb %k3, %k4, %k3
2413 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2414 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2415 ; SKX-NEXT:    kshiftrb $7, %k4, %k4
2416 ; SKX-NEXT:    korb %k0, %k4, %k4
2417 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2418 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2419 ; SKX-NEXT:    kshiftrb $6, %k5, %k5
2420 ; SKX-NEXT:    korb %k4, %k5, %k4
2421 ; SKX-NEXT:    kshiftrb $3, %k4, %k5
2422 ; SKX-NEXT:    kshiftlb $3, %k5, %k5
2423 ; SKX-NEXT:    kshiftlb $6, %k4, %k4
2424 ; SKX-NEXT:    kshiftrb $6, %k4, %k4
2425 ; SKX-NEXT:    korb %k5, %k4, %k4
2426 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2427 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2428 ; SKX-NEXT:    kshiftrb $5, %k5, %k5
2429 ; SKX-NEXT:    korb %k4, %k5, %k4
2430 ; SKX-NEXT:    kshiftrb $4, %k4, %k5
2431 ; SKX-NEXT:    kshiftlb $4, %k5, %k5
2432 ; SKX-NEXT:    kshiftlb $5, %k4, %k4
2433 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k6
2434 ; SKX-NEXT:    kshiftrb $5, %k4, %k4
2435 ; SKX-NEXT:    korb %k5, %k4, %k4
2436 ; SKX-NEXT:    kshiftlb $7, %k6, %k5
2437 ; SKX-NEXT:    kshiftrb $4, %k5, %k5
2438 ; SKX-NEXT:    korb %k4, %k5, %k4
2439 ; SKX-NEXT:    kshiftrb $5, %k4, %k5
2440 ; SKX-NEXT:    kshiftlb $5, %k5, %k5
2441 ; SKX-NEXT:    kshiftlb $4, %k4, %k4
2442 ; SKX-NEXT:    kshiftrb $4, %k4, %k4
2443 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k6
2444 ; SKX-NEXT:    korb %k5, %k4, %k4
2445 ; SKX-NEXT:    kshiftlb $7, %k6, %k5
2446 ; SKX-NEXT:    kshiftrb $3, %k5, %k5
2447 ; SKX-NEXT:    korb %k4, %k5, %k4
2448 ; SKX-NEXT:    kshiftrb $6, %k4, %k5
2449 ; SKX-NEXT:    kshiftlb $6, %k5, %k5
2450 ; SKX-NEXT:    kshiftlb $3, %k4, %k4
2451 ; SKX-NEXT:    kshiftrb $3, %k4, %k4
2452 ; SKX-NEXT:    korb %k5, %k4, %k4
2453 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2454 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2455 ; SKX-NEXT:    kshiftrb $2, %k5, %k5
2456 ; SKX-NEXT:    korb %k4, %k5, %k4
2457 ; SKX-NEXT:    kshiftrb $7, %k4, %k5
2458 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2459 ; SKX-NEXT:    kshiftlb $2, %k4, %k4
2460 ; SKX-NEXT:    kshiftrb $2, %k4, %k4
2461 ; SKX-NEXT:    korb %k5, %k4, %k4
2462 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2463 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2464 ; SKX-NEXT:    kshiftrb $1, %k5, %k5
2465 ; SKX-NEXT:    korb %k4, %k5, %k4
2466 ; SKX-NEXT:    kandb %k3, %k4, %k3
2467 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2468 ; SKX-NEXT:    kandb %k2, %k3, %k2
2469 ; SKX-NEXT:    kshiftlb $7, %k4, %k3
2470 ; SKX-NEXT:    kshiftrb $7, %k3, %k3
2471 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2472 ; SKX-NEXT:    korb %k0, %k3, %k3
2473 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2474 ; SKX-NEXT:    kshiftrb $6, %k4, %k4
2475 ; SKX-NEXT:    korb %k3, %k4, %k3
2476 ; SKX-NEXT:    kshiftrb $3, %k3, %k4
2477 ; SKX-NEXT:    kshiftlb $3, %k4, %k4
2478 ; SKX-NEXT:    kshiftlb $6, %k3, %k3
2479 ; SKX-NEXT:    kshiftrb $6, %k3, %k3
2480 ; SKX-NEXT:    korb %k4, %k3, %k3
2481 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2482 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2483 ; SKX-NEXT:    kshiftrb $5, %k4, %k4
2484 ; SKX-NEXT:    korb %k3, %k4, %k3
2485 ; SKX-NEXT:    kshiftrb $4, %k3, %k4
2486 ; SKX-NEXT:    kshiftlb $4, %k4, %k4
2487 ; SKX-NEXT:    kshiftlb $5, %k3, %k3
2488 ; SKX-NEXT:    kshiftrb $5, %k3, %k3
2489 ; SKX-NEXT:    korb %k4, %k3, %k3
2490 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2491 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2492 ; SKX-NEXT:    kshiftrb $4, %k4, %k4
2493 ; SKX-NEXT:    korb %k3, %k4, %k3
2494 ; SKX-NEXT:    kshiftrb $5, %k3, %k4
2495 ; SKX-NEXT:    kshiftlb $5, %k4, %k4
2496 ; SKX-NEXT:    kshiftlb $4, %k3, %k3
2497 ; SKX-NEXT:    kshiftrb $4, %k3, %k3
2498 ; SKX-NEXT:    korb %k4, %k3, %k3
2499 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2500 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2501 ; SKX-NEXT:    kshiftrb $3, %k4, %k4
2502 ; SKX-NEXT:    korb %k3, %k4, %k3
2503 ; SKX-NEXT:    kshiftrb $6, %k3, %k4
2504 ; SKX-NEXT:    kshiftlb $6, %k4, %k4
2505 ; SKX-NEXT:    kshiftlb $3, %k3, %k3
2506 ; SKX-NEXT:    kshiftrb $3, %k3, %k3
2507 ; SKX-NEXT:    korb %k4, %k3, %k3
2508 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2509 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2510 ; SKX-NEXT:    kshiftrb $2, %k4, %k4
2511 ; SKX-NEXT:    korb %k3, %k4, %k3
2512 ; SKX-NEXT:    kshiftrb $7, %k3, %k4
2513 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2514 ; SKX-NEXT:    kshiftlb $2, %k3, %k3
2515 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2516 ; SKX-NEXT:    kshiftrb $2, %k3, %k3
2517 ; SKX-NEXT:    korb %k4, %k3, %k3
2518 ; SKX-NEXT:    kshiftlb $7, %k5, %k4
2519 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2520 ; SKX-NEXT:    kshiftrb $1, %k4, %k4
2521 ; SKX-NEXT:    korb %k3, %k4, %k3
2522 ; SKX-NEXT:    kshiftlb $7, %k5, %k4
2523 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2524 ; SKX-NEXT:    kshiftrb $7, %k4, %k4
2525 ; SKX-NEXT:    korb %k0, %k4, %k4
2526 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2527 ; SKX-NEXT:    kshiftrb $6, %k5, %k5
2528 ; SKX-NEXT:    korb %k4, %k5, %k4
2529 ; SKX-NEXT:    kshiftrb $3, %k4, %k5
2530 ; SKX-NEXT:    kshiftlb $3, %k5, %k5
2531 ; SKX-NEXT:    kshiftlb $6, %k4, %k4
2532 ; SKX-NEXT:    kshiftrb $6, %k4, %k4
2533 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k6
2534 ; SKX-NEXT:    korb %k5, %k4, %k4
2535 ; SKX-NEXT:    kshiftlb $7, %k6, %k5
2536 ; SKX-NEXT:    kshiftrb $5, %k5, %k5
2537 ; SKX-NEXT:    korb %k4, %k5, %k4
2538 ; SKX-NEXT:    kshiftrb $4, %k4, %k5
2539 ; SKX-NEXT:    kshiftlb $4, %k5, %k5
2540 ; SKX-NEXT:    kshiftlb $5, %k4, %k4
2541 ; SKX-NEXT:    kshiftrb $5, %k4, %k4
2542 ; SKX-NEXT:    korb %k5, %k4, %k4
2543 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2544 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2545 ; SKX-NEXT:    kshiftrb $4, %k5, %k5
2546 ; SKX-NEXT:    korb %k4, %k5, %k4
2547 ; SKX-NEXT:    kshiftrb $5, %k4, %k5
2548 ; SKX-NEXT:    kshiftlb $5, %k5, %k5
2549 ; SKX-NEXT:    kshiftlb $4, %k4, %k4
2550 ; SKX-NEXT:    kshiftrb $4, %k4, %k4
2551 ; SKX-NEXT:    korb %k5, %k4, %k4
2552 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2553 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2554 ; SKX-NEXT:    kshiftrb $3, %k5, %k5
2555 ; SKX-NEXT:    korb %k4, %k5, %k4
2556 ; SKX-NEXT:    kshiftrb $6, %k4, %k5
2557 ; SKX-NEXT:    kshiftlb $6, %k5, %k5
2558 ; SKX-NEXT:    kshiftlb $3, %k4, %k4
2559 ; SKX-NEXT:    kshiftrb $3, %k4, %k4
2560 ; SKX-NEXT:    korb %k5, %k4, %k4
2561 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2562 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2563 ; SKX-NEXT:    kshiftrb $2, %k5, %k5
2564 ; SKX-NEXT:    korb %k4, %k5, %k4
2565 ; SKX-NEXT:    kshiftrb $7, %k4, %k5
2566 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2567 ; SKX-NEXT:    kshiftlb $2, %k4, %k4
2568 ; SKX-NEXT:    kshiftrb $2, %k4, %k4
2569 ; SKX-NEXT:    korb %k5, %k4, %k4
2570 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2571 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2572 ; SKX-NEXT:    kshiftrb $1, %k5, %k5
2573 ; SKX-NEXT:    korb %k4, %k5, %k4
2574 ; SKX-NEXT:    kandb %k3, %k4, %k3
2575 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k4
2576 ; SKX-NEXT:    kshiftlb $7, %k4, %k4
2577 ; SKX-NEXT:    kshiftrb $7, %k4, %k4
2578 ; SKX-NEXT:    korb %k0, %k4, %k4
2579 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2580 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2581 ; SKX-NEXT:    kshiftrb $6, %k5, %k5
2582 ; SKX-NEXT:    korb %k4, %k5, %k4
2583 ; SKX-NEXT:    kshiftrb $3, %k4, %k5
2584 ; SKX-NEXT:    kshiftlb $3, %k5, %k5
2585 ; SKX-NEXT:    kshiftlb $6, %k4, %k4
2586 ; SKX-NEXT:    kshiftrb $6, %k4, %k4
2587 ; SKX-NEXT:    korb %k5, %k4, %k4
2588 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2589 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2590 ; SKX-NEXT:    kshiftrb $5, %k5, %k5
2591 ; SKX-NEXT:    korb %k4, %k5, %k4
2592 ; SKX-NEXT:    kshiftrb $4, %k4, %k5
2593 ; SKX-NEXT:    kshiftlb $4, %k5, %k5
2594 ; SKX-NEXT:    kshiftlb $5, %k4, %k4
2595 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k6
2596 ; SKX-NEXT:    kshiftrb $5, %k4, %k4
2597 ; SKX-NEXT:    korb %k5, %k4, %k4
2598 ; SKX-NEXT:    kshiftlb $7, %k6, %k5
2599 ; SKX-NEXT:    kshiftrb $4, %k5, %k5
2600 ; SKX-NEXT:    korb %k4, %k5, %k4
2601 ; SKX-NEXT:    kshiftrb $5, %k4, %k5
2602 ; SKX-NEXT:    kshiftlb $5, %k5, %k5
2603 ; SKX-NEXT:    kshiftlb $4, %k4, %k4
2604 ; SKX-NEXT:    kshiftrb $4, %k4, %k4
2605 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k6
2606 ; SKX-NEXT:    korb %k5, %k4, %k4
2607 ; SKX-NEXT:    kshiftlb $7, %k6, %k5
2608 ; SKX-NEXT:    kshiftrb $3, %k5, %k5
2609 ; SKX-NEXT:    korb %k4, %k5, %k4
2610 ; SKX-NEXT:    kshiftrb $6, %k4, %k5
2611 ; SKX-NEXT:    kshiftlb $6, %k5, %k5
2612 ; SKX-NEXT:    kshiftlb $3, %k4, %k4
2613 ; SKX-NEXT:    kshiftrb $3, %k4, %k4
2614 ; SKX-NEXT:    korb %k5, %k4, %k4
2615 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2616 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2617 ; SKX-NEXT:    kshiftrb $2, %k5, %k5
2618 ; SKX-NEXT:    korb %k4, %k5, %k4
2619 ; SKX-NEXT:    kshiftrb $7, %k4, %k5
2620 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2621 ; SKX-NEXT:    kshiftlb $2, %k4, %k4
2622 ; SKX-NEXT:    kshiftrb $2, %k4, %k4
2623 ; SKX-NEXT:    korb %k5, %k4, %k4
2624 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2625 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2626 ; SKX-NEXT:    kshiftrb $1, %k5, %k5
2627 ; SKX-NEXT:    korb %k4, %k5, %k4
2628 ; SKX-NEXT:    kmovd %esi, %k5
2629 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2630 ; SKX-NEXT:    kshiftrb $7, %k5, %k5
2631 ; SKX-NEXT:    korb %k0, %k5, %k0
2632 ; SKX-NEXT:    kmovd %edx, %k5
2633 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2634 ; SKX-NEXT:    kshiftrb $6, %k5, %k5
2635 ; SKX-NEXT:    korb %k0, %k5, %k0
2636 ; SKX-NEXT:    kshiftrb $3, %k0, %k5
2637 ; SKX-NEXT:    kshiftlb $3, %k5, %k5
2638 ; SKX-NEXT:    kshiftlb $6, %k0, %k0
2639 ; SKX-NEXT:    kshiftrb $6, %k0, %k0
2640 ; SKX-NEXT:    korb %k5, %k0, %k0
2641 ; SKX-NEXT:    kmovd %ecx, %k5
2642 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2643 ; SKX-NEXT:    kshiftrb $5, %k5, %k5
2644 ; SKX-NEXT:    korb %k0, %k5, %k0
2645 ; SKX-NEXT:    kshiftrb $4, %k0, %k5
2646 ; SKX-NEXT:    kshiftlb $4, %k5, %k5
2647 ; SKX-NEXT:    kshiftlb $5, %k0, %k0
2648 ; SKX-NEXT:    kshiftrb $5, %k0, %k0
2649 ; SKX-NEXT:    korb %k5, %k0, %k0
2650 ; SKX-NEXT:    kmovd %r8d, %k5
2651 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2652 ; SKX-NEXT:    kshiftrb $4, %k5, %k5
2653 ; SKX-NEXT:    korb %k0, %k5, %k0
2654 ; SKX-NEXT:    kshiftrb $5, %k0, %k5
2655 ; SKX-NEXT:    kshiftlb $5, %k5, %k5
2656 ; SKX-NEXT:    kshiftlb $4, %k0, %k0
2657 ; SKX-NEXT:    kshiftrb $4, %k0, %k0
2658 ; SKX-NEXT:    korb %k5, %k0, %k0
2659 ; SKX-NEXT:    kmovd %r9d, %k5
2660 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2661 ; SKX-NEXT:    kshiftrb $3, %k5, %k5
2662 ; SKX-NEXT:    korb %k0, %k5, %k0
2663 ; SKX-NEXT:    kshiftrb $6, %k0, %k5
2664 ; SKX-NEXT:    kshiftlb $6, %k5, %k5
2665 ; SKX-NEXT:    kshiftlb $3, %k0, %k0
2666 ; SKX-NEXT:    kshiftrb $3, %k0, %k0
2667 ; SKX-NEXT:    korb %k5, %k0, %k0
2668 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2669 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2670 ; SKX-NEXT:    kshiftrb $2, %k5, %k5
2671 ; SKX-NEXT:    korb %k0, %k5, %k0
2672 ; SKX-NEXT:    kshiftrb $7, %k0, %k5
2673 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2674 ; SKX-NEXT:    kshiftlb $2, %k0, %k0
2675 ; SKX-NEXT:    kshiftrb $2, %k0, %k0
2676 ; SKX-NEXT:    korb %k5, %k0, %k0
2677 ; SKX-NEXT:    kmovb {{[0-9]+}}(%rsp), %k5
2678 ; SKX-NEXT:    kshiftlb $7, %k5, %k5
2679 ; SKX-NEXT:    kshiftrb $1, %k5, %k5
2680 ; SKX-NEXT:    korb %k0, %k5, %k0
2681 ; SKX-NEXT:    kandb %k4, %k0, %k0
2682 ; SKX-NEXT:    kandb %k3, %k0, %k0
2683 ; SKX-NEXT:    kandb %k2, %k0, %k0
2684 ; SKX-NEXT:    kandb %k1, %k0, %k0
2685 ; SKX-NEXT:    kshiftrb $6, %k0, %k1
2686 ; SKX-NEXT:    kmovd %k1, %r8d
2687 ; SKX-NEXT:    kshiftrb $5, %k0, %k1
2688 ; SKX-NEXT:    kmovd %k1, %r9d
2689 ; SKX-NEXT:    kshiftrb $4, %k0, %k1
2690 ; SKX-NEXT:    kmovd %k1, %r10d
2691 ; SKX-NEXT:    kshiftrb $3, %k0, %k1
2692 ; SKX-NEXT:    kmovd %k1, %edi
2693 ; SKX-NEXT:    kshiftrb $2, %k0, %k1
2694 ; SKX-NEXT:    kmovd %k1, %ecx
2695 ; SKX-NEXT:    kshiftrb $1, %k0, %k1
2696 ; SKX-NEXT:    kmovd %k1, %edx
2697 ; SKX-NEXT:    kmovd %k0, %esi
2698 ; SKX-NEXT:    andb $1, %sil
2699 ; SKX-NEXT:    andb $1, %dl
2700 ; SKX-NEXT:    addb %dl, %dl
2701 ; SKX-NEXT:    orb %sil, %dl
2702 ; SKX-NEXT:    andb $1, %cl
2703 ; SKX-NEXT:    shlb $2, %cl
2704 ; SKX-NEXT:    orb %dl, %cl
2705 ; SKX-NEXT:    andb $1, %dil
2706 ; SKX-NEXT:    shlb $3, %dil
2707 ; SKX-NEXT:    orb %cl, %dil
2708 ; SKX-NEXT:    andb $1, %r10b
2709 ; SKX-NEXT:    shlb $4, %r10b
2710 ; SKX-NEXT:    orb %dil, %r10b
2711 ; SKX-NEXT:    andb $1, %r9b
2712 ; SKX-NEXT:    shlb $5, %r9b
2713 ; SKX-NEXT:    orb %r10b, %r9b
2714 ; SKX-NEXT:    shlb $6, %r8b
2715 ; SKX-NEXT:    orb %r9b, %r8b
2716 ; SKX-NEXT:    andb $127, %r8b
2717 ; SKX-NEXT:    movb %r8b, (%rax)
2718 ; SKX-NEXT:    retq
2720 ; KNL_X32-LABEL: test17:
2721 ; KNL_X32:       ## %bb.0:
2722 ; KNL_X32-NEXT:    pushl %ebx
2723 ; KNL_X32-NEXT:    pushl %eax
2724 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2725 ; KNL_X32-NEXT:    kmovw %eax, %k0
2726 ; KNL_X32-NEXT:    kshiftlw $15, %k0, %k0
2727 ; KNL_X32-NEXT:    kshiftrw $15, %k0, %k0
2728 ; KNL_X32-NEXT:    kshiftlw $2, %k0, %k1
2729 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
2730 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2731 ; KNL_X32-NEXT:    kmovw %eax, %k2
2732 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
2733 ; KNL_X32-NEXT:    kshiftrw $14, %k2, %k2
2734 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
2735 ; KNL_X32-NEXT:    kshiftrw $3, %k0, %k2
2736 ; KNL_X32-NEXT:    kshiftlw $3, %k2, %k2
2737 ; KNL_X32-NEXT:    kshiftlw $14, %k0, %k0
2738 ; KNL_X32-NEXT:    kshiftrw $14, %k0, %k0
2739 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
2740 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2741 ; KNL_X32-NEXT:    kmovw %eax, %k2
2742 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
2743 ; KNL_X32-NEXT:    kshiftrw $13, %k2, %k2
2744 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
2745 ; KNL_X32-NEXT:    kshiftrw $4, %k0, %k2
2746 ; KNL_X32-NEXT:    kshiftlw $4, %k2, %k2
2747 ; KNL_X32-NEXT:    kshiftlw $13, %k0, %k0
2748 ; KNL_X32-NEXT:    kshiftrw $13, %k0, %k0
2749 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
2750 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2751 ; KNL_X32-NEXT:    kmovw %eax, %k2
2752 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
2753 ; KNL_X32-NEXT:    kshiftrw $12, %k2, %k2
2754 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
2755 ; KNL_X32-NEXT:    kshiftrw $5, %k0, %k2
2756 ; KNL_X32-NEXT:    kshiftlw $5, %k2, %k2
2757 ; KNL_X32-NEXT:    kshiftlw $12, %k0, %k0
2758 ; KNL_X32-NEXT:    kshiftrw $12, %k0, %k0
2759 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
2760 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2761 ; KNL_X32-NEXT:    kmovw %eax, %k2
2762 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
2763 ; KNL_X32-NEXT:    kshiftrw $11, %k2, %k2
2764 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
2765 ; KNL_X32-NEXT:    kshiftrw $6, %k0, %k2
2766 ; KNL_X32-NEXT:    kshiftlw $6, %k2, %k2
2767 ; KNL_X32-NEXT:    kshiftlw $11, %k0, %k0
2768 ; KNL_X32-NEXT:    kshiftrw $11, %k0, %k0
2769 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
2770 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2771 ; KNL_X32-NEXT:    kmovw %eax, %k2
2772 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
2773 ; KNL_X32-NEXT:    kshiftrw $10, %k2, %k2
2774 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
2775 ; KNL_X32-NEXT:    kshiftrw $7, %k0, %k2
2776 ; KNL_X32-NEXT:    kshiftlw $7, %k2, %k2
2777 ; KNL_X32-NEXT:    kshiftlw $10, %k0, %k0
2778 ; KNL_X32-NEXT:    kshiftrw $10, %k0, %k0
2779 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
2780 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2781 ; KNL_X32-NEXT:    kmovw %eax, %k2
2782 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
2783 ; KNL_X32-NEXT:    kshiftrw $9, %k2, %k2
2784 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
2785 ; KNL_X32-NEXT:    kmovw %k0, {{[-0-9]+}}(%e{{[sb]}}p) ## 2-byte Spill
2786 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2787 ; KNL_X32-NEXT:    kmovw %eax, %k0
2788 ; KNL_X32-NEXT:    kshiftlw $15, %k0, %k0
2789 ; KNL_X32-NEXT:    kshiftrw $15, %k0, %k0
2790 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
2791 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2792 ; KNL_X32-NEXT:    kmovw %eax, %k2
2793 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
2794 ; KNL_X32-NEXT:    kshiftrw $14, %k2, %k2
2795 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
2796 ; KNL_X32-NEXT:    kshiftrw $3, %k0, %k2
2797 ; KNL_X32-NEXT:    kshiftlw $3, %k2, %k2
2798 ; KNL_X32-NEXT:    kshiftlw $14, %k0, %k0
2799 ; KNL_X32-NEXT:    kshiftrw $14, %k0, %k0
2800 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
2801 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2802 ; KNL_X32-NEXT:    kmovw %eax, %k2
2803 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
2804 ; KNL_X32-NEXT:    kshiftrw $13, %k2, %k2
2805 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
2806 ; KNL_X32-NEXT:    kshiftrw $4, %k0, %k2
2807 ; KNL_X32-NEXT:    kshiftlw $4, %k2, %k2
2808 ; KNL_X32-NEXT:    kshiftlw $13, %k0, %k0
2809 ; KNL_X32-NEXT:    kshiftrw $13, %k0, %k0
2810 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
2811 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2812 ; KNL_X32-NEXT:    kmovw %eax, %k2
2813 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
2814 ; KNL_X32-NEXT:    kshiftrw $12, %k2, %k2
2815 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
2816 ; KNL_X32-NEXT:    kshiftrw $5, %k0, %k2
2817 ; KNL_X32-NEXT:    kshiftlw $5, %k2, %k2
2818 ; KNL_X32-NEXT:    kshiftlw $12, %k0, %k0
2819 ; KNL_X32-NEXT:    kshiftrw $12, %k0, %k0
2820 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
2821 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2822 ; KNL_X32-NEXT:    kmovw %eax, %k2
2823 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
2824 ; KNL_X32-NEXT:    kshiftrw $11, %k2, %k2
2825 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
2826 ; KNL_X32-NEXT:    kshiftrw $6, %k0, %k2
2827 ; KNL_X32-NEXT:    kshiftlw $6, %k2, %k2
2828 ; KNL_X32-NEXT:    kshiftlw $11, %k0, %k0
2829 ; KNL_X32-NEXT:    kshiftrw $11, %k0, %k0
2830 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
2831 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2832 ; KNL_X32-NEXT:    kmovw %eax, %k2
2833 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
2834 ; KNL_X32-NEXT:    kshiftrw $10, %k2, %k2
2835 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
2836 ; KNL_X32-NEXT:    kshiftrw $7, %k0, %k2
2837 ; KNL_X32-NEXT:    kshiftlw $7, %k2, %k2
2838 ; KNL_X32-NEXT:    kshiftlw $10, %k0, %k0
2839 ; KNL_X32-NEXT:    kshiftrw $10, %k0, %k0
2840 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
2841 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2842 ; KNL_X32-NEXT:    kmovw %eax, %k2
2843 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
2844 ; KNL_X32-NEXT:    kshiftrw $9, %k2, %k2
2845 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
2846 ; KNL_X32-NEXT:    kmovw %k0, (%esp) ## 2-byte Spill
2847 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2848 ; KNL_X32-NEXT:    kmovw %eax, %k0
2849 ; KNL_X32-NEXT:    kshiftlw $15, %k0, %k0
2850 ; KNL_X32-NEXT:    kshiftrw $15, %k0, %k0
2851 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
2852 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2853 ; KNL_X32-NEXT:    kmovw %eax, %k3
2854 ; KNL_X32-NEXT:    kshiftlw $15, %k3, %k3
2855 ; KNL_X32-NEXT:    kshiftrw $14, %k3, %k3
2856 ; KNL_X32-NEXT:    korw %k0, %k3, %k0
2857 ; KNL_X32-NEXT:    kshiftrw $3, %k0, %k3
2858 ; KNL_X32-NEXT:    kshiftlw $3, %k3, %k3
2859 ; KNL_X32-NEXT:    kshiftlw $14, %k0, %k0
2860 ; KNL_X32-NEXT:    kshiftrw $14, %k0, %k0
2861 ; KNL_X32-NEXT:    korw %k3, %k0, %k0
2862 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2863 ; KNL_X32-NEXT:    kmovw %eax, %k3
2864 ; KNL_X32-NEXT:    kshiftlw $15, %k3, %k3
2865 ; KNL_X32-NEXT:    kshiftrw $13, %k3, %k3
2866 ; KNL_X32-NEXT:    korw %k0, %k3, %k0
2867 ; KNL_X32-NEXT:    kshiftrw $4, %k0, %k3
2868 ; KNL_X32-NEXT:    kshiftlw $4, %k3, %k3
2869 ; KNL_X32-NEXT:    kshiftlw $13, %k0, %k0
2870 ; KNL_X32-NEXT:    kshiftrw $13, %k0, %k0
2871 ; KNL_X32-NEXT:    korw %k3, %k0, %k0
2872 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2873 ; KNL_X32-NEXT:    kmovw %eax, %k3
2874 ; KNL_X32-NEXT:    kshiftlw $15, %k3, %k3
2875 ; KNL_X32-NEXT:    kshiftrw $12, %k3, %k3
2876 ; KNL_X32-NEXT:    korw %k0, %k3, %k0
2877 ; KNL_X32-NEXT:    kshiftrw $5, %k0, %k3
2878 ; KNL_X32-NEXT:    kshiftlw $5, %k3, %k3
2879 ; KNL_X32-NEXT:    kshiftlw $12, %k0, %k0
2880 ; KNL_X32-NEXT:    kshiftrw $12, %k0, %k0
2881 ; KNL_X32-NEXT:    korw %k3, %k0, %k0
2882 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2883 ; KNL_X32-NEXT:    kmovw %eax, %k3
2884 ; KNL_X32-NEXT:    kshiftlw $15, %k3, %k3
2885 ; KNL_X32-NEXT:    kshiftrw $11, %k3, %k3
2886 ; KNL_X32-NEXT:    korw %k0, %k3, %k0
2887 ; KNL_X32-NEXT:    kshiftrw $6, %k0, %k3
2888 ; KNL_X32-NEXT:    kshiftlw $6, %k3, %k3
2889 ; KNL_X32-NEXT:    kshiftlw $11, %k0, %k0
2890 ; KNL_X32-NEXT:    kshiftrw $11, %k0, %k0
2891 ; KNL_X32-NEXT:    korw %k3, %k0, %k0
2892 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2893 ; KNL_X32-NEXT:    kmovw %eax, %k3
2894 ; KNL_X32-NEXT:    kshiftlw $15, %k3, %k3
2895 ; KNL_X32-NEXT:    kshiftrw $10, %k3, %k3
2896 ; KNL_X32-NEXT:    korw %k0, %k3, %k0
2897 ; KNL_X32-NEXT:    kshiftrw $7, %k0, %k3
2898 ; KNL_X32-NEXT:    kshiftlw $7, %k3, %k3
2899 ; KNL_X32-NEXT:    kshiftlw $10, %k0, %k0
2900 ; KNL_X32-NEXT:    kshiftrw $10, %k0, %k0
2901 ; KNL_X32-NEXT:    korw %k3, %k0, %k0
2902 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2903 ; KNL_X32-NEXT:    kmovw %eax, %k3
2904 ; KNL_X32-NEXT:    kshiftlw $15, %k3, %k3
2905 ; KNL_X32-NEXT:    kshiftrw $9, %k3, %k3
2906 ; KNL_X32-NEXT:    korw %k0, %k3, %k3
2907 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2908 ; KNL_X32-NEXT:    kmovw %eax, %k0
2909 ; KNL_X32-NEXT:    kshiftlw $15, %k0, %k0
2910 ; KNL_X32-NEXT:    kshiftrw $15, %k0, %k0
2911 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
2912 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2913 ; KNL_X32-NEXT:    kmovw %eax, %k4
2914 ; KNL_X32-NEXT:    kshiftlw $15, %k4, %k4
2915 ; KNL_X32-NEXT:    kshiftrw $14, %k4, %k4
2916 ; KNL_X32-NEXT:    korw %k0, %k4, %k0
2917 ; KNL_X32-NEXT:    kshiftrw $3, %k0, %k4
2918 ; KNL_X32-NEXT:    kshiftlw $3, %k4, %k4
2919 ; KNL_X32-NEXT:    kshiftlw $14, %k0, %k0
2920 ; KNL_X32-NEXT:    kshiftrw $14, %k0, %k0
2921 ; KNL_X32-NEXT:    korw %k4, %k0, %k0
2922 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2923 ; KNL_X32-NEXT:    kmovw %eax, %k4
2924 ; KNL_X32-NEXT:    kshiftlw $15, %k4, %k4
2925 ; KNL_X32-NEXT:    kshiftrw $13, %k4, %k4
2926 ; KNL_X32-NEXT:    korw %k0, %k4, %k0
2927 ; KNL_X32-NEXT:    kshiftrw $4, %k0, %k4
2928 ; KNL_X32-NEXT:    kshiftlw $4, %k4, %k4
2929 ; KNL_X32-NEXT:    kshiftlw $13, %k0, %k0
2930 ; KNL_X32-NEXT:    kshiftrw $13, %k0, %k0
2931 ; KNL_X32-NEXT:    korw %k4, %k0, %k0
2932 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2933 ; KNL_X32-NEXT:    kmovw %eax, %k4
2934 ; KNL_X32-NEXT:    kshiftlw $15, %k4, %k4
2935 ; KNL_X32-NEXT:    kshiftrw $12, %k4, %k4
2936 ; KNL_X32-NEXT:    korw %k0, %k4, %k0
2937 ; KNL_X32-NEXT:    kshiftrw $5, %k0, %k4
2938 ; KNL_X32-NEXT:    kshiftlw $5, %k4, %k4
2939 ; KNL_X32-NEXT:    kshiftlw $12, %k0, %k0
2940 ; KNL_X32-NEXT:    kshiftrw $12, %k0, %k0
2941 ; KNL_X32-NEXT:    korw %k4, %k0, %k0
2942 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2943 ; KNL_X32-NEXT:    kmovw %eax, %k4
2944 ; KNL_X32-NEXT:    kshiftlw $15, %k4, %k4
2945 ; KNL_X32-NEXT:    kshiftrw $11, %k4, %k4
2946 ; KNL_X32-NEXT:    korw %k0, %k4, %k0
2947 ; KNL_X32-NEXT:    kshiftrw $6, %k0, %k4
2948 ; KNL_X32-NEXT:    kshiftlw $6, %k4, %k4
2949 ; KNL_X32-NEXT:    kshiftlw $11, %k0, %k0
2950 ; KNL_X32-NEXT:    kshiftrw $11, %k0, %k0
2951 ; KNL_X32-NEXT:    korw %k4, %k0, %k0
2952 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2953 ; KNL_X32-NEXT:    kmovw %eax, %k4
2954 ; KNL_X32-NEXT:    kshiftlw $15, %k4, %k4
2955 ; KNL_X32-NEXT:    kshiftrw $10, %k4, %k4
2956 ; KNL_X32-NEXT:    korw %k0, %k4, %k0
2957 ; KNL_X32-NEXT:    kshiftrw $7, %k0, %k4
2958 ; KNL_X32-NEXT:    kshiftlw $7, %k4, %k4
2959 ; KNL_X32-NEXT:    kshiftlw $10, %k0, %k0
2960 ; KNL_X32-NEXT:    kshiftrw $10, %k0, %k0
2961 ; KNL_X32-NEXT:    korw %k4, %k0, %k0
2962 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2963 ; KNL_X32-NEXT:    kmovw %eax, %k4
2964 ; KNL_X32-NEXT:    kshiftlw $15, %k4, %k4
2965 ; KNL_X32-NEXT:    kshiftrw $9, %k4, %k4
2966 ; KNL_X32-NEXT:    korw %k0, %k4, %k4
2967 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2968 ; KNL_X32-NEXT:    kmovw %eax, %k0
2969 ; KNL_X32-NEXT:    kshiftlw $15, %k0, %k0
2970 ; KNL_X32-NEXT:    kshiftrw $15, %k0, %k0
2971 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
2972 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2973 ; KNL_X32-NEXT:    kmovw %eax, %k5
2974 ; KNL_X32-NEXT:    kshiftlw $15, %k5, %k5
2975 ; KNL_X32-NEXT:    kshiftrw $14, %k5, %k5
2976 ; KNL_X32-NEXT:    korw %k0, %k5, %k0
2977 ; KNL_X32-NEXT:    kshiftrw $3, %k0, %k5
2978 ; KNL_X32-NEXT:    kshiftlw $3, %k5, %k5
2979 ; KNL_X32-NEXT:    kshiftlw $14, %k0, %k0
2980 ; KNL_X32-NEXT:    kshiftrw $14, %k0, %k0
2981 ; KNL_X32-NEXT:    korw %k5, %k0, %k0
2982 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2983 ; KNL_X32-NEXT:    kmovw %eax, %k5
2984 ; KNL_X32-NEXT:    kshiftlw $15, %k5, %k5
2985 ; KNL_X32-NEXT:    kshiftrw $13, %k5, %k5
2986 ; KNL_X32-NEXT:    korw %k0, %k5, %k0
2987 ; KNL_X32-NEXT:    kshiftrw $4, %k0, %k5
2988 ; KNL_X32-NEXT:    kshiftlw $4, %k5, %k5
2989 ; KNL_X32-NEXT:    kshiftlw $13, %k0, %k0
2990 ; KNL_X32-NEXT:    kshiftrw $13, %k0, %k0
2991 ; KNL_X32-NEXT:    korw %k5, %k0, %k0
2992 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
2993 ; KNL_X32-NEXT:    kmovw %eax, %k5
2994 ; KNL_X32-NEXT:    kshiftlw $15, %k5, %k5
2995 ; KNL_X32-NEXT:    kshiftrw $12, %k5, %k5
2996 ; KNL_X32-NEXT:    korw %k0, %k5, %k0
2997 ; KNL_X32-NEXT:    kshiftrw $5, %k0, %k5
2998 ; KNL_X32-NEXT:    kshiftlw $5, %k5, %k5
2999 ; KNL_X32-NEXT:    kshiftlw $12, %k0, %k0
3000 ; KNL_X32-NEXT:    kshiftrw $12, %k0, %k0
3001 ; KNL_X32-NEXT:    korw %k5, %k0, %k0
3002 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3003 ; KNL_X32-NEXT:    kmovw %eax, %k5
3004 ; KNL_X32-NEXT:    kshiftlw $15, %k5, %k5
3005 ; KNL_X32-NEXT:    kshiftrw $11, %k5, %k5
3006 ; KNL_X32-NEXT:    korw %k0, %k5, %k0
3007 ; KNL_X32-NEXT:    kshiftrw $6, %k0, %k5
3008 ; KNL_X32-NEXT:    kshiftlw $6, %k5, %k5
3009 ; KNL_X32-NEXT:    kshiftlw $11, %k0, %k0
3010 ; KNL_X32-NEXT:    kshiftrw $11, %k0, %k0
3011 ; KNL_X32-NEXT:    korw %k5, %k0, %k0
3012 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3013 ; KNL_X32-NEXT:    kmovw %eax, %k5
3014 ; KNL_X32-NEXT:    kshiftlw $15, %k5, %k5
3015 ; KNL_X32-NEXT:    kshiftrw $10, %k5, %k5
3016 ; KNL_X32-NEXT:    korw %k0, %k5, %k0
3017 ; KNL_X32-NEXT:    kshiftrw $7, %k0, %k5
3018 ; KNL_X32-NEXT:    kshiftlw $7, %k5, %k5
3019 ; KNL_X32-NEXT:    kshiftlw $10, %k0, %k0
3020 ; KNL_X32-NEXT:    kshiftrw $10, %k0, %k0
3021 ; KNL_X32-NEXT:    korw %k5, %k0, %k0
3022 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3023 ; KNL_X32-NEXT:    kmovw %eax, %k5
3024 ; KNL_X32-NEXT:    kshiftlw $15, %k5, %k5
3025 ; KNL_X32-NEXT:    kshiftrw $9, %k5, %k5
3026 ; KNL_X32-NEXT:    korw %k0, %k5, %k5
3027 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3028 ; KNL_X32-NEXT:    kmovw %eax, %k0
3029 ; KNL_X32-NEXT:    kshiftlw $15, %k0, %k0
3030 ; KNL_X32-NEXT:    kshiftrw $15, %k0, %k0
3031 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
3032 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3033 ; KNL_X32-NEXT:    kmovw %eax, %k6
3034 ; KNL_X32-NEXT:    kshiftlw $15, %k6, %k6
3035 ; KNL_X32-NEXT:    kshiftrw $14, %k6, %k6
3036 ; KNL_X32-NEXT:    korw %k0, %k6, %k0
3037 ; KNL_X32-NEXT:    kshiftrw $3, %k0, %k6
3038 ; KNL_X32-NEXT:    kshiftlw $3, %k6, %k6
3039 ; KNL_X32-NEXT:    kshiftlw $14, %k0, %k0
3040 ; KNL_X32-NEXT:    kshiftrw $14, %k0, %k0
3041 ; KNL_X32-NEXT:    korw %k6, %k0, %k0
3042 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3043 ; KNL_X32-NEXT:    kmovw %eax, %k6
3044 ; KNL_X32-NEXT:    kshiftlw $15, %k6, %k6
3045 ; KNL_X32-NEXT:    kshiftrw $13, %k6, %k6
3046 ; KNL_X32-NEXT:    korw %k0, %k6, %k0
3047 ; KNL_X32-NEXT:    kshiftrw $4, %k0, %k6
3048 ; KNL_X32-NEXT:    kshiftlw $4, %k6, %k6
3049 ; KNL_X32-NEXT:    kshiftlw $13, %k0, %k0
3050 ; KNL_X32-NEXT:    kshiftrw $13, %k0, %k0
3051 ; KNL_X32-NEXT:    korw %k6, %k0, %k0
3052 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3053 ; KNL_X32-NEXT:    kmovw %eax, %k6
3054 ; KNL_X32-NEXT:    kshiftlw $15, %k6, %k6
3055 ; KNL_X32-NEXT:    kshiftrw $12, %k6, %k6
3056 ; KNL_X32-NEXT:    korw %k0, %k6, %k0
3057 ; KNL_X32-NEXT:    kshiftrw $5, %k0, %k6
3058 ; KNL_X32-NEXT:    kshiftlw $5, %k6, %k6
3059 ; KNL_X32-NEXT:    kshiftlw $12, %k0, %k0
3060 ; KNL_X32-NEXT:    kshiftrw $12, %k0, %k0
3061 ; KNL_X32-NEXT:    korw %k6, %k0, %k0
3062 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3063 ; KNL_X32-NEXT:    kmovw %eax, %k6
3064 ; KNL_X32-NEXT:    kshiftlw $15, %k6, %k6
3065 ; KNL_X32-NEXT:    kshiftrw $11, %k6, %k6
3066 ; KNL_X32-NEXT:    korw %k0, %k6, %k0
3067 ; KNL_X32-NEXT:    kshiftrw $6, %k0, %k6
3068 ; KNL_X32-NEXT:    kshiftlw $6, %k6, %k6
3069 ; KNL_X32-NEXT:    kshiftlw $11, %k0, %k0
3070 ; KNL_X32-NEXT:    kshiftrw $11, %k0, %k0
3071 ; KNL_X32-NEXT:    korw %k6, %k0, %k0
3072 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3073 ; KNL_X32-NEXT:    kmovw %eax, %k6
3074 ; KNL_X32-NEXT:    kshiftlw $15, %k6, %k6
3075 ; KNL_X32-NEXT:    kshiftrw $10, %k6, %k6
3076 ; KNL_X32-NEXT:    korw %k0, %k6, %k0
3077 ; KNL_X32-NEXT:    kshiftrw $7, %k0, %k6
3078 ; KNL_X32-NEXT:    kshiftlw $7, %k6, %k6
3079 ; KNL_X32-NEXT:    kshiftlw $10, %k0, %k0
3080 ; KNL_X32-NEXT:    kshiftrw $10, %k0, %k0
3081 ; KNL_X32-NEXT:    korw %k6, %k0, %k0
3082 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3083 ; KNL_X32-NEXT:    kmovw %eax, %k6
3084 ; KNL_X32-NEXT:    kshiftlw $15, %k6, %k6
3085 ; KNL_X32-NEXT:    kshiftrw $9, %k6, %k6
3086 ; KNL_X32-NEXT:    korw %k0, %k6, %k6
3087 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3088 ; KNL_X32-NEXT:    kmovw %eax, %k0
3089 ; KNL_X32-NEXT:    kshiftlw $15, %k0, %k0
3090 ; KNL_X32-NEXT:    kshiftrw $15, %k0, %k0
3091 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
3092 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3093 ; KNL_X32-NEXT:    kmovw %eax, %k7
3094 ; KNL_X32-NEXT:    kshiftlw $15, %k7, %k7
3095 ; KNL_X32-NEXT:    kshiftrw $14, %k7, %k7
3096 ; KNL_X32-NEXT:    korw %k0, %k7, %k0
3097 ; KNL_X32-NEXT:    kshiftrw $3, %k0, %k7
3098 ; KNL_X32-NEXT:    kshiftlw $3, %k7, %k7
3099 ; KNL_X32-NEXT:    kshiftlw $14, %k0, %k0
3100 ; KNL_X32-NEXT:    kshiftrw $14, %k0, %k0
3101 ; KNL_X32-NEXT:    korw %k7, %k0, %k0
3102 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3103 ; KNL_X32-NEXT:    kmovw %eax, %k7
3104 ; KNL_X32-NEXT:    kshiftlw $15, %k7, %k7
3105 ; KNL_X32-NEXT:    kshiftrw $13, %k7, %k7
3106 ; KNL_X32-NEXT:    korw %k0, %k7, %k0
3107 ; KNL_X32-NEXT:    kshiftrw $4, %k0, %k7
3108 ; KNL_X32-NEXT:    kshiftlw $4, %k7, %k7
3109 ; KNL_X32-NEXT:    kshiftlw $13, %k0, %k0
3110 ; KNL_X32-NEXT:    kshiftrw $13, %k0, %k0
3111 ; KNL_X32-NEXT:    korw %k7, %k0, %k0
3112 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3113 ; KNL_X32-NEXT:    kmovw %eax, %k7
3114 ; KNL_X32-NEXT:    kshiftlw $15, %k7, %k7
3115 ; KNL_X32-NEXT:    kshiftrw $12, %k7, %k7
3116 ; KNL_X32-NEXT:    korw %k0, %k7, %k0
3117 ; KNL_X32-NEXT:    kshiftrw $5, %k0, %k7
3118 ; KNL_X32-NEXT:    kshiftlw $5, %k7, %k7
3119 ; KNL_X32-NEXT:    kshiftlw $12, %k0, %k0
3120 ; KNL_X32-NEXT:    kshiftrw $12, %k0, %k0
3121 ; KNL_X32-NEXT:    korw %k7, %k0, %k0
3122 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3123 ; KNL_X32-NEXT:    kmovw %eax, %k7
3124 ; KNL_X32-NEXT:    kshiftlw $15, %k7, %k7
3125 ; KNL_X32-NEXT:    kshiftrw $11, %k7, %k7
3126 ; KNL_X32-NEXT:    korw %k0, %k7, %k0
3127 ; KNL_X32-NEXT:    kshiftrw $6, %k0, %k7
3128 ; KNL_X32-NEXT:    kshiftlw $6, %k7, %k7
3129 ; KNL_X32-NEXT:    kshiftlw $11, %k0, %k0
3130 ; KNL_X32-NEXT:    kshiftrw $11, %k0, %k0
3131 ; KNL_X32-NEXT:    korw %k7, %k0, %k0
3132 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3133 ; KNL_X32-NEXT:    kmovw %eax, %k7
3134 ; KNL_X32-NEXT:    kshiftlw $15, %k7, %k7
3135 ; KNL_X32-NEXT:    kshiftrw $10, %k7, %k7
3136 ; KNL_X32-NEXT:    korw %k0, %k7, %k0
3137 ; KNL_X32-NEXT:    kshiftrw $7, %k0, %k7
3138 ; KNL_X32-NEXT:    kshiftlw $7, %k7, %k7
3139 ; KNL_X32-NEXT:    kshiftlw $10, %k0, %k0
3140 ; KNL_X32-NEXT:    kshiftrw $10, %k0, %k0
3141 ; KNL_X32-NEXT:    korw %k7, %k0, %k0
3142 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3143 ; KNL_X32-NEXT:    kmovw %eax, %k7
3144 ; KNL_X32-NEXT:    kshiftlw $15, %k7, %k7
3145 ; KNL_X32-NEXT:    kshiftrw $9, %k7, %k7
3146 ; KNL_X32-NEXT:    korw %k0, %k7, %k7
3147 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3148 ; KNL_X32-NEXT:    kmovw %eax, %k0
3149 ; KNL_X32-NEXT:    kshiftlw $15, %k0, %k0
3150 ; KNL_X32-NEXT:    kshiftrw $15, %k0, %k0
3151 ; KNL_X32-NEXT:    korw %k1, %k0, %k0
3152 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3153 ; KNL_X32-NEXT:    kmovw %eax, %k2
3154 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3155 ; KNL_X32-NEXT:    kshiftrw $14, %k2, %k2
3156 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
3157 ; KNL_X32-NEXT:    kshiftrw $3, %k0, %k2
3158 ; KNL_X32-NEXT:    kshiftlw $3, %k2, %k2
3159 ; KNL_X32-NEXT:    kshiftlw $14, %k0, %k0
3160 ; KNL_X32-NEXT:    kshiftrw $14, %k0, %k0
3161 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
3162 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3163 ; KNL_X32-NEXT:    kmovw %eax, %k2
3164 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3165 ; KNL_X32-NEXT:    kshiftrw $13, %k2, %k2
3166 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
3167 ; KNL_X32-NEXT:    kshiftrw $4, %k0, %k2
3168 ; KNL_X32-NEXT:    kshiftlw $4, %k2, %k2
3169 ; KNL_X32-NEXT:    kshiftlw $13, %k0, %k0
3170 ; KNL_X32-NEXT:    kshiftrw $13, %k0, %k0
3171 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
3172 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3173 ; KNL_X32-NEXT:    kmovw %eax, %k2
3174 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3175 ; KNL_X32-NEXT:    kshiftrw $12, %k2, %k2
3176 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
3177 ; KNL_X32-NEXT:    kshiftrw $5, %k0, %k2
3178 ; KNL_X32-NEXT:    kshiftlw $5, %k2, %k2
3179 ; KNL_X32-NEXT:    kshiftlw $12, %k0, %k0
3180 ; KNL_X32-NEXT:    kshiftrw $12, %k0, %k0
3181 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
3182 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3183 ; KNL_X32-NEXT:    kmovw %eax, %k2
3184 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3185 ; KNL_X32-NEXT:    kshiftrw $11, %k2, %k2
3186 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
3187 ; KNL_X32-NEXT:    kshiftrw $6, %k0, %k2
3188 ; KNL_X32-NEXT:    kshiftlw $6, %k2, %k2
3189 ; KNL_X32-NEXT:    kshiftlw $11, %k0, %k0
3190 ; KNL_X32-NEXT:    kshiftrw $11, %k0, %k0
3191 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
3192 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3193 ; KNL_X32-NEXT:    kmovw %eax, %k2
3194 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3195 ; KNL_X32-NEXT:    kshiftrw $10, %k2, %k2
3196 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
3197 ; KNL_X32-NEXT:    kshiftrw $7, %k0, %k2
3198 ; KNL_X32-NEXT:    kshiftlw $7, %k2, %k2
3199 ; KNL_X32-NEXT:    kshiftlw $10, %k0, %k0
3200 ; KNL_X32-NEXT:    kshiftrw $10, %k0, %k0
3201 ; KNL_X32-NEXT:    korw %k2, %k0, %k0
3202 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3203 ; KNL_X32-NEXT:    kmovw %eax, %k2
3204 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3205 ; KNL_X32-NEXT:    kshiftrw $9, %k2, %k2
3206 ; KNL_X32-NEXT:    korw %k0, %k2, %k0
3207 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3208 ; KNL_X32-NEXT:    kmovw %eax, %k2
3209 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3210 ; KNL_X32-NEXT:    kshiftrw $15, %k2, %k2
3211 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
3212 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3213 ; KNL_X32-NEXT:    kmovw %eax, %k2
3214 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3215 ; KNL_X32-NEXT:    kshiftrw $14, %k2, %k2
3216 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
3217 ; KNL_X32-NEXT:    kshiftrw $3, %k1, %k2
3218 ; KNL_X32-NEXT:    kshiftlw $3, %k2, %k2
3219 ; KNL_X32-NEXT:    kshiftlw $14, %k1, %k1
3220 ; KNL_X32-NEXT:    kshiftrw $14, %k1, %k1
3221 ; KNL_X32-NEXT:    korw %k2, %k1, %k1
3222 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3223 ; KNL_X32-NEXT:    kmovw %eax, %k2
3224 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3225 ; KNL_X32-NEXT:    kshiftrw $13, %k2, %k2
3226 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
3227 ; KNL_X32-NEXT:    kshiftrw $4, %k1, %k2
3228 ; KNL_X32-NEXT:    kshiftlw $4, %k2, %k2
3229 ; KNL_X32-NEXT:    kshiftlw $13, %k1, %k1
3230 ; KNL_X32-NEXT:    kshiftrw $13, %k1, %k1
3231 ; KNL_X32-NEXT:    korw %k2, %k1, %k1
3232 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3233 ; KNL_X32-NEXT:    kmovw %eax, %k2
3234 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3235 ; KNL_X32-NEXT:    kshiftrw $12, %k2, %k2
3236 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
3237 ; KNL_X32-NEXT:    kshiftrw $5, %k1, %k2
3238 ; KNL_X32-NEXT:    kshiftlw $5, %k2, %k2
3239 ; KNL_X32-NEXT:    kshiftlw $12, %k1, %k1
3240 ; KNL_X32-NEXT:    kshiftrw $12, %k1, %k1
3241 ; KNL_X32-NEXT:    korw %k2, %k1, %k1
3242 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3243 ; KNL_X32-NEXT:    kmovw %eax, %k2
3244 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3245 ; KNL_X32-NEXT:    kshiftrw $11, %k2, %k2
3246 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
3247 ; KNL_X32-NEXT:    kshiftrw $6, %k1, %k2
3248 ; KNL_X32-NEXT:    kshiftlw $6, %k2, %k2
3249 ; KNL_X32-NEXT:    kshiftlw $11, %k1, %k1
3250 ; KNL_X32-NEXT:    kshiftrw $11, %k1, %k1
3251 ; KNL_X32-NEXT:    korw %k2, %k1, %k1
3252 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3253 ; KNL_X32-NEXT:    kmovw %eax, %k2
3254 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3255 ; KNL_X32-NEXT:    kshiftrw $10, %k2, %k2
3256 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
3257 ; KNL_X32-NEXT:    kshiftrw $7, %k1, %k2
3258 ; KNL_X32-NEXT:    kshiftlw $7, %k2, %k2
3259 ; KNL_X32-NEXT:    kshiftlw $10, %k1, %k1
3260 ; KNL_X32-NEXT:    kshiftrw $10, %k1, %k1
3261 ; KNL_X32-NEXT:    korw %k2, %k1, %k1
3262 ; KNL_X32-NEXT:    movb {{[0-9]+}}(%esp), %al
3263 ; KNL_X32-NEXT:    kmovw %eax, %k2
3264 ; KNL_X32-NEXT:    kshiftlw $15, %k2, %k2
3265 ; KNL_X32-NEXT:    kshiftrw $9, %k2, %k2
3266 ; KNL_X32-NEXT:    korw %k1, %k2, %k1
3267 ; KNL_X32-NEXT:    kandw %k1, %k0, %k0
3268 ; KNL_X32-NEXT:    kandw %k7, %k0, %k0
3269 ; KNL_X32-NEXT:    kandw %k6, %k0, %k0
3270 ; KNL_X32-NEXT:    kandw %k5, %k0, %k0
3271 ; KNL_X32-NEXT:    kandw %k4, %k0, %k0
3272 ; KNL_X32-NEXT:    kandw %k3, %k0, %k0
3273 ; KNL_X32-NEXT:    kmovw (%esp), %k1 ## 2-byte Reload
3274 ; KNL_X32-NEXT:    kandw %k1, %k0, %k0
3275 ; KNL_X32-NEXT:    kmovw {{[-0-9]+}}(%e{{[sb]}}p), %k1 ## 2-byte Reload
3276 ; KNL_X32-NEXT:    kandw %k1, %k0, %k0
3277 ; KNL_X32-NEXT:    kshiftrw $6, %k0, %k1
3278 ; KNL_X32-NEXT:    kmovw %k1, %ecx
3279 ; KNL_X32-NEXT:    kshiftrw $5, %k0, %k1
3280 ; KNL_X32-NEXT:    kmovw %k1, %eax
3281 ; KNL_X32-NEXT:    kshiftrw $1, %k0, %k1
3282 ; KNL_X32-NEXT:    kmovw %k1, %edx
3283 ; KNL_X32-NEXT:    kshiftrw $2, %k0, %k1
3284 ; KNL_X32-NEXT:    kmovw %k0, %ebx
3285 ; KNL_X32-NEXT:    andb $1, %bl
3286 ; KNL_X32-NEXT:    andb $1, %dl
3287 ; KNL_X32-NEXT:    addb %dl, %dl
3288 ; KNL_X32-NEXT:    orb %bl, %dl
3289 ; KNL_X32-NEXT:    kmovw %k1, %ebx
3290 ; KNL_X32-NEXT:    kshiftrw $3, %k0, %k1
3291 ; KNL_X32-NEXT:    andb $1, %bl
3292 ; KNL_X32-NEXT:    shlb $2, %bl
3293 ; KNL_X32-NEXT:    orb %dl, %bl
3294 ; KNL_X32-NEXT:    kmovw %k1, %edx
3295 ; KNL_X32-NEXT:    kshiftrw $4, %k0, %k0
3296 ; KNL_X32-NEXT:    andb $1, %dl
3297 ; KNL_X32-NEXT:    shlb $3, %dl
3298 ; KNL_X32-NEXT:    orb %bl, %dl
3299 ; KNL_X32-NEXT:    kmovw %k0, %ebx
3300 ; KNL_X32-NEXT:    andb $1, %bl
3301 ; KNL_X32-NEXT:    shlb $4, %bl
3302 ; KNL_X32-NEXT:    orb %dl, %bl
3303 ; KNL_X32-NEXT:    andb $1, %al
3304 ; KNL_X32-NEXT:    shlb $5, %al
3305 ; KNL_X32-NEXT:    orb %bl, %al
3306 ; KNL_X32-NEXT:    shlb $6, %cl
3307 ; KNL_X32-NEXT:    orb %al, %cl
3308 ; KNL_X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
3309 ; KNL_X32-NEXT:    andb $127, %cl
3310 ; KNL_X32-NEXT:    movb %cl, (%eax)
3311 ; KNL_X32-NEXT:    addl $4, %esp
3312 ; KNL_X32-NEXT:    popl %ebx
3313 ; KNL_X32-NEXT:    retl $4
3314   %j = and <7 x i1> %a, %b
3315   %k = and <7 x i1> %j, %c
3316   %l = and <7 x i1> %k, %d
3317   %m = and <7 x i1> %l, %e
3318   %n = and <7 x i1> %m, %f
3319   %o = and <7 x i1> %n, %g
3320   %p = and <7 x i1> %o, %h
3321   %q = and <7 x i1> %p, %i
3322   ret <7 x i1> %q