xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefix=AVX --check-prefix=AVX512 --check-prefix=AVX512F
3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw | FileCheck %s --check-prefix=AVX --check-prefix=AVX512 --check-prefix=AVX512BW
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker;
6*9880d681SAndroid Build Coastguard Worker; sdiv by 7
7*9880d681SAndroid Build Coastguard Worker;
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test_div7_8i64(<8 x i64> %a) nounwind {
10*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test_div7_8i64:
11*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0:
12*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vextracti32x4 $3, %zmm0, %xmm1
13*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrq $1, %xmm1, %rax
14*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movabsq $5270498306774157605, %rcx # imm = 0x4924924924924925
15*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rcx
16*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
17*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
18*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
19*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
20*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rdx, %xmm2
21*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %xmm1, %rax
22*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rcx
23*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
24*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
25*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
26*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
27*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rdx, %xmm1
28*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm2[0]
29*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vextracti32x4 $2, %zmm0, %xmm2
30*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrq $1, %xmm2, %rax
31*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rcx
32*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
33*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
34*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
35*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
36*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rdx, %xmm3
37*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %xmm2, %rax
38*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rcx
39*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
40*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
41*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
42*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
43*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rdx, %xmm2
44*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm3[0]
45*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vinserti128 $1, %xmm1, %ymm2, %ymm1
46*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vextracti32x4 $1, %zmm0, %xmm2
47*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrq $1, %xmm2, %rax
48*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rcx
49*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
50*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
51*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
52*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
53*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rdx, %xmm3
54*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %xmm2, %rax
55*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rcx
56*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
57*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
58*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
59*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
60*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rdx, %xmm2
61*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm3[0]
62*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrq $1, %xmm0, %rax
63*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rcx
64*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
65*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
66*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
67*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
68*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rdx, %xmm3
69*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %xmm0, %rax
70*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rcx
71*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
72*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
73*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
74*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
75*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rdx, %xmm0
76*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm3[0]
77*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0
78*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
79*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
80*9880d681SAndroid Build Coastguard Worker  %res = sdiv <8 x i64> %a, <i64 7, i64 7, i64 7, i64 7, i64 7, i64 7, i64 7, i64 7>
81*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %res
82*9880d681SAndroid Build Coastguard Worker}
83*9880d681SAndroid Build Coastguard Worker
84*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test_div7_16i32(<16 x i32> %a) nounwind {
85*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test_div7_16i32:
86*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0:
87*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vextracti32x4 $3, %zmm0, %xmm1
88*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $1, %xmm1, %eax
89*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
90*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
91*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
92*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
93*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %eax, %ecx
94*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %ecx
95*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %eax
96*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
97*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %xmm1, %ecx
98*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movslq %ecx, %rcx
99*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rcx, %rdx # imm = 0x92492493
100*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rdx
101*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
102*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
103*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
104*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
105*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
106*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %ecx, %xmm2
107*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $1, %eax, %xmm2, %xmm2
108*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $2, %xmm1, %eax
109*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
110*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
111*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
112*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
113*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %eax, %ecx
114*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %ecx
115*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %eax
116*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
117*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $2, %eax, %xmm2, %xmm2
118*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $3, %xmm1, %eax
119*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
120*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
121*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
122*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
123*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %eax, %ecx
124*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %ecx
125*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %eax
126*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
127*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $3, %eax, %xmm2, %xmm1
128*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vextracti32x4 $2, %zmm0, %xmm2
129*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $1, %xmm2, %eax
130*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
131*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
132*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
133*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
134*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %eax, %ecx
135*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %ecx
136*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %eax
137*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
138*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %xmm2, %ecx
139*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movslq %ecx, %rcx
140*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rcx, %rdx # imm = 0x92492493
141*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rdx
142*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
143*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
144*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
145*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
146*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
147*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %ecx, %xmm3
148*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $1, %eax, %xmm3, %xmm3
149*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $2, %xmm2, %eax
150*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
151*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
152*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
153*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
154*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %eax, %ecx
155*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %ecx
156*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %eax
157*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
158*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $2, %eax, %xmm3, %xmm3
159*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $3, %xmm2, %eax
160*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
161*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
162*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
163*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
164*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %eax, %ecx
165*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %ecx
166*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %eax
167*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
168*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $3, %eax, %xmm3, %xmm2
169*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vinserti128 $1, %xmm1, %ymm2, %ymm1
170*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vextracti32x4 $1, %zmm0, %xmm2
171*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $1, %xmm2, %eax
172*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
173*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
174*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
175*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
176*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %eax, %ecx
177*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %ecx
178*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %eax
179*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
180*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %xmm2, %ecx
181*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movslq %ecx, %rcx
182*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rcx, %rdx # imm = 0x92492493
183*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rdx
184*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
185*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
186*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
187*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
188*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
189*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %ecx, %xmm3
190*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $1, %eax, %xmm3, %xmm3
191*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $2, %xmm2, %eax
192*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
193*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
194*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
195*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
196*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %eax, %ecx
197*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %ecx
198*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %eax
199*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
200*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $2, %eax, %xmm3, %xmm3
201*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $3, %xmm2, %eax
202*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
203*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
204*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
205*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
206*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %eax, %ecx
207*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %ecx
208*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %eax
209*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
210*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $3, %eax, %xmm3, %xmm2
211*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $1, %xmm0, %eax
212*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
213*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
214*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
215*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
216*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %eax, %ecx
217*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %ecx
218*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %eax
219*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
220*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %xmm0, %ecx
221*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movslq %ecx, %rcx
222*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rcx, %rdx # imm = 0x92492493
223*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rdx
224*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
225*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
226*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
227*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
228*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
229*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %ecx, %xmm3
230*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $1, %eax, %xmm3, %xmm3
231*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $2, %xmm0, %eax
232*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
233*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
234*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
235*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
236*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %eax, %ecx
237*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %ecx
238*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %eax
239*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
240*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $2, %eax, %xmm3, %xmm3
241*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $3, %xmm0, %eax
242*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
243*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
244*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
245*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
246*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %eax, %ecx
247*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %ecx
248*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %eax
249*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %eax
250*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $3, %eax, %xmm3, %xmm0
251*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0
252*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
253*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
254*9880d681SAndroid Build Coastguard Worker  %res = sdiv <16 x i32> %a, <i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7>
255*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %res
256*9880d681SAndroid Build Coastguard Worker}
257*9880d681SAndroid Build Coastguard Worker
258*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_div7_32i16(<32 x i16> %a) nounwind {
259*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test_div7_32i16:
260*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0:
261*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm2 = [18725,18725,18725,18725,18725,18725,18725,18725,18725,18725,18725,18725,18725,18725,18725,18725]
262*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmulhw %ymm2, %ymm0, %ymm0
263*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $15, %ymm0, %ymm3
264*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsraw $1, %ymm0, %ymm0
265*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpaddw %ymm3, %ymm0, %ymm0
266*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmulhw %ymm2, %ymm1, %ymm1
267*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $15, %ymm1, %ymm2
268*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsraw $1, %ymm1, %ymm1
269*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpaddw %ymm2, %ymm1, %ymm1
270*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
271*9880d681SAndroid Build Coastguard Worker;
272*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test_div7_32i16:
273*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0:
274*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmulhw {{.*}}(%rip), %zmm0, %zmm0
275*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpsrlw $15, %zmm0, %zmm1
276*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpsraw $1, %zmm0, %zmm0
277*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpaddw %zmm1, %zmm0, %zmm0
278*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
279*9880d681SAndroid Build Coastguard Worker  %res = sdiv <32 x i16> %a, <i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7>
280*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %res
281*9880d681SAndroid Build Coastguard Worker}
282*9880d681SAndroid Build Coastguard Worker
283*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test_div7_64i8(<64 x i8> %a) nounwind {
284*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test_div7_64i8:
285*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0:
286*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm2 = [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147]
287*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vextracti128 $1, %ymm2, %xmm3
288*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm3, %ymm3
289*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vextracti128 $1, %ymm0, %xmm4
290*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm4, %ymm4
291*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm3, %ymm4, %ymm4
292*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $8, %ymm4, %ymm4
293*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm2, %ymm2
294*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm0, %ymm5
295*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm2, %ymm5, %ymm5
296*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $8, %ymm5, %ymm5
297*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vperm2i128 {{.*#+}} ymm6 = ymm5[2,3],ymm4[2,3]
298*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vinserti128 $1, %xmm4, %ymm5, %ymm4
299*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpackuswb %ymm6, %ymm4, %ymm4
300*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpaddb %ymm0, %ymm4, %ymm0
301*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $7, %ymm0, %ymm4
302*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm5 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
303*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpand %ymm5, %ymm4, %ymm4
304*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $2, %ymm0, %ymm0
305*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm6 = [63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63]
306*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpand %ymm6, %ymm0, %ymm0
307*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm7 = [32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]
308*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpxor %ymm7, %ymm0, %ymm0
309*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsubb %ymm7, %ymm0, %ymm0
310*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpaddb %ymm4, %ymm0, %ymm0
311*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vextracti128 $1, %ymm1, %xmm4
312*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm4, %ymm4
313*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm3, %ymm4, %ymm3
314*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $8, %ymm3, %ymm3
315*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm1, %ymm4
316*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm2, %ymm4, %ymm2
317*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $8, %ymm2, %ymm2
318*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vperm2i128 {{.*#+}} ymm4 = ymm2[2,3],ymm3[2,3]
319*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vinserti128 $1, %xmm3, %ymm2, %ymm2
320*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpackuswb %ymm4, %ymm2, %ymm2
321*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpaddb %ymm1, %ymm2, %ymm1
322*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $7, %ymm1, %ymm2
323*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpand %ymm5, %ymm2, %ymm2
324*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $2, %ymm1, %ymm1
325*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpand %ymm6, %ymm1, %ymm1
326*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpxor %ymm7, %ymm1, %ymm1
327*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsubb %ymm7, %ymm1, %ymm1
328*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpaddb %ymm2, %ymm1, %ymm1
329*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
330*9880d681SAndroid Build Coastguard Worker;
331*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test_div7_64i8:
332*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0:
333*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vextracti32x4 $3, %zmm0, %xmm1
334*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $1, %xmm1, %eax
335*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
336*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
337*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
338*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
339*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
340*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
341*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
342*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
343*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
344*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $0, %xmm1, %ecx
345*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %cl, %ecx
346*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %edx
347*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %edx
348*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %cl
349*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %ecx, %edx
350*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
351*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %cl
352*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %cl
353*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %ecx
354*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vmovd %ecx, %xmm2
355*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $1, %eax, %xmm2, %xmm2
356*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $2, %xmm1, %eax
357*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
358*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
359*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
360*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
361*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
362*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
363*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
364*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
365*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
366*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $2, %eax, %xmm2, %xmm2
367*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $3, %xmm1, %eax
368*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
369*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
370*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
371*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
372*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
373*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
374*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
375*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
376*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
377*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $3, %eax, %xmm2, %xmm2
378*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $4, %xmm1, %eax
379*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
380*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
381*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
382*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
383*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
384*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
385*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
386*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
387*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
388*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $4, %eax, %xmm2, %xmm2
389*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $5, %xmm1, %eax
390*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
391*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
392*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
393*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
394*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
395*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
396*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
397*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
398*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
399*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $5, %eax, %xmm2, %xmm2
400*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $6, %xmm1, %eax
401*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
402*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
403*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
404*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
405*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
406*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
407*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
408*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
409*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
410*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $6, %eax, %xmm2, %xmm2
411*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $7, %xmm1, %eax
412*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
413*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
414*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
415*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
416*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
417*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
418*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
419*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
420*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
421*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $7, %eax, %xmm2, %xmm2
422*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $8, %xmm1, %eax
423*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
424*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
425*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
426*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
427*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
428*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
429*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
430*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
431*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
432*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $8, %eax, %xmm2, %xmm2
433*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $9, %xmm1, %eax
434*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
435*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
436*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
437*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
438*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
439*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
440*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
441*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
442*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
443*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $9, %eax, %xmm2, %xmm2
444*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $10, %xmm1, %eax
445*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
446*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
447*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
448*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
449*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
450*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
451*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
452*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
453*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
454*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $10, %eax, %xmm2, %xmm2
455*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $11, %xmm1, %eax
456*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
457*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
458*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
459*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
460*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
461*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
462*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
463*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
464*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
465*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $11, %eax, %xmm2, %xmm2
466*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $12, %xmm1, %eax
467*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
468*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
469*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
470*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
471*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
472*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
473*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
474*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
475*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
476*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $12, %eax, %xmm2, %xmm2
477*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $13, %xmm1, %eax
478*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
479*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
480*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
481*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
482*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
483*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
484*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
485*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
486*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
487*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $13, %eax, %xmm2, %xmm2
488*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $14, %xmm1, %eax
489*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
490*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
491*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
492*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
493*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
494*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
495*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
496*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
497*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
498*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $14, %eax, %xmm2, %xmm2
499*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $15, %xmm1, %eax
500*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
501*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
502*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
503*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
504*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
505*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
506*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
507*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
508*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
509*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $15, %eax, %xmm2, %xmm1
510*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vextracti32x4 $2, %zmm0, %xmm2
511*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $1, %xmm2, %eax
512*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
513*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
514*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
515*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
516*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
517*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
518*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
519*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
520*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
521*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $0, %xmm2, %ecx
522*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %cl, %ecx
523*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %edx
524*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %edx
525*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %cl
526*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %ecx, %edx
527*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
528*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %cl
529*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %cl
530*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %ecx
531*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vmovd %ecx, %xmm3
532*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $1, %eax, %xmm3, %xmm3
533*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $2, %xmm2, %eax
534*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
535*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
536*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
537*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
538*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
539*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
540*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
541*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
542*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
543*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $2, %eax, %xmm3, %xmm3
544*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $3, %xmm2, %eax
545*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
546*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
547*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
548*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
549*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
550*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
551*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
552*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
553*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
554*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $3, %eax, %xmm3, %xmm3
555*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $4, %xmm2, %eax
556*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
557*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
558*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
559*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
560*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
561*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
562*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
563*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
564*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
565*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $4, %eax, %xmm3, %xmm3
566*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $5, %xmm2, %eax
567*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
568*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
569*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
570*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
571*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
572*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
573*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
574*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
575*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
576*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $5, %eax, %xmm3, %xmm3
577*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $6, %xmm2, %eax
578*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
579*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
580*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
581*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
582*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
583*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
584*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
585*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
586*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
587*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $6, %eax, %xmm3, %xmm3
588*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $7, %xmm2, %eax
589*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
590*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
591*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
592*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
593*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
594*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
595*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
596*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
597*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
598*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $7, %eax, %xmm3, %xmm3
599*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $8, %xmm2, %eax
600*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
601*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
602*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
603*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
604*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
605*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
606*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
607*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
608*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
609*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $8, %eax, %xmm3, %xmm3
610*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $9, %xmm2, %eax
611*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
612*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
613*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
614*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
615*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
616*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
617*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
618*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
619*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
620*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $9, %eax, %xmm3, %xmm3
621*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $10, %xmm2, %eax
622*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
623*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
624*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
625*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
626*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
627*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
628*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
629*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
630*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
631*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $10, %eax, %xmm3, %xmm3
632*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $11, %xmm2, %eax
633*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
634*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
635*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
636*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
637*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
638*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
639*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
640*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
641*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
642*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $11, %eax, %xmm3, %xmm3
643*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $12, %xmm2, %eax
644*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
645*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
646*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
647*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
648*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
649*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
650*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
651*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
652*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
653*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $12, %eax, %xmm3, %xmm3
654*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $13, %xmm2, %eax
655*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
656*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
657*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
658*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
659*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
660*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
661*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
662*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
663*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
664*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $13, %eax, %xmm3, %xmm3
665*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $14, %xmm2, %eax
666*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
667*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
668*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
669*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
670*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
671*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
672*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
673*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
674*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
675*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $14, %eax, %xmm3, %xmm3
676*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $15, %xmm2, %eax
677*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
678*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
679*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
680*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
681*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
682*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
683*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
684*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
685*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
686*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $15, %eax, %xmm3, %xmm2
687*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vinserti128 $1, %xmm1, %ymm2, %ymm1
688*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vextracti32x4 $1, %zmm0, %xmm2
689*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $1, %xmm2, %eax
690*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
691*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
692*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
693*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
694*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
695*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
696*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
697*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
698*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
699*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $0, %xmm2, %ecx
700*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %cl, %ecx
701*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %edx
702*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %edx
703*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %cl
704*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %ecx, %edx
705*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
706*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %cl
707*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %cl
708*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %ecx
709*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vmovd %ecx, %xmm3
710*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $1, %eax, %xmm3, %xmm3
711*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $2, %xmm2, %eax
712*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
713*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
714*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
715*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
716*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
717*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
718*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
719*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
720*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
721*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $2, %eax, %xmm3, %xmm3
722*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $3, %xmm2, %eax
723*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
724*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
725*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
726*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
727*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
728*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
729*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
730*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
731*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
732*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $3, %eax, %xmm3, %xmm3
733*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $4, %xmm2, %eax
734*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
735*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
736*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
737*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
738*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
739*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
740*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
741*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
742*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
743*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $4, %eax, %xmm3, %xmm3
744*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $5, %xmm2, %eax
745*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
746*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
747*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
748*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
749*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
750*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
751*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
752*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
753*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
754*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $5, %eax, %xmm3, %xmm3
755*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $6, %xmm2, %eax
756*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
757*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
758*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
759*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
760*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
761*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
762*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
763*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
764*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
765*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $6, %eax, %xmm3, %xmm3
766*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $7, %xmm2, %eax
767*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
768*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
769*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
770*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
771*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
772*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
773*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
774*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
775*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
776*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $7, %eax, %xmm3, %xmm3
777*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $8, %xmm2, %eax
778*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
779*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
780*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
781*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
782*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
783*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
784*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
785*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
786*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
787*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $8, %eax, %xmm3, %xmm3
788*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $9, %xmm2, %eax
789*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
790*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
791*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
792*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
793*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
794*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
795*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
796*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
797*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
798*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $9, %eax, %xmm3, %xmm3
799*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $10, %xmm2, %eax
800*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
801*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
802*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
803*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
804*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
805*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
806*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
807*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
808*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
809*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $10, %eax, %xmm3, %xmm3
810*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $11, %xmm2, %eax
811*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
812*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
813*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
814*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
815*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
816*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
817*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
818*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
819*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
820*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $11, %eax, %xmm3, %xmm3
821*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $12, %xmm2, %eax
822*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
823*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
824*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
825*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
826*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
827*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
828*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
829*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
830*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
831*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $12, %eax, %xmm3, %xmm3
832*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $13, %xmm2, %eax
833*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
834*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
835*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
836*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
837*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
838*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
839*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
840*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
841*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
842*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $13, %eax, %xmm3, %xmm3
843*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $14, %xmm2, %eax
844*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
845*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
846*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
847*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
848*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
849*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
850*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
851*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
852*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
853*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $14, %eax, %xmm3, %xmm3
854*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $15, %xmm2, %eax
855*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
856*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
857*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
858*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
859*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
860*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
861*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
862*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
863*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
864*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $15, %eax, %xmm3, %xmm2
865*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $1, %xmm0, %eax
866*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
867*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
868*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
869*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
870*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
871*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
872*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
873*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
874*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
875*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $0, %xmm0, %ecx
876*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %cl, %ecx
877*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %edx
878*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %edx
879*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %cl
880*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %ecx, %edx
881*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
882*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %cl
883*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %cl
884*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %ecx
885*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vmovd %ecx, %xmm3
886*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $1, %eax, %xmm3, %xmm3
887*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $2, %xmm0, %eax
888*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
889*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
890*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
891*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
892*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
893*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
894*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
895*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
896*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
897*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $2, %eax, %xmm3, %xmm3
898*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $3, %xmm0, %eax
899*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
900*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
901*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
902*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
903*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
904*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
905*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
906*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
907*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
908*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $3, %eax, %xmm3, %xmm3
909*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $4, %xmm0, %eax
910*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
911*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
912*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
913*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
914*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
915*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
916*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
917*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
918*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
919*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $4, %eax, %xmm3, %xmm3
920*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $5, %xmm0, %eax
921*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
922*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
923*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
924*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
925*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
926*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
927*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
928*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
929*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
930*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $5, %eax, %xmm3, %xmm3
931*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $6, %xmm0, %eax
932*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
933*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
934*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
935*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
936*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
937*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
938*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
939*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
940*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
941*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $6, %eax, %xmm3, %xmm3
942*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $7, %xmm0, %eax
943*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
944*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
945*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
946*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
947*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
948*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
949*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
950*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
951*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
952*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $7, %eax, %xmm3, %xmm3
953*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $8, %xmm0, %eax
954*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
955*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
956*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
957*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
958*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
959*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
960*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
961*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
962*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
963*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $8, %eax, %xmm3, %xmm3
964*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $9, %xmm0, %eax
965*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
966*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
967*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
968*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
969*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
970*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
971*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
972*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
973*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
974*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $9, %eax, %xmm3, %xmm3
975*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $10, %xmm0, %eax
976*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
977*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
978*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
979*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
980*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
981*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
982*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
983*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
984*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
985*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $10, %eax, %xmm3, %xmm3
986*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $11, %xmm0, %eax
987*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
988*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
989*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
990*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
991*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
992*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
993*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
994*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
995*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
996*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $11, %eax, %xmm3, %xmm3
997*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $12, %xmm0, %eax
998*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
999*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
1000*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
1001*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1002*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
1003*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
1004*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1005*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1006*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
1007*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $12, %eax, %xmm3, %xmm3
1008*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $13, %xmm0, %eax
1009*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
1010*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
1011*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
1012*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1013*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
1014*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
1015*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1016*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1017*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
1018*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $13, %eax, %xmm3, %xmm3
1019*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $14, %xmm0, %eax
1020*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
1021*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
1022*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
1023*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1024*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
1025*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
1026*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1027*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1028*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
1029*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $14, %eax, %xmm3, %xmm3
1030*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $15, %xmm0, %eax
1031*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %eax
1032*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %eax, %ecx
1033*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %ecx
1034*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1035*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
1036*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
1037*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1038*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1039*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %al, %eax
1040*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $15, %eax, %xmm3, %xmm0
1041*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0
1042*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
1043*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
1044*9880d681SAndroid Build Coastguard Worker  %res = sdiv <64 x i8> %a, <i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7>
1045*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %res
1046*9880d681SAndroid Build Coastguard Worker}
1047*9880d681SAndroid Build Coastguard Worker
1048*9880d681SAndroid Build Coastguard Worker;
1049*9880d681SAndroid Build Coastguard Worker; srem by 7
1050*9880d681SAndroid Build Coastguard Worker;
1051*9880d681SAndroid Build Coastguard Worker
1052*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test_rem7_8i64(<8 x i64> %a) nounwind {
1053*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test_rem7_8i64:
1054*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0:
1055*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vextracti32x4 $3, %zmm0, %xmm1
1056*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrq $1, %xmm1, %rcx
1057*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movabsq $5270498306774157605, %rsi # imm = 0x4924924924924925
1058*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rcx, %rax
1059*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rsi
1060*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
1061*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
1062*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
1063*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
1064*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leaq (,%rdx,8), %rax
1065*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rdx, %rax
1066*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rax, %rcx
1067*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rcx, %xmm2
1068*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %xmm1, %rcx
1069*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rcx, %rax
1070*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rsi
1071*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
1072*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
1073*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
1074*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
1075*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leaq (,%rdx,8), %rax
1076*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rdx, %rax
1077*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rax, %rcx
1078*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rcx, %xmm1
1079*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1080*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vextracti32x4 $2, %zmm0, %xmm2
1081*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrq $1, %xmm2, %rcx
1082*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rcx, %rax
1083*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rsi
1084*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
1085*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
1086*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
1087*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
1088*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leaq (,%rdx,8), %rax
1089*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rdx, %rax
1090*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rax, %rcx
1091*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rcx, %xmm3
1092*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %xmm2, %rcx
1093*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rcx, %rax
1094*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rsi
1095*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
1096*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
1097*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
1098*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
1099*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leaq (,%rdx,8), %rax
1100*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rdx, %rax
1101*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rax, %rcx
1102*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rcx, %xmm2
1103*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm3[0]
1104*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vinserti128 $1, %xmm1, %ymm2, %ymm1
1105*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vextracti32x4 $1, %zmm0, %xmm2
1106*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrq $1, %xmm2, %rcx
1107*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rcx, %rax
1108*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rsi
1109*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
1110*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
1111*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
1112*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
1113*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leaq (,%rdx,8), %rax
1114*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rdx, %rax
1115*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rax, %rcx
1116*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rcx, %xmm3
1117*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %xmm2, %rcx
1118*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rcx, %rax
1119*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rsi
1120*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
1121*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
1122*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
1123*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
1124*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leaq (,%rdx,8), %rax
1125*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rdx, %rax
1126*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rax, %rcx
1127*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rcx, %xmm2
1128*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm3[0]
1129*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrq $1, %xmm0, %rcx
1130*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rcx, %rax
1131*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rsi
1132*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
1133*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
1134*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
1135*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
1136*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leaq (,%rdx,8), %rax
1137*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rdx, %rax
1138*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rax, %rcx
1139*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rcx, %xmm3
1140*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %xmm0, %rcx
1141*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rcx, %rax
1142*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq %rsi
1143*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movq %rdx, %rax
1144*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $63, %rax
1145*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarq %rdx
1146*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addq %rax, %rdx
1147*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leaq (,%rdx,8), %rax
1148*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rdx, %rax
1149*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subq %rax, %rcx
1150*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovq %rcx, %xmm0
1151*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm3[0]
1152*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0
1153*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
1154*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1155*9880d681SAndroid Build Coastguard Worker  %res = srem <8 x i64> %a, <i64 7, i64 7, i64 7, i64 7, i64 7, i64 7, i64 7, i64 7>
1156*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %res
1157*9880d681SAndroid Build Coastguard Worker}
1158*9880d681SAndroid Build Coastguard Worker
1159*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test_rem7_16i32(<16 x i32> %a) nounwind {
1160*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test_rem7_16i32:
1161*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0:
1162*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vextracti32x4 $3, %zmm0, %xmm1
1163*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $1, %xmm1, %eax
1164*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
1165*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
1166*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
1167*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %eax, %ecx
1168*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
1169*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
1170*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
1171*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
1172*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rcx,8), %edx
1173*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %ecx, %edx
1174*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %eax
1175*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %xmm1, %ecx
1176*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movslq %ecx, %rcx
1177*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rcx, %rdx # imm = 0x92492493
1178*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rdx
1179*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %edx
1180*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %edx, %esi
1181*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %esi
1182*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %edx
1183*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %esi, %edx
1184*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rdx,8), %esi
1185*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %esi
1186*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %esi, %ecx
1187*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %ecx, %xmm2
1188*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $1, %eax, %xmm2, %xmm2
1189*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $2, %xmm1, %eax
1190*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
1191*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
1192*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
1193*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %eax, %ecx
1194*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
1195*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
1196*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
1197*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
1198*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rcx,8), %edx
1199*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %ecx, %edx
1200*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %eax
1201*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $2, %eax, %xmm2, %xmm2
1202*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $3, %xmm1, %eax
1203*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
1204*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
1205*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
1206*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %eax, %ecx
1207*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
1208*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
1209*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
1210*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
1211*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rcx,8), %edx
1212*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %ecx, %edx
1213*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %eax
1214*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $3, %eax, %xmm2, %xmm1
1215*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vextracti32x4 $2, %zmm0, %xmm2
1216*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $1, %xmm2, %eax
1217*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
1218*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
1219*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
1220*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %eax, %ecx
1221*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
1222*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
1223*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
1224*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
1225*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rcx,8), %edx
1226*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %ecx, %edx
1227*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %eax
1228*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %xmm2, %ecx
1229*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movslq %ecx, %rcx
1230*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rcx, %rdx # imm = 0x92492493
1231*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rdx
1232*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %edx
1233*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %edx, %esi
1234*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %esi
1235*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %edx
1236*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %esi, %edx
1237*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rdx,8), %esi
1238*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %esi
1239*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %esi, %ecx
1240*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %ecx, %xmm3
1241*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $1, %eax, %xmm3, %xmm3
1242*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $2, %xmm2, %eax
1243*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
1244*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
1245*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
1246*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %eax, %ecx
1247*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
1248*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
1249*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
1250*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
1251*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rcx,8), %edx
1252*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %ecx, %edx
1253*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %eax
1254*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $2, %eax, %xmm3, %xmm3
1255*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $3, %xmm2, %eax
1256*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
1257*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
1258*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
1259*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %eax, %ecx
1260*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
1261*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
1262*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
1263*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
1264*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rcx,8), %edx
1265*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %ecx, %edx
1266*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %eax
1267*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $3, %eax, %xmm3, %xmm2
1268*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vinserti128 $1, %xmm1, %ymm2, %ymm1
1269*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vextracti32x4 $1, %zmm0, %xmm2
1270*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $1, %xmm2, %eax
1271*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
1272*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
1273*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
1274*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %eax, %ecx
1275*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
1276*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
1277*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
1278*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
1279*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rcx,8), %edx
1280*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %ecx, %edx
1281*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %eax
1282*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %xmm2, %ecx
1283*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movslq %ecx, %rcx
1284*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rcx, %rdx # imm = 0x92492493
1285*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rdx
1286*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %edx
1287*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %edx, %esi
1288*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %esi
1289*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %edx
1290*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %esi, %edx
1291*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rdx,8), %esi
1292*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %esi
1293*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %esi, %ecx
1294*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %ecx, %xmm3
1295*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $1, %eax, %xmm3, %xmm3
1296*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $2, %xmm2, %eax
1297*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
1298*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
1299*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
1300*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %eax, %ecx
1301*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
1302*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
1303*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
1304*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
1305*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rcx,8), %edx
1306*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %ecx, %edx
1307*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %eax
1308*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $2, %eax, %xmm3, %xmm3
1309*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $3, %xmm2, %eax
1310*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
1311*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
1312*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
1313*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %eax, %ecx
1314*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
1315*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
1316*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
1317*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
1318*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rcx,8), %edx
1319*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %ecx, %edx
1320*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %eax
1321*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $3, %eax, %xmm3, %xmm2
1322*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $1, %xmm0, %eax
1323*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
1324*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
1325*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
1326*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %eax, %ecx
1327*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
1328*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
1329*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
1330*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
1331*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rcx,8), %edx
1332*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %ecx, %edx
1333*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %eax
1334*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %xmm0, %ecx
1335*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movslq %ecx, %rcx
1336*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rcx, %rdx # imm = 0x92492493
1337*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rdx
1338*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %ecx, %edx
1339*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %edx, %esi
1340*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %esi
1341*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %edx
1342*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %esi, %edx
1343*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rdx,8), %esi
1344*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %esi
1345*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %esi, %ecx
1346*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vmovd %ecx, %xmm3
1347*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $1, %eax, %xmm3, %xmm3
1348*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $2, %xmm0, %eax
1349*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
1350*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
1351*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
1352*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %eax, %ecx
1353*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
1354*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
1355*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
1356*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
1357*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rcx,8), %edx
1358*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %ecx, %edx
1359*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %eax
1360*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $2, %eax, %xmm3, %xmm3
1361*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpextrd $3, %xmm0, %eax
1362*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    cltq
1363*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    imulq $-1840700269, %rax, %rcx # imm = 0x92492493
1364*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrq $32, %rcx
1365*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %eax, %ecx
1366*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    movl %ecx, %edx
1367*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    shrl $31, %edx
1368*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    sarl $2, %ecx
1369*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    addl %edx, %ecx
1370*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    leal (,%rcx,8), %edx
1371*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %ecx, %edx
1372*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    subl %edx, %eax
1373*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpinsrd $3, %eax, %xmm3, %xmm0
1374*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0
1375*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
1376*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1377*9880d681SAndroid Build Coastguard Worker  %res = srem <16 x i32> %a, <i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7>
1378*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %res
1379*9880d681SAndroid Build Coastguard Worker}
1380*9880d681SAndroid Build Coastguard Worker
1381*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test_rem7_32i16(<32 x i16> %a) nounwind {
1382*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test_rem7_32i16:
1383*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0:
1384*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm2 = [18725,18725,18725,18725,18725,18725,18725,18725,18725,18725,18725,18725,18725,18725,18725,18725]
1385*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmulhw %ymm2, %ymm0, %ymm3
1386*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $15, %ymm3, %ymm4
1387*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsraw $1, %ymm3, %ymm3
1388*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpaddw %ymm4, %ymm3, %ymm3
1389*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm4 = [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]
1390*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm4, %ymm3, %ymm3
1391*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsubw %ymm3, %ymm0, %ymm0
1392*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmulhw %ymm2, %ymm1, %ymm2
1393*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $15, %ymm2, %ymm3
1394*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsraw $1, %ymm2, %ymm2
1395*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpaddw %ymm3, %ymm2, %ymm2
1396*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm4, %ymm2, %ymm2
1397*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsubw %ymm2, %ymm1, %ymm1
1398*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1399*9880d681SAndroid Build Coastguard Worker;
1400*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test_rem7_32i16:
1401*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0:
1402*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmulhw {{.*}}(%rip), %zmm0, %zmm1
1403*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpsrlw $15, %zmm1, %zmm2
1404*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpsraw $1, %zmm1, %zmm1
1405*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpaddw %zmm2, %zmm1, %zmm1
1406*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmullw {{.*}}(%rip), %zmm1, %zmm1
1407*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpsubw %zmm1, %zmm0, %zmm0
1408*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
1409*9880d681SAndroid Build Coastguard Worker  %res = srem <32 x i16> %a, <i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7, i16 7>
1410*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %res
1411*9880d681SAndroid Build Coastguard Worker}
1412*9880d681SAndroid Build Coastguard Worker
1413*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test_rem7_64i8(<64 x i8> %a) nounwind {
1414*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test_rem7_64i8:
1415*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0:
1416*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm3 = [147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147]
1417*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vextracti128 $1, %ymm3, %xmm2
1418*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm2, %ymm2
1419*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vextracti128 $1, %ymm0, %xmm4
1420*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm4, %ymm4
1421*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm2, %ymm4, %ymm4
1422*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $8, %ymm4, %ymm4
1423*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm3, %ymm3
1424*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm0, %ymm5
1425*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm3, %ymm5, %ymm5
1426*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $8, %ymm5, %ymm5
1427*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vperm2i128 {{.*#+}} ymm6 = ymm5[2,3],ymm4[2,3]
1428*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vinserti128 $1, %xmm4, %ymm5, %ymm4
1429*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpackuswb %ymm6, %ymm4, %ymm4
1430*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpaddb %ymm0, %ymm4, %ymm4
1431*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $7, %ymm4, %ymm6
1432*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm10 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
1433*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpand %ymm10, %ymm6, %ymm8
1434*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $2, %ymm4, %ymm4
1435*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm6 = [63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63]
1436*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpand %ymm6, %ymm4, %ymm4
1437*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vmovdqa {{.*#+}} ymm7 = [32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]
1438*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpxor %ymm7, %ymm4, %ymm4
1439*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsubb %ymm7, %ymm4, %ymm4
1440*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpaddb %ymm8, %ymm4, %ymm8
1441*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm8, %ymm9
1442*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw {{.*}}(%rip), %ymm4
1443*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm4, %ymm9, %ymm9
1444*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxwd %ymm9, %zmm9
1445*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovdb %zmm9, %xmm9
1446*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vextracti128 $1, %ymm8, %xmm5
1447*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm5, %ymm5
1448*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm4, %ymm5, %ymm5
1449*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxwd %ymm5, %zmm5
1450*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovdb %zmm5, %xmm5
1451*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vinserti128 $1, %xmm5, %ymm9, %ymm5
1452*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsubb %ymm5, %ymm0, %ymm0
1453*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vextracti128 $1, %ymm1, %xmm5
1454*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm5, %ymm5
1455*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm2, %ymm5, %ymm2
1456*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $8, %ymm2, %ymm2
1457*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm1, %ymm5
1458*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm3, %ymm5, %ymm3
1459*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $8, %ymm3, %ymm3
1460*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vperm2i128 {{.*#+}} ymm5 = ymm3[2,3],ymm2[2,3]
1461*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm2
1462*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpackuswb %ymm5, %ymm2, %ymm2
1463*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpaddb %ymm1, %ymm2, %ymm2
1464*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $7, %ymm2, %ymm3
1465*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpand %ymm10, %ymm3, %ymm3
1466*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsrlw $2, %ymm2, %ymm2
1467*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpand %ymm6, %ymm2, %ymm2
1468*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpxor %ymm7, %ymm2, %ymm2
1469*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsubb %ymm7, %ymm2, %ymm2
1470*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpaddb %ymm3, %ymm2, %ymm2
1471*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm2, %ymm3
1472*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm4, %ymm3, %ymm3
1473*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxwd %ymm3, %zmm3
1474*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovdb %zmm3, %xmm3
1475*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vextracti128 $1, %ymm2, %xmm2
1476*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxbw %xmm2, %ymm2
1477*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmullw %ymm4, %ymm2, %ymm2
1478*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovsxwd %ymm2, %zmm2
1479*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmovdb %zmm2, %xmm2
1480*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vinserti128 $1, %xmm2, %ymm3, %ymm2
1481*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpsubb %ymm2, %ymm1, %ymm1
1482*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1483*9880d681SAndroid Build Coastguard Worker;
1484*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test_rem7_64i8:
1485*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0:
1486*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vextracti32x4 $3, %zmm0, %xmm1
1487*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $1, %xmm1, %eax
1488*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %edx
1489*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %edx, %eax
1490*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1491*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1492*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
1493*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
1494*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1495*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1496*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movb $7, %dil
1497*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1498*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1499*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %dl
1500*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %dl, %edx
1501*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $0, %xmm1, %eax
1502*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %esi
1503*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %esi, %eax
1504*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1505*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %sil, %al
1506*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
1507*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
1508*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1509*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1510*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1511*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1512*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %sil
1513*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %sil, %eax
1514*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vmovd %eax, %xmm2
1515*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $1, %edx, %xmm2, %xmm2
1516*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $2, %xmm1, %eax
1517*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1518*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1519*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1520*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1521*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1522*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1523*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1524*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1525*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1526*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1527*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1528*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1529*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $2, %eax, %xmm2, %xmm2
1530*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $3, %xmm1, %eax
1531*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1532*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1533*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1534*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1535*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1536*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1537*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1538*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1539*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1540*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1541*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1542*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1543*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $3, %eax, %xmm2, %xmm2
1544*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $4, %xmm1, %eax
1545*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1546*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1547*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1548*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1549*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1550*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1551*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1552*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1553*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1554*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1555*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1556*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1557*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $4, %eax, %xmm2, %xmm2
1558*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $5, %xmm1, %eax
1559*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1560*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1561*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1562*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1563*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1564*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1565*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1566*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1567*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1568*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1569*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1570*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1571*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $5, %eax, %xmm2, %xmm2
1572*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $6, %xmm1, %eax
1573*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1574*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1575*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1576*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1577*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1578*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1579*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1580*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1581*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1582*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1583*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1584*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1585*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $6, %eax, %xmm2, %xmm2
1586*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $7, %xmm1, %eax
1587*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1588*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1589*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1590*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1591*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1592*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1593*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1594*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1595*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1596*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1597*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1598*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1599*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $7, %eax, %xmm2, %xmm2
1600*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $8, %xmm1, %eax
1601*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1602*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1603*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1604*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1605*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1606*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1607*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1608*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1609*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1610*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1611*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1612*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1613*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $8, %eax, %xmm2, %xmm2
1614*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $9, %xmm1, %eax
1615*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1616*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1617*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1618*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1619*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1620*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1621*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1622*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1623*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1624*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1625*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1626*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1627*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $9, %eax, %xmm2, %xmm2
1628*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $10, %xmm1, %eax
1629*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1630*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1631*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1632*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1633*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1634*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1635*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1636*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1637*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1638*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1639*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1640*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1641*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $10, %eax, %xmm2, %xmm2
1642*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $11, %xmm1, %eax
1643*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1644*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1645*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1646*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1647*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1648*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1649*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1650*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1651*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1652*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1653*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1654*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1655*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $11, %eax, %xmm2, %xmm2
1656*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $12, %xmm1, %eax
1657*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1658*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1659*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1660*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1661*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1662*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1663*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1664*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1665*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1666*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1667*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1668*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1669*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $12, %eax, %xmm2, %xmm2
1670*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $13, %xmm1, %eax
1671*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1672*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1673*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1674*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1675*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1676*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1677*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1678*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1679*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1680*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1681*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1682*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1683*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $13, %eax, %xmm2, %xmm2
1684*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $14, %xmm1, %eax
1685*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1686*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1687*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1688*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1689*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1690*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1691*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1692*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1693*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1694*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1695*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1696*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1697*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $14, %eax, %xmm2, %xmm2
1698*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $15, %xmm1, %eax
1699*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1700*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1701*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1702*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1703*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1704*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1705*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1706*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1707*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1708*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1709*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1710*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1711*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $15, %eax, %xmm2, %xmm1
1712*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vextracti32x4 $2, %zmm0, %xmm2
1713*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $1, %xmm2, %eax
1714*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1715*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1716*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1717*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1718*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1719*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1720*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1721*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1722*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1723*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1724*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1725*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %esi
1726*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $0, %xmm2, %eax
1727*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %edx
1728*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %edx, %eax
1729*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1730*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1731*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
1732*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
1733*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1734*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1735*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1736*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1737*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %dl
1738*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %dl, %eax
1739*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vmovd %eax, %xmm3
1740*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $1, %esi, %xmm3, %xmm3
1741*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $2, %xmm2, %eax
1742*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1743*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1744*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1745*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1746*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1747*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1748*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1749*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1750*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1751*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1752*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1753*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1754*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $2, %eax, %xmm3, %xmm3
1755*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $3, %xmm2, %eax
1756*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1757*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1758*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1759*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1760*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1761*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1762*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1763*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1764*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1765*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1766*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1767*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1768*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $3, %eax, %xmm3, %xmm3
1769*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $4, %xmm2, %eax
1770*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1771*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1772*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1773*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1774*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1775*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1776*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1777*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1778*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1779*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1780*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1781*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1782*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $4, %eax, %xmm3, %xmm3
1783*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $5, %xmm2, %eax
1784*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1785*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1786*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1787*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1788*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1789*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1790*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1791*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1792*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1793*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1794*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1795*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1796*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $5, %eax, %xmm3, %xmm3
1797*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $6, %xmm2, %eax
1798*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1799*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1800*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1801*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1802*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1803*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1804*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1805*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1806*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1807*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1808*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1809*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1810*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $6, %eax, %xmm3, %xmm3
1811*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $7, %xmm2, %eax
1812*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1813*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1814*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1815*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1816*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1817*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1818*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1819*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1820*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1821*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1822*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1823*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1824*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $7, %eax, %xmm3, %xmm3
1825*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $8, %xmm2, %eax
1826*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1827*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1828*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1829*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1830*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1831*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1832*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1833*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1834*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1835*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1836*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1837*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1838*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $8, %eax, %xmm3, %xmm3
1839*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $9, %xmm2, %eax
1840*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1841*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1842*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1843*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1844*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1845*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1846*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1847*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1848*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1849*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1850*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1851*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1852*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $9, %eax, %xmm3, %xmm3
1853*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $10, %xmm2, %eax
1854*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1855*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1856*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1857*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1858*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1859*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1860*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1861*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1862*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1863*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1864*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1865*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1866*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $10, %eax, %xmm3, %xmm3
1867*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $11, %xmm2, %eax
1868*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1869*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1870*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1871*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1872*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1873*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1874*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1875*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1876*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1877*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1878*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1879*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1880*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $11, %eax, %xmm3, %xmm3
1881*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $12, %xmm2, %eax
1882*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1883*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1884*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1885*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1886*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1887*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1888*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1889*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1890*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1891*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1892*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1893*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1894*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $12, %eax, %xmm3, %xmm3
1895*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $13, %xmm2, %eax
1896*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1897*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1898*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1899*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1900*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1901*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1902*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1903*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1904*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1905*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1906*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1907*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1908*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $13, %eax, %xmm3, %xmm3
1909*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $14, %xmm2, %eax
1910*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1911*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1912*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1913*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1914*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1915*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1916*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1917*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1918*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1919*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1920*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1921*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1922*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $14, %eax, %xmm3, %xmm3
1923*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $15, %xmm2, %eax
1924*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1925*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1926*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1927*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1928*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1929*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1930*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1931*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1932*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1933*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1934*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1935*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1936*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $15, %eax, %xmm3, %xmm2
1937*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vinserti128 $1, %xmm1, %ymm2, %ymm1
1938*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vextracti32x4 $1, %zmm0, %xmm2
1939*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $1, %xmm2, %eax
1940*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1941*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1942*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1943*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1944*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1945*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1946*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1947*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1948*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1949*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1950*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1951*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %esi
1952*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $0, %xmm2, %eax
1953*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %edx
1954*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %edx, %eax
1955*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1956*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1957*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
1958*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
1959*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1960*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1961*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1962*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1963*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %dl
1964*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %dl, %eax
1965*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vmovd %eax, %xmm3
1966*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $1, %esi, %xmm3, %xmm3
1967*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $2, %xmm2, %eax
1968*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1969*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1970*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1971*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1972*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1973*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1974*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1975*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1976*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1977*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1978*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1979*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1980*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $2, %eax, %xmm3, %xmm3
1981*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $3, %xmm2, %eax
1982*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1983*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1984*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1985*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
1986*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
1987*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
1988*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
1989*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
1990*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
1991*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
1992*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
1993*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
1994*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $3, %eax, %xmm3, %xmm3
1995*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $4, %xmm2, %eax
1996*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
1997*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
1998*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
1999*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2000*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2001*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2002*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2003*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2004*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2005*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2006*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2007*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2008*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $4, %eax, %xmm3, %xmm3
2009*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $5, %xmm2, %eax
2010*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2011*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2012*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2013*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2014*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2015*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2016*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2017*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2018*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2019*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2020*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2021*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2022*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $5, %eax, %xmm3, %xmm3
2023*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $6, %xmm2, %eax
2024*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2025*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2026*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2027*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2028*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2029*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2030*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2031*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2032*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2033*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2034*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2035*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2036*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $6, %eax, %xmm3, %xmm3
2037*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $7, %xmm2, %eax
2038*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2039*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2040*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2041*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2042*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2043*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2044*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2045*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2046*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2047*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2048*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2049*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2050*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $7, %eax, %xmm3, %xmm3
2051*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $8, %xmm2, %eax
2052*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2053*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2054*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2055*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2056*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2057*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2058*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2059*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2060*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2061*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2062*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2063*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2064*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $8, %eax, %xmm3, %xmm3
2065*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $9, %xmm2, %eax
2066*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2067*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2068*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2069*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2070*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2071*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2072*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2073*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2074*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2075*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2076*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2077*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2078*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $9, %eax, %xmm3, %xmm3
2079*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $10, %xmm2, %eax
2080*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2081*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2082*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2083*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2084*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2085*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2086*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2087*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2088*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2089*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2090*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2091*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2092*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $10, %eax, %xmm3, %xmm3
2093*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $11, %xmm2, %eax
2094*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2095*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2096*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2097*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2098*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2099*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2100*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2101*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2102*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2103*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2104*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2105*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2106*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $11, %eax, %xmm3, %xmm3
2107*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $12, %xmm2, %eax
2108*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2109*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2110*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2111*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2112*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2113*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2114*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2115*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2116*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2117*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2118*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2119*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2120*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $12, %eax, %xmm3, %xmm3
2121*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $13, %xmm2, %eax
2122*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2123*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2124*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2125*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2126*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2127*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2128*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2129*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2130*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2131*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2132*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2133*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2134*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $13, %eax, %xmm3, %xmm3
2135*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $14, %xmm2, %eax
2136*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2137*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2138*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2139*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2140*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2141*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2142*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2143*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2144*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2145*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2146*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2147*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2148*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $14, %eax, %xmm3, %xmm3
2149*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $15, %xmm2, %eax
2150*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2151*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2152*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2153*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2154*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2155*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2156*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2157*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2158*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2159*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2160*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2161*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2162*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $15, %eax, %xmm3, %xmm2
2163*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $1, %xmm0, %eax
2164*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2165*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2166*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2167*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2168*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2169*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2170*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2171*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2172*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2173*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2174*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2175*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %esi
2176*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $0, %xmm0, %eax
2177*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %edx
2178*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %edx, %eax
2179*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2180*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2181*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %ecx
2182*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %cl
2183*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2184*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2185*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2186*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2187*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %dl
2188*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %dl, %eax
2189*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vmovd %eax, %xmm3
2190*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $1, %esi, %xmm3, %xmm3
2191*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $2, %xmm0, %eax
2192*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2193*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2194*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2195*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2196*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2197*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2198*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2199*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2200*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2201*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2202*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2203*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2204*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $2, %eax, %xmm3, %xmm3
2205*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $3, %xmm0, %eax
2206*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2207*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2208*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2209*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2210*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2211*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2212*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2213*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2214*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2215*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2216*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2217*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2218*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $3, %eax, %xmm3, %xmm3
2219*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $4, %xmm0, %eax
2220*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2221*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2222*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2223*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2224*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2225*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2226*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2227*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2228*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2229*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2230*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2231*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2232*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $4, %eax, %xmm3, %xmm3
2233*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $5, %xmm0, %eax
2234*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2235*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2236*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2237*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2238*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2239*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2240*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2241*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2242*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2243*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2244*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2245*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2246*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $5, %eax, %xmm3, %xmm3
2247*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $6, %xmm0, %eax
2248*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2249*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2250*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2251*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2252*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2253*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2254*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2255*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2256*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2257*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2258*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2259*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2260*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $6, %eax, %xmm3, %xmm3
2261*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $7, %xmm0, %eax
2262*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2263*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2264*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2265*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2266*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2267*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2268*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2269*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2270*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2271*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2272*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2273*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2274*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $7, %eax, %xmm3, %xmm3
2275*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $8, %xmm0, %eax
2276*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2277*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2278*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2279*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2280*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2281*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2282*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2283*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2284*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2285*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2286*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2287*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2288*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $8, %eax, %xmm3, %xmm3
2289*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $9, %xmm0, %eax
2290*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2291*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2292*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2293*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2294*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2295*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2296*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2297*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2298*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2299*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2300*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2301*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2302*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $9, %eax, %xmm3, %xmm3
2303*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $10, %xmm0, %eax
2304*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2305*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2306*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2307*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2308*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2309*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2310*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2311*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2312*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2313*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2314*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2315*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2316*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $10, %eax, %xmm3, %xmm3
2317*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $11, %xmm0, %eax
2318*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2319*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2320*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2321*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2322*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2323*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2324*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2325*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2326*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2327*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2328*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2329*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2330*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $11, %eax, %xmm3, %xmm3
2331*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $12, %xmm0, %eax
2332*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2333*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2334*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2335*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2336*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2337*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2338*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2339*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2340*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2341*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2342*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2343*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2344*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $12, %eax, %xmm3, %xmm3
2345*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $13, %xmm0, %eax
2346*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2347*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2348*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2349*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2350*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2351*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2352*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2353*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2354*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2355*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2356*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2357*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2358*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $13, %eax, %xmm3, %xmm3
2359*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $14, %xmm0, %eax
2360*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2361*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2362*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2363*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2364*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2365*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2366*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2367*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2368*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2369*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2370*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2371*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2372*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $14, %eax, %xmm3, %xmm3
2373*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpextrb $15, %xmm0, %eax
2374*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movsbl %al, %ecx
2375*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    imull $-109, %ecx, %eax
2376*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrl $8, %eax
2377*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %cl, %al
2378*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movl %eax, %edx
2379*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    shrb $7, %dl
2380*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    sarb $2, %al
2381*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    addb %dl, %al
2382*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    # kill: %AL<def> %AL<kill> %EAX<kill>
2383*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    mulb %dil
2384*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    subb %al, %cl
2385*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    movzbl %cl, %eax
2386*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpinsrb $15, %eax, %xmm3, %xmm0
2387*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0
2388*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
2389*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
2390*9880d681SAndroid Build Coastguard Worker  %res = srem <64 x i8> %a, <i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7,i8 7, i8 7, i8 7, i8 7>
2391*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %res
2392*9880d681SAndroid Build Coastguard Worker}
2393