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