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