1*4757b351SPierre Pronchery/* Do not modify. This file is auto-generated from rsaz-3k-avxifma.pl. */ 2*4757b351SPierre Pronchery.text 3*4757b351SPierre Pronchery 4*4757b351SPierre Pronchery.globl ossl_rsaz_amm52x30_x1_avxifma256 5*4757b351SPierre Pronchery.type ossl_rsaz_amm52x30_x1_avxifma256,@function 6*4757b351SPierre Pronchery.align 32 7*4757b351SPierre Proncheryossl_rsaz_amm52x30_x1_avxifma256: 8*4757b351SPierre Pronchery.cfi_startproc 9*4757b351SPierre Pronchery.byte 243,15,30,250 10*4757b351SPierre Pronchery pushq %rbx 11*4757b351SPierre Pronchery.cfi_adjust_cfa_offset 8 12*4757b351SPierre Pronchery.cfi_offset %rbx,-16 13*4757b351SPierre Pronchery pushq %rbp 14*4757b351SPierre Pronchery.cfi_adjust_cfa_offset 8 15*4757b351SPierre Pronchery.cfi_offset %rbp,-24 16*4757b351SPierre Pronchery pushq %r12 17*4757b351SPierre Pronchery.cfi_adjust_cfa_offset 8 18*4757b351SPierre Pronchery.cfi_offset %r12,-32 19*4757b351SPierre Pronchery pushq %r13 20*4757b351SPierre Pronchery.cfi_adjust_cfa_offset 8 21*4757b351SPierre Pronchery.cfi_offset %r13,-40 22*4757b351SPierre Pronchery pushq %r14 23*4757b351SPierre Pronchery.cfi_adjust_cfa_offset 8 24*4757b351SPierre Pronchery.cfi_offset %r14,-48 25*4757b351SPierre Pronchery pushq %r15 26*4757b351SPierre Pronchery.cfi_adjust_cfa_offset 8 27*4757b351SPierre Pronchery.cfi_offset %r15,-56 28*4757b351SPierre Pronchery 29*4757b351SPierre Pronchery vpxor %ymm0,%ymm0,%ymm0 30*4757b351SPierre Pronchery vmovapd %ymm0,%ymm3 31*4757b351SPierre Pronchery vmovapd %ymm0,%ymm4 32*4757b351SPierre Pronchery vmovapd %ymm0,%ymm5 33*4757b351SPierre Pronchery vmovapd %ymm0,%ymm6 34*4757b351SPierre Pronchery vmovapd %ymm0,%ymm7 35*4757b351SPierre Pronchery vmovapd %ymm0,%ymm8 36*4757b351SPierre Pronchery vmovapd %ymm0,%ymm9 37*4757b351SPierre Pronchery vmovapd %ymm0,%ymm10 38*4757b351SPierre Pronchery 39*4757b351SPierre Pronchery xorl %r9d,%r9d 40*4757b351SPierre Pronchery 41*4757b351SPierre Pronchery movq %rdx,%r11 42*4757b351SPierre Pronchery movq $0xfffffffffffff,%rax 43*4757b351SPierre Pronchery 44*4757b351SPierre Pronchery 45*4757b351SPierre Pronchery movl $7,%ebx 46*4757b351SPierre Pronchery 47*4757b351SPierre Pronchery.align 32 48*4757b351SPierre Pronchery.Lloop7: 49*4757b351SPierre Pronchery movq 0(%r11),%r13 50*4757b351SPierre Pronchery 51*4757b351SPierre Pronchery vpbroadcastq 0(%r11),%ymm1 52*4757b351SPierre Pronchery movq 0(%rsi),%rdx 53*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 54*4757b351SPierre Pronchery addq %r13,%r9 55*4757b351SPierre Pronchery movq %r12,%r10 56*4757b351SPierre Pronchery adcq $0,%r10 57*4757b351SPierre Pronchery 58*4757b351SPierre Pronchery movq %r8,%r13 59*4757b351SPierre Pronchery imulq %r9,%r13 60*4757b351SPierre Pronchery andq %rax,%r13 61*4757b351SPierre Pronchery 62*4757b351SPierre Pronchery vmovq %r13,%xmm2 63*4757b351SPierre Pronchery vpbroadcastq %xmm2,%ymm2 64*4757b351SPierre Pronchery movq 0(%rcx),%rdx 65*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 66*4757b351SPierre Pronchery addq %r13,%r9 67*4757b351SPierre Pronchery adcq %r12,%r10 68*4757b351SPierre Pronchery 69*4757b351SPierre Pronchery shrq $52,%r9 70*4757b351SPierre Pronchery salq $12,%r10 71*4757b351SPierre Pronchery orq %r10,%r9 72*4757b351SPierre Pronchery 73*4757b351SPierre Pronchery leaq -264(%rsp),%rsp 74*4757b351SPierre Pronchery 75*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rsi),%ymm1,%ymm3 76*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rsi),%ymm1,%ymm4 77*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rsi),%ymm1,%ymm5 78*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rsi),%ymm1,%ymm6 79*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rsi),%ymm1,%ymm7 80*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rsi),%ymm1,%ymm8 81*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rsi),%ymm1,%ymm9 82*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rsi),%ymm1,%ymm10 83*4757b351SPierre Pronchery 84*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rcx),%ymm2,%ymm3 85*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rcx),%ymm2,%ymm4 86*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rcx),%ymm2,%ymm5 87*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rcx),%ymm2,%ymm6 88*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rcx),%ymm2,%ymm7 89*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rcx),%ymm2,%ymm8 90*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rcx),%ymm2,%ymm9 91*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rcx),%ymm2,%ymm10 92*4757b351SPierre Pronchery 93*4757b351SPierre Pronchery 94*4757b351SPierre Pronchery vmovdqu %ymm3,0(%rsp) 95*4757b351SPierre Pronchery vmovdqu %ymm4,32(%rsp) 96*4757b351SPierre Pronchery vmovdqu %ymm5,64(%rsp) 97*4757b351SPierre Pronchery vmovdqu %ymm6,96(%rsp) 98*4757b351SPierre Pronchery vmovdqu %ymm7,128(%rsp) 99*4757b351SPierre Pronchery vmovdqu %ymm8,160(%rsp) 100*4757b351SPierre Pronchery vmovdqu %ymm9,192(%rsp) 101*4757b351SPierre Pronchery vmovdqu %ymm10,224(%rsp) 102*4757b351SPierre Pronchery movq $0,256(%rsp) 103*4757b351SPierre Pronchery 104*4757b351SPierre Pronchery vmovdqu 8(%rsp),%ymm3 105*4757b351SPierre Pronchery vmovdqu 40(%rsp),%ymm4 106*4757b351SPierre Pronchery vmovdqu 72(%rsp),%ymm5 107*4757b351SPierre Pronchery vmovdqu 104(%rsp),%ymm6 108*4757b351SPierre Pronchery vmovdqu 136(%rsp),%ymm7 109*4757b351SPierre Pronchery vmovdqu 168(%rsp),%ymm8 110*4757b351SPierre Pronchery vmovdqu 200(%rsp),%ymm9 111*4757b351SPierre Pronchery vmovdqu 232(%rsp),%ymm10 112*4757b351SPierre Pronchery 113*4757b351SPierre Pronchery addq 8(%rsp),%r9 114*4757b351SPierre Pronchery 115*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rsi),%ymm1,%ymm3 116*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rsi),%ymm1,%ymm4 117*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rsi),%ymm1,%ymm5 118*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rsi),%ymm1,%ymm6 119*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rsi),%ymm1,%ymm7 120*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rsi),%ymm1,%ymm8 121*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rsi),%ymm1,%ymm9 122*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rsi),%ymm1,%ymm10 123*4757b351SPierre Pronchery 124*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rcx),%ymm2,%ymm3 125*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rcx),%ymm2,%ymm4 126*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rcx),%ymm2,%ymm5 127*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rcx),%ymm2,%ymm6 128*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rcx),%ymm2,%ymm7 129*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rcx),%ymm2,%ymm8 130*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rcx),%ymm2,%ymm9 131*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rcx),%ymm2,%ymm10 132*4757b351SPierre Pronchery 133*4757b351SPierre Pronchery leaq 264(%rsp),%rsp 134*4757b351SPierre Pronchery movq 8(%r11),%r13 135*4757b351SPierre Pronchery 136*4757b351SPierre Pronchery vpbroadcastq 8(%r11),%ymm1 137*4757b351SPierre Pronchery movq 0(%rsi),%rdx 138*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 139*4757b351SPierre Pronchery addq %r13,%r9 140*4757b351SPierre Pronchery movq %r12,%r10 141*4757b351SPierre Pronchery adcq $0,%r10 142*4757b351SPierre Pronchery 143*4757b351SPierre Pronchery movq %r8,%r13 144*4757b351SPierre Pronchery imulq %r9,%r13 145*4757b351SPierre Pronchery andq %rax,%r13 146*4757b351SPierre Pronchery 147*4757b351SPierre Pronchery vmovq %r13,%xmm2 148*4757b351SPierre Pronchery vpbroadcastq %xmm2,%ymm2 149*4757b351SPierre Pronchery movq 0(%rcx),%rdx 150*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 151*4757b351SPierre Pronchery addq %r13,%r9 152*4757b351SPierre Pronchery adcq %r12,%r10 153*4757b351SPierre Pronchery 154*4757b351SPierre Pronchery shrq $52,%r9 155*4757b351SPierre Pronchery salq $12,%r10 156*4757b351SPierre Pronchery orq %r10,%r9 157*4757b351SPierre Pronchery 158*4757b351SPierre Pronchery leaq -264(%rsp),%rsp 159*4757b351SPierre Pronchery 160*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rsi),%ymm1,%ymm3 161*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rsi),%ymm1,%ymm4 162*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rsi),%ymm1,%ymm5 163*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rsi),%ymm1,%ymm6 164*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rsi),%ymm1,%ymm7 165*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rsi),%ymm1,%ymm8 166*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rsi),%ymm1,%ymm9 167*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rsi),%ymm1,%ymm10 168*4757b351SPierre Pronchery 169*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rcx),%ymm2,%ymm3 170*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rcx),%ymm2,%ymm4 171*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rcx),%ymm2,%ymm5 172*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rcx),%ymm2,%ymm6 173*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rcx),%ymm2,%ymm7 174*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rcx),%ymm2,%ymm8 175*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rcx),%ymm2,%ymm9 176*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rcx),%ymm2,%ymm10 177*4757b351SPierre Pronchery 178*4757b351SPierre Pronchery 179*4757b351SPierre Pronchery vmovdqu %ymm3,0(%rsp) 180*4757b351SPierre Pronchery vmovdqu %ymm4,32(%rsp) 181*4757b351SPierre Pronchery vmovdqu %ymm5,64(%rsp) 182*4757b351SPierre Pronchery vmovdqu %ymm6,96(%rsp) 183*4757b351SPierre Pronchery vmovdqu %ymm7,128(%rsp) 184*4757b351SPierre Pronchery vmovdqu %ymm8,160(%rsp) 185*4757b351SPierre Pronchery vmovdqu %ymm9,192(%rsp) 186*4757b351SPierre Pronchery vmovdqu %ymm10,224(%rsp) 187*4757b351SPierre Pronchery movq $0,256(%rsp) 188*4757b351SPierre Pronchery 189*4757b351SPierre Pronchery vmovdqu 8(%rsp),%ymm3 190*4757b351SPierre Pronchery vmovdqu 40(%rsp),%ymm4 191*4757b351SPierre Pronchery vmovdqu 72(%rsp),%ymm5 192*4757b351SPierre Pronchery vmovdqu 104(%rsp),%ymm6 193*4757b351SPierre Pronchery vmovdqu 136(%rsp),%ymm7 194*4757b351SPierre Pronchery vmovdqu 168(%rsp),%ymm8 195*4757b351SPierre Pronchery vmovdqu 200(%rsp),%ymm9 196*4757b351SPierre Pronchery vmovdqu 232(%rsp),%ymm10 197*4757b351SPierre Pronchery 198*4757b351SPierre Pronchery addq 8(%rsp),%r9 199*4757b351SPierre Pronchery 200*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rsi),%ymm1,%ymm3 201*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rsi),%ymm1,%ymm4 202*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rsi),%ymm1,%ymm5 203*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rsi),%ymm1,%ymm6 204*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rsi),%ymm1,%ymm7 205*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rsi),%ymm1,%ymm8 206*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rsi),%ymm1,%ymm9 207*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rsi),%ymm1,%ymm10 208*4757b351SPierre Pronchery 209*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rcx),%ymm2,%ymm3 210*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rcx),%ymm2,%ymm4 211*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rcx),%ymm2,%ymm5 212*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rcx),%ymm2,%ymm6 213*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rcx),%ymm2,%ymm7 214*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rcx),%ymm2,%ymm8 215*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rcx),%ymm2,%ymm9 216*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rcx),%ymm2,%ymm10 217*4757b351SPierre Pronchery 218*4757b351SPierre Pronchery leaq 264(%rsp),%rsp 219*4757b351SPierre Pronchery movq 16(%r11),%r13 220*4757b351SPierre Pronchery 221*4757b351SPierre Pronchery vpbroadcastq 16(%r11),%ymm1 222*4757b351SPierre Pronchery movq 0(%rsi),%rdx 223*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 224*4757b351SPierre Pronchery addq %r13,%r9 225*4757b351SPierre Pronchery movq %r12,%r10 226*4757b351SPierre Pronchery adcq $0,%r10 227*4757b351SPierre Pronchery 228*4757b351SPierre Pronchery movq %r8,%r13 229*4757b351SPierre Pronchery imulq %r9,%r13 230*4757b351SPierre Pronchery andq %rax,%r13 231*4757b351SPierre Pronchery 232*4757b351SPierre Pronchery vmovq %r13,%xmm2 233*4757b351SPierre Pronchery vpbroadcastq %xmm2,%ymm2 234*4757b351SPierre Pronchery movq 0(%rcx),%rdx 235*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 236*4757b351SPierre Pronchery addq %r13,%r9 237*4757b351SPierre Pronchery adcq %r12,%r10 238*4757b351SPierre Pronchery 239*4757b351SPierre Pronchery shrq $52,%r9 240*4757b351SPierre Pronchery salq $12,%r10 241*4757b351SPierre Pronchery orq %r10,%r9 242*4757b351SPierre Pronchery 243*4757b351SPierre Pronchery leaq -264(%rsp),%rsp 244*4757b351SPierre Pronchery 245*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rsi),%ymm1,%ymm3 246*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rsi),%ymm1,%ymm4 247*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rsi),%ymm1,%ymm5 248*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rsi),%ymm1,%ymm6 249*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rsi),%ymm1,%ymm7 250*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rsi),%ymm1,%ymm8 251*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rsi),%ymm1,%ymm9 252*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rsi),%ymm1,%ymm10 253*4757b351SPierre Pronchery 254*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rcx),%ymm2,%ymm3 255*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rcx),%ymm2,%ymm4 256*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rcx),%ymm2,%ymm5 257*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rcx),%ymm2,%ymm6 258*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rcx),%ymm2,%ymm7 259*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rcx),%ymm2,%ymm8 260*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rcx),%ymm2,%ymm9 261*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rcx),%ymm2,%ymm10 262*4757b351SPierre Pronchery 263*4757b351SPierre Pronchery 264*4757b351SPierre Pronchery vmovdqu %ymm3,0(%rsp) 265*4757b351SPierre Pronchery vmovdqu %ymm4,32(%rsp) 266*4757b351SPierre Pronchery vmovdqu %ymm5,64(%rsp) 267*4757b351SPierre Pronchery vmovdqu %ymm6,96(%rsp) 268*4757b351SPierre Pronchery vmovdqu %ymm7,128(%rsp) 269*4757b351SPierre Pronchery vmovdqu %ymm8,160(%rsp) 270*4757b351SPierre Pronchery vmovdqu %ymm9,192(%rsp) 271*4757b351SPierre Pronchery vmovdqu %ymm10,224(%rsp) 272*4757b351SPierre Pronchery movq $0,256(%rsp) 273*4757b351SPierre Pronchery 274*4757b351SPierre Pronchery vmovdqu 8(%rsp),%ymm3 275*4757b351SPierre Pronchery vmovdqu 40(%rsp),%ymm4 276*4757b351SPierre Pronchery vmovdqu 72(%rsp),%ymm5 277*4757b351SPierre Pronchery vmovdqu 104(%rsp),%ymm6 278*4757b351SPierre Pronchery vmovdqu 136(%rsp),%ymm7 279*4757b351SPierre Pronchery vmovdqu 168(%rsp),%ymm8 280*4757b351SPierre Pronchery vmovdqu 200(%rsp),%ymm9 281*4757b351SPierre Pronchery vmovdqu 232(%rsp),%ymm10 282*4757b351SPierre Pronchery 283*4757b351SPierre Pronchery addq 8(%rsp),%r9 284*4757b351SPierre Pronchery 285*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rsi),%ymm1,%ymm3 286*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rsi),%ymm1,%ymm4 287*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rsi),%ymm1,%ymm5 288*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rsi),%ymm1,%ymm6 289*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rsi),%ymm1,%ymm7 290*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rsi),%ymm1,%ymm8 291*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rsi),%ymm1,%ymm9 292*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rsi),%ymm1,%ymm10 293*4757b351SPierre Pronchery 294*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rcx),%ymm2,%ymm3 295*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rcx),%ymm2,%ymm4 296*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rcx),%ymm2,%ymm5 297*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rcx),%ymm2,%ymm6 298*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rcx),%ymm2,%ymm7 299*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rcx),%ymm2,%ymm8 300*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rcx),%ymm2,%ymm9 301*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rcx),%ymm2,%ymm10 302*4757b351SPierre Pronchery 303*4757b351SPierre Pronchery leaq 264(%rsp),%rsp 304*4757b351SPierre Pronchery movq 24(%r11),%r13 305*4757b351SPierre Pronchery 306*4757b351SPierre Pronchery vpbroadcastq 24(%r11),%ymm1 307*4757b351SPierre Pronchery movq 0(%rsi),%rdx 308*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 309*4757b351SPierre Pronchery addq %r13,%r9 310*4757b351SPierre Pronchery movq %r12,%r10 311*4757b351SPierre Pronchery adcq $0,%r10 312*4757b351SPierre Pronchery 313*4757b351SPierre Pronchery movq %r8,%r13 314*4757b351SPierre Pronchery imulq %r9,%r13 315*4757b351SPierre Pronchery andq %rax,%r13 316*4757b351SPierre Pronchery 317*4757b351SPierre Pronchery vmovq %r13,%xmm2 318*4757b351SPierre Pronchery vpbroadcastq %xmm2,%ymm2 319*4757b351SPierre Pronchery movq 0(%rcx),%rdx 320*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 321*4757b351SPierre Pronchery addq %r13,%r9 322*4757b351SPierre Pronchery adcq %r12,%r10 323*4757b351SPierre Pronchery 324*4757b351SPierre Pronchery shrq $52,%r9 325*4757b351SPierre Pronchery salq $12,%r10 326*4757b351SPierre Pronchery orq %r10,%r9 327*4757b351SPierre Pronchery 328*4757b351SPierre Pronchery leaq -264(%rsp),%rsp 329*4757b351SPierre Pronchery 330*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rsi),%ymm1,%ymm3 331*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rsi),%ymm1,%ymm4 332*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rsi),%ymm1,%ymm5 333*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rsi),%ymm1,%ymm6 334*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rsi),%ymm1,%ymm7 335*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rsi),%ymm1,%ymm8 336*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rsi),%ymm1,%ymm9 337*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rsi),%ymm1,%ymm10 338*4757b351SPierre Pronchery 339*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rcx),%ymm2,%ymm3 340*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rcx),%ymm2,%ymm4 341*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rcx),%ymm2,%ymm5 342*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rcx),%ymm2,%ymm6 343*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rcx),%ymm2,%ymm7 344*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rcx),%ymm2,%ymm8 345*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rcx),%ymm2,%ymm9 346*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rcx),%ymm2,%ymm10 347*4757b351SPierre Pronchery 348*4757b351SPierre Pronchery 349*4757b351SPierre Pronchery vmovdqu %ymm3,0(%rsp) 350*4757b351SPierre Pronchery vmovdqu %ymm4,32(%rsp) 351*4757b351SPierre Pronchery vmovdqu %ymm5,64(%rsp) 352*4757b351SPierre Pronchery vmovdqu %ymm6,96(%rsp) 353*4757b351SPierre Pronchery vmovdqu %ymm7,128(%rsp) 354*4757b351SPierre Pronchery vmovdqu %ymm8,160(%rsp) 355*4757b351SPierre Pronchery vmovdqu %ymm9,192(%rsp) 356*4757b351SPierre Pronchery vmovdqu %ymm10,224(%rsp) 357*4757b351SPierre Pronchery movq $0,256(%rsp) 358*4757b351SPierre Pronchery 359*4757b351SPierre Pronchery vmovdqu 8(%rsp),%ymm3 360*4757b351SPierre Pronchery vmovdqu 40(%rsp),%ymm4 361*4757b351SPierre Pronchery vmovdqu 72(%rsp),%ymm5 362*4757b351SPierre Pronchery vmovdqu 104(%rsp),%ymm6 363*4757b351SPierre Pronchery vmovdqu 136(%rsp),%ymm7 364*4757b351SPierre Pronchery vmovdqu 168(%rsp),%ymm8 365*4757b351SPierre Pronchery vmovdqu 200(%rsp),%ymm9 366*4757b351SPierre Pronchery vmovdqu 232(%rsp),%ymm10 367*4757b351SPierre Pronchery 368*4757b351SPierre Pronchery addq 8(%rsp),%r9 369*4757b351SPierre Pronchery 370*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rsi),%ymm1,%ymm3 371*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rsi),%ymm1,%ymm4 372*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rsi),%ymm1,%ymm5 373*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rsi),%ymm1,%ymm6 374*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rsi),%ymm1,%ymm7 375*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rsi),%ymm1,%ymm8 376*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rsi),%ymm1,%ymm9 377*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rsi),%ymm1,%ymm10 378*4757b351SPierre Pronchery 379*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rcx),%ymm2,%ymm3 380*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rcx),%ymm2,%ymm4 381*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rcx),%ymm2,%ymm5 382*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rcx),%ymm2,%ymm6 383*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rcx),%ymm2,%ymm7 384*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rcx),%ymm2,%ymm8 385*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rcx),%ymm2,%ymm9 386*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rcx),%ymm2,%ymm10 387*4757b351SPierre Pronchery 388*4757b351SPierre Pronchery leaq 264(%rsp),%rsp 389*4757b351SPierre Pronchery leaq 32(%r11),%r11 390*4757b351SPierre Pronchery decl %ebx 391*4757b351SPierre Pronchery jne .Lloop7 392*4757b351SPierre Pronchery movq 0(%r11),%r13 393*4757b351SPierre Pronchery 394*4757b351SPierre Pronchery vpbroadcastq 0(%r11),%ymm1 395*4757b351SPierre Pronchery movq 0(%rsi),%rdx 396*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 397*4757b351SPierre Pronchery addq %r13,%r9 398*4757b351SPierre Pronchery movq %r12,%r10 399*4757b351SPierre Pronchery adcq $0,%r10 400*4757b351SPierre Pronchery 401*4757b351SPierre Pronchery movq %r8,%r13 402*4757b351SPierre Pronchery imulq %r9,%r13 403*4757b351SPierre Pronchery andq %rax,%r13 404*4757b351SPierre Pronchery 405*4757b351SPierre Pronchery vmovq %r13,%xmm2 406*4757b351SPierre Pronchery vpbroadcastq %xmm2,%ymm2 407*4757b351SPierre Pronchery movq 0(%rcx),%rdx 408*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 409*4757b351SPierre Pronchery addq %r13,%r9 410*4757b351SPierre Pronchery adcq %r12,%r10 411*4757b351SPierre Pronchery 412*4757b351SPierre Pronchery shrq $52,%r9 413*4757b351SPierre Pronchery salq $12,%r10 414*4757b351SPierre Pronchery orq %r10,%r9 415*4757b351SPierre Pronchery 416*4757b351SPierre Pronchery leaq -264(%rsp),%rsp 417*4757b351SPierre Pronchery 418*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rsi),%ymm1,%ymm3 419*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rsi),%ymm1,%ymm4 420*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rsi),%ymm1,%ymm5 421*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rsi),%ymm1,%ymm6 422*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rsi),%ymm1,%ymm7 423*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rsi),%ymm1,%ymm8 424*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rsi),%ymm1,%ymm9 425*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rsi),%ymm1,%ymm10 426*4757b351SPierre Pronchery 427*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rcx),%ymm2,%ymm3 428*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rcx),%ymm2,%ymm4 429*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rcx),%ymm2,%ymm5 430*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rcx),%ymm2,%ymm6 431*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rcx),%ymm2,%ymm7 432*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rcx),%ymm2,%ymm8 433*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rcx),%ymm2,%ymm9 434*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rcx),%ymm2,%ymm10 435*4757b351SPierre Pronchery 436*4757b351SPierre Pronchery 437*4757b351SPierre Pronchery vmovdqu %ymm3,0(%rsp) 438*4757b351SPierre Pronchery vmovdqu %ymm4,32(%rsp) 439*4757b351SPierre Pronchery vmovdqu %ymm5,64(%rsp) 440*4757b351SPierre Pronchery vmovdqu %ymm6,96(%rsp) 441*4757b351SPierre Pronchery vmovdqu %ymm7,128(%rsp) 442*4757b351SPierre Pronchery vmovdqu %ymm8,160(%rsp) 443*4757b351SPierre Pronchery vmovdqu %ymm9,192(%rsp) 444*4757b351SPierre Pronchery vmovdqu %ymm10,224(%rsp) 445*4757b351SPierre Pronchery movq $0,256(%rsp) 446*4757b351SPierre Pronchery 447*4757b351SPierre Pronchery vmovdqu 8(%rsp),%ymm3 448*4757b351SPierre Pronchery vmovdqu 40(%rsp),%ymm4 449*4757b351SPierre Pronchery vmovdqu 72(%rsp),%ymm5 450*4757b351SPierre Pronchery vmovdqu 104(%rsp),%ymm6 451*4757b351SPierre Pronchery vmovdqu 136(%rsp),%ymm7 452*4757b351SPierre Pronchery vmovdqu 168(%rsp),%ymm8 453*4757b351SPierre Pronchery vmovdqu 200(%rsp),%ymm9 454*4757b351SPierre Pronchery vmovdqu 232(%rsp),%ymm10 455*4757b351SPierre Pronchery 456*4757b351SPierre Pronchery addq 8(%rsp),%r9 457*4757b351SPierre Pronchery 458*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rsi),%ymm1,%ymm3 459*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rsi),%ymm1,%ymm4 460*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rsi),%ymm1,%ymm5 461*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rsi),%ymm1,%ymm6 462*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rsi),%ymm1,%ymm7 463*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rsi),%ymm1,%ymm8 464*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rsi),%ymm1,%ymm9 465*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rsi),%ymm1,%ymm10 466*4757b351SPierre Pronchery 467*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rcx),%ymm2,%ymm3 468*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rcx),%ymm2,%ymm4 469*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rcx),%ymm2,%ymm5 470*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rcx),%ymm2,%ymm6 471*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rcx),%ymm2,%ymm7 472*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rcx),%ymm2,%ymm8 473*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rcx),%ymm2,%ymm9 474*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rcx),%ymm2,%ymm10 475*4757b351SPierre Pronchery 476*4757b351SPierre Pronchery leaq 264(%rsp),%rsp 477*4757b351SPierre Pronchery movq 8(%r11),%r13 478*4757b351SPierre Pronchery 479*4757b351SPierre Pronchery vpbroadcastq 8(%r11),%ymm1 480*4757b351SPierre Pronchery movq 0(%rsi),%rdx 481*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 482*4757b351SPierre Pronchery addq %r13,%r9 483*4757b351SPierre Pronchery movq %r12,%r10 484*4757b351SPierre Pronchery adcq $0,%r10 485*4757b351SPierre Pronchery 486*4757b351SPierre Pronchery movq %r8,%r13 487*4757b351SPierre Pronchery imulq %r9,%r13 488*4757b351SPierre Pronchery andq %rax,%r13 489*4757b351SPierre Pronchery 490*4757b351SPierre Pronchery vmovq %r13,%xmm2 491*4757b351SPierre Pronchery vpbroadcastq %xmm2,%ymm2 492*4757b351SPierre Pronchery movq 0(%rcx),%rdx 493*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 494*4757b351SPierre Pronchery addq %r13,%r9 495*4757b351SPierre Pronchery adcq %r12,%r10 496*4757b351SPierre Pronchery 497*4757b351SPierre Pronchery shrq $52,%r9 498*4757b351SPierre Pronchery salq $12,%r10 499*4757b351SPierre Pronchery orq %r10,%r9 500*4757b351SPierre Pronchery 501*4757b351SPierre Pronchery leaq -264(%rsp),%rsp 502*4757b351SPierre Pronchery 503*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rsi),%ymm1,%ymm3 504*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rsi),%ymm1,%ymm4 505*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rsi),%ymm1,%ymm5 506*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rsi),%ymm1,%ymm6 507*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rsi),%ymm1,%ymm7 508*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rsi),%ymm1,%ymm8 509*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rsi),%ymm1,%ymm9 510*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rsi),%ymm1,%ymm10 511*4757b351SPierre Pronchery 512*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rcx),%ymm2,%ymm3 513*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rcx),%ymm2,%ymm4 514*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rcx),%ymm2,%ymm5 515*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rcx),%ymm2,%ymm6 516*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rcx),%ymm2,%ymm7 517*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rcx),%ymm2,%ymm8 518*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rcx),%ymm2,%ymm9 519*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rcx),%ymm2,%ymm10 520*4757b351SPierre Pronchery 521*4757b351SPierre Pronchery 522*4757b351SPierre Pronchery vmovdqu %ymm3,0(%rsp) 523*4757b351SPierre Pronchery vmovdqu %ymm4,32(%rsp) 524*4757b351SPierre Pronchery vmovdqu %ymm5,64(%rsp) 525*4757b351SPierre Pronchery vmovdqu %ymm6,96(%rsp) 526*4757b351SPierre Pronchery vmovdqu %ymm7,128(%rsp) 527*4757b351SPierre Pronchery vmovdqu %ymm8,160(%rsp) 528*4757b351SPierre Pronchery vmovdqu %ymm9,192(%rsp) 529*4757b351SPierre Pronchery vmovdqu %ymm10,224(%rsp) 530*4757b351SPierre Pronchery movq $0,256(%rsp) 531*4757b351SPierre Pronchery 532*4757b351SPierre Pronchery vmovdqu 8(%rsp),%ymm3 533*4757b351SPierre Pronchery vmovdqu 40(%rsp),%ymm4 534*4757b351SPierre Pronchery vmovdqu 72(%rsp),%ymm5 535*4757b351SPierre Pronchery vmovdqu 104(%rsp),%ymm6 536*4757b351SPierre Pronchery vmovdqu 136(%rsp),%ymm7 537*4757b351SPierre Pronchery vmovdqu 168(%rsp),%ymm8 538*4757b351SPierre Pronchery vmovdqu 200(%rsp),%ymm9 539*4757b351SPierre Pronchery vmovdqu 232(%rsp),%ymm10 540*4757b351SPierre Pronchery 541*4757b351SPierre Pronchery addq 8(%rsp),%r9 542*4757b351SPierre Pronchery 543*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rsi),%ymm1,%ymm3 544*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rsi),%ymm1,%ymm4 545*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rsi),%ymm1,%ymm5 546*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rsi),%ymm1,%ymm6 547*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rsi),%ymm1,%ymm7 548*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rsi),%ymm1,%ymm8 549*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rsi),%ymm1,%ymm9 550*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rsi),%ymm1,%ymm10 551*4757b351SPierre Pronchery 552*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rcx),%ymm2,%ymm3 553*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rcx),%ymm2,%ymm4 554*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rcx),%ymm2,%ymm5 555*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rcx),%ymm2,%ymm6 556*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rcx),%ymm2,%ymm7 557*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rcx),%ymm2,%ymm8 558*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rcx),%ymm2,%ymm9 559*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rcx),%ymm2,%ymm10 560*4757b351SPierre Pronchery 561*4757b351SPierre Pronchery leaq 264(%rsp),%rsp 562*4757b351SPierre Pronchery 563*4757b351SPierre Pronchery vmovq %r9,%xmm0 564*4757b351SPierre Pronchery vpbroadcastq %xmm0,%ymm0 565*4757b351SPierre Pronchery vpblendd $3,%ymm0,%ymm3,%ymm3 566*4757b351SPierre Pronchery 567*4757b351SPierre Pronchery 568*4757b351SPierre Pronchery 569*4757b351SPierre Pronchery vpsrlq $52,%ymm3,%ymm0 570*4757b351SPierre Pronchery vpsrlq $52,%ymm4,%ymm1 571*4757b351SPierre Pronchery vpsrlq $52,%ymm5,%ymm2 572*4757b351SPierre Pronchery vpsrlq $52,%ymm6,%ymm11 573*4757b351SPierre Pronchery vpsrlq $52,%ymm7,%ymm12 574*4757b351SPierre Pronchery vpsrlq $52,%ymm8,%ymm13 575*4757b351SPierre Pronchery vpsrlq $52,%ymm9,%ymm14 576*4757b351SPierre Pronchery vpsrlq $52,%ymm10,%ymm15 577*4757b351SPierre Pronchery 578*4757b351SPierre Pronchery leaq -32(%rsp),%rsp 579*4757b351SPierre Pronchery vmovupd %ymm3,(%rsp) 580*4757b351SPierre Pronchery 581*4757b351SPierre Pronchery 582*4757b351SPierre Pronchery vpermq $144,%ymm15,%ymm15 583*4757b351SPierre Pronchery vpermq $3,%ymm14,%ymm3 584*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm15,%ymm15 585*4757b351SPierre Pronchery 586*4757b351SPierre Pronchery vpermq $144,%ymm14,%ymm14 587*4757b351SPierre Pronchery vpermq $3,%ymm13,%ymm3 588*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm14,%ymm14 589*4757b351SPierre Pronchery 590*4757b351SPierre Pronchery vpermq $144,%ymm13,%ymm13 591*4757b351SPierre Pronchery vpermq $3,%ymm12,%ymm3 592*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm13,%ymm13 593*4757b351SPierre Pronchery 594*4757b351SPierre Pronchery vpermq $144,%ymm12,%ymm12 595*4757b351SPierre Pronchery vpermq $3,%ymm11,%ymm3 596*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm12,%ymm12 597*4757b351SPierre Pronchery 598*4757b351SPierre Pronchery vpermq $144,%ymm11,%ymm11 599*4757b351SPierre Pronchery vpermq $3,%ymm2,%ymm3 600*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm11,%ymm11 601*4757b351SPierre Pronchery 602*4757b351SPierre Pronchery vpermq $144,%ymm2,%ymm2 603*4757b351SPierre Pronchery vpermq $3,%ymm1,%ymm3 604*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm2,%ymm2 605*4757b351SPierre Pronchery 606*4757b351SPierre Pronchery vpermq $144,%ymm1,%ymm1 607*4757b351SPierre Pronchery vpermq $3,%ymm0,%ymm3 608*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm1,%ymm1 609*4757b351SPierre Pronchery 610*4757b351SPierre Pronchery vpermq $144,%ymm0,%ymm0 611*4757b351SPierre Pronchery vpand .Lhigh64x3(%rip),%ymm0,%ymm0 612*4757b351SPierre Pronchery 613*4757b351SPierre Pronchery vmovupd (%rsp),%ymm3 614*4757b351SPierre Pronchery leaq 32(%rsp),%rsp 615*4757b351SPierre Pronchery 616*4757b351SPierre Pronchery 617*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm3,%ymm3 618*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm4,%ymm4 619*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm5,%ymm5 620*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm6,%ymm6 621*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm7,%ymm7 622*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm8,%ymm8 623*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm9,%ymm9 624*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm10,%ymm10 625*4757b351SPierre Pronchery 626*4757b351SPierre Pronchery 627*4757b351SPierre Pronchery vpaddq %ymm0,%ymm3,%ymm3 628*4757b351SPierre Pronchery vpaddq %ymm1,%ymm4,%ymm4 629*4757b351SPierre Pronchery vpaddq %ymm2,%ymm5,%ymm5 630*4757b351SPierre Pronchery vpaddq %ymm11,%ymm6,%ymm6 631*4757b351SPierre Pronchery vpaddq %ymm12,%ymm7,%ymm7 632*4757b351SPierre Pronchery vpaddq %ymm13,%ymm8,%ymm8 633*4757b351SPierre Pronchery vpaddq %ymm14,%ymm9,%ymm9 634*4757b351SPierre Pronchery vpaddq %ymm15,%ymm10,%ymm10 635*4757b351SPierre Pronchery 636*4757b351SPierre Pronchery 637*4757b351SPierre Pronchery 638*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm3,%ymm0 639*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm4,%ymm1 640*4757b351SPierre Pronchery vmovmskpd %ymm0,%r14d 641*4757b351SPierre Pronchery vmovmskpd %ymm1,%r13d 642*4757b351SPierre Pronchery shlb $4,%r13b 643*4757b351SPierre Pronchery orb %r13b,%r14b 644*4757b351SPierre Pronchery 645*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm5,%ymm2 646*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm6,%ymm11 647*4757b351SPierre Pronchery vmovmskpd %ymm2,%r13d 648*4757b351SPierre Pronchery vmovmskpd %ymm11,%r12d 649*4757b351SPierre Pronchery shlb $4,%r12b 650*4757b351SPierre Pronchery orb %r12b,%r13b 651*4757b351SPierre Pronchery 652*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm7,%ymm12 653*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm8,%ymm13 654*4757b351SPierre Pronchery vmovmskpd %ymm12,%r12d 655*4757b351SPierre Pronchery vmovmskpd %ymm13,%r11d 656*4757b351SPierre Pronchery shlb $4,%r11b 657*4757b351SPierre Pronchery orb %r11b,%r12b 658*4757b351SPierre Pronchery 659*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm9,%ymm14 660*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm10,%ymm15 661*4757b351SPierre Pronchery vmovmskpd %ymm14,%r11d 662*4757b351SPierre Pronchery vmovmskpd %ymm15,%r10d 663*4757b351SPierre Pronchery shlb $4,%r10b 664*4757b351SPierre Pronchery orb %r10b,%r11b 665*4757b351SPierre Pronchery 666*4757b351SPierre Pronchery addb %r14b,%r14b 667*4757b351SPierre Pronchery adcb %r13b,%r13b 668*4757b351SPierre Pronchery adcb %r12b,%r12b 669*4757b351SPierre Pronchery adcb %r11b,%r11b 670*4757b351SPierre Pronchery 671*4757b351SPierre Pronchery 672*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm3,%ymm0 673*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm4,%ymm1 674*4757b351SPierre Pronchery vmovmskpd %ymm0,%r9d 675*4757b351SPierre Pronchery vmovmskpd %ymm1,%r8d 676*4757b351SPierre Pronchery shlb $4,%r8b 677*4757b351SPierre Pronchery orb %r8b,%r9b 678*4757b351SPierre Pronchery 679*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm5,%ymm2 680*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm6,%ymm11 681*4757b351SPierre Pronchery vmovmskpd %ymm2,%r8d 682*4757b351SPierre Pronchery vmovmskpd %ymm11,%edx 683*4757b351SPierre Pronchery shlb $4,%dl 684*4757b351SPierre Pronchery orb %dl,%r8b 685*4757b351SPierre Pronchery 686*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm7,%ymm12 687*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm8,%ymm13 688*4757b351SPierre Pronchery vmovmskpd %ymm12,%edx 689*4757b351SPierre Pronchery vmovmskpd %ymm13,%ecx 690*4757b351SPierre Pronchery shlb $4,%cl 691*4757b351SPierre Pronchery orb %cl,%dl 692*4757b351SPierre Pronchery 693*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm9,%ymm14 694*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm10,%ymm15 695*4757b351SPierre Pronchery vmovmskpd %ymm14,%ecx 696*4757b351SPierre Pronchery vmovmskpd %ymm15,%ebx 697*4757b351SPierre Pronchery shlb $4,%bl 698*4757b351SPierre Pronchery orb %bl,%cl 699*4757b351SPierre Pronchery 700*4757b351SPierre Pronchery addb %r9b,%r14b 701*4757b351SPierre Pronchery adcb %r8b,%r13b 702*4757b351SPierre Pronchery adcb %dl,%r12b 703*4757b351SPierre Pronchery adcb %cl,%r11b 704*4757b351SPierre Pronchery 705*4757b351SPierre Pronchery xorb %r9b,%r14b 706*4757b351SPierre Pronchery xorb %r8b,%r13b 707*4757b351SPierre Pronchery xorb %dl,%r12b 708*4757b351SPierre Pronchery xorb %cl,%r11b 709*4757b351SPierre Pronchery 710*4757b351SPierre Pronchery leaq .Lkmasklut(%rip),%rdx 711*4757b351SPierre Pronchery 712*4757b351SPierre Pronchery movb %r14b,%r10b 713*4757b351SPierre Pronchery andq $0xf,%r14 714*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm3,%ymm0 715*4757b351SPierre Pronchery shlq $5,%r14 716*4757b351SPierre Pronchery vmovapd (%rdx,%r14,1),%ymm2 717*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm3,%ymm3 718*4757b351SPierre Pronchery 719*4757b351SPierre Pronchery shrb $4,%r10b 720*4757b351SPierre Pronchery andq $0xf,%r10 721*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm4,%ymm0 722*4757b351SPierre Pronchery shlq $5,%r10 723*4757b351SPierre Pronchery vmovapd (%rdx,%r10,1),%ymm2 724*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm4,%ymm4 725*4757b351SPierre Pronchery 726*4757b351SPierre Pronchery movb %r13b,%r10b 727*4757b351SPierre Pronchery andq $0xf,%r13 728*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm5,%ymm0 729*4757b351SPierre Pronchery shlq $5,%r13 730*4757b351SPierre Pronchery vmovapd (%rdx,%r13,1),%ymm2 731*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm5,%ymm5 732*4757b351SPierre Pronchery 733*4757b351SPierre Pronchery shrb $4,%r10b 734*4757b351SPierre Pronchery andq $0xf,%r10 735*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm6,%ymm0 736*4757b351SPierre Pronchery shlq $5,%r10 737*4757b351SPierre Pronchery vmovapd (%rdx,%r10,1),%ymm2 738*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm6,%ymm6 739*4757b351SPierre Pronchery 740*4757b351SPierre Pronchery movb %r12b,%r10b 741*4757b351SPierre Pronchery andq $0xf,%r12 742*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm7,%ymm0 743*4757b351SPierre Pronchery shlq $5,%r12 744*4757b351SPierre Pronchery vmovapd (%rdx,%r12,1),%ymm2 745*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm7,%ymm7 746*4757b351SPierre Pronchery 747*4757b351SPierre Pronchery shrb $4,%r10b 748*4757b351SPierre Pronchery andq $0xf,%r10 749*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm8,%ymm0 750*4757b351SPierre Pronchery shlq $5,%r10 751*4757b351SPierre Pronchery vmovapd (%rdx,%r10,1),%ymm2 752*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm8,%ymm8 753*4757b351SPierre Pronchery 754*4757b351SPierre Pronchery movb %r11b,%r10b 755*4757b351SPierre Pronchery andq $0xf,%r11 756*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm9,%ymm0 757*4757b351SPierre Pronchery shlq $5,%r11 758*4757b351SPierre Pronchery vmovapd (%rdx,%r11,1),%ymm2 759*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm9,%ymm9 760*4757b351SPierre Pronchery 761*4757b351SPierre Pronchery shrb $4,%r10b 762*4757b351SPierre Pronchery andq $0xf,%r10 763*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm10,%ymm0 764*4757b351SPierre Pronchery shlq $5,%r10 765*4757b351SPierre Pronchery vmovapd (%rdx,%r10,1),%ymm2 766*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm10,%ymm10 767*4757b351SPierre Pronchery 768*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm3,%ymm3 769*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm4,%ymm4 770*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm5,%ymm5 771*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm6,%ymm6 772*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm7,%ymm7 773*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm8,%ymm8 774*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm9,%ymm9 775*4757b351SPierre Pronchery 776*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm10,%ymm10 777*4757b351SPierre Pronchery 778*4757b351SPierre Pronchery vmovdqu %ymm3,0(%rdi) 779*4757b351SPierre Pronchery vmovdqu %ymm4,32(%rdi) 780*4757b351SPierre Pronchery vmovdqu %ymm5,64(%rdi) 781*4757b351SPierre Pronchery vmovdqu %ymm6,96(%rdi) 782*4757b351SPierre Pronchery vmovdqu %ymm7,128(%rdi) 783*4757b351SPierre Pronchery vmovdqu %ymm8,160(%rdi) 784*4757b351SPierre Pronchery vmovdqu %ymm9,192(%rdi) 785*4757b351SPierre Pronchery vmovdqu %ymm10,224(%rdi) 786*4757b351SPierre Pronchery 787*4757b351SPierre Pronchery vzeroupper 788*4757b351SPierre Pronchery leaq (%rsp),%rax 789*4757b351SPierre Pronchery.cfi_def_cfa_register %rax 790*4757b351SPierre Pronchery movq 0(%rax),%r15 791*4757b351SPierre Pronchery.cfi_restore %r15 792*4757b351SPierre Pronchery movq 8(%rax),%r14 793*4757b351SPierre Pronchery.cfi_restore %r14 794*4757b351SPierre Pronchery movq 16(%rax),%r13 795*4757b351SPierre Pronchery.cfi_restore %r13 796*4757b351SPierre Pronchery movq 24(%rax),%r12 797*4757b351SPierre Pronchery.cfi_restore %r12 798*4757b351SPierre Pronchery movq 32(%rax),%rbp 799*4757b351SPierre Pronchery.cfi_restore %rbp 800*4757b351SPierre Pronchery movq 40(%rax),%rbx 801*4757b351SPierre Pronchery.cfi_restore %rbx 802*4757b351SPierre Pronchery leaq 48(%rax),%rsp 803*4757b351SPierre Pronchery.cfi_def_cfa %rsp,8 804*4757b351SPierre Pronchery.Lossl_rsaz_amm52x30_x1_avxifma256_epilogue: 805*4757b351SPierre Pronchery .byte 0xf3,0xc3 806*4757b351SPierre Pronchery.cfi_endproc 807*4757b351SPierre Pronchery.size ossl_rsaz_amm52x30_x1_avxifma256, .-ossl_rsaz_amm52x30_x1_avxifma256 808*4757b351SPierre Pronchery.section .rodata 809*4757b351SPierre Pronchery.align 32 810*4757b351SPierre Pronchery.Lmask52x4: 811*4757b351SPierre Pronchery.quad 0xfffffffffffff 812*4757b351SPierre Pronchery.quad 0xfffffffffffff 813*4757b351SPierre Pronchery.quad 0xfffffffffffff 814*4757b351SPierre Pronchery.quad 0xfffffffffffff 815*4757b351SPierre Pronchery.Lhigh64x3: 816*4757b351SPierre Pronchery.quad 0x0 817*4757b351SPierre Pronchery.quad 0xffffffffffffffff 818*4757b351SPierre Pronchery.quad 0xffffffffffffffff 819*4757b351SPierre Pronchery.quad 0xffffffffffffffff 820*4757b351SPierre Pronchery.Lkmasklut: 821*4757b351SPierre Pronchery 822*4757b351SPierre Pronchery.quad 0x0 823*4757b351SPierre Pronchery.quad 0x0 824*4757b351SPierre Pronchery.quad 0x0 825*4757b351SPierre Pronchery.quad 0x0 826*4757b351SPierre Pronchery 827*4757b351SPierre Pronchery.quad 0xffffffffffffffff 828*4757b351SPierre Pronchery.quad 0x0 829*4757b351SPierre Pronchery.quad 0x0 830*4757b351SPierre Pronchery.quad 0x0 831*4757b351SPierre Pronchery 832*4757b351SPierre Pronchery.quad 0x0 833*4757b351SPierre Pronchery.quad 0xffffffffffffffff 834*4757b351SPierre Pronchery.quad 0x0 835*4757b351SPierre Pronchery.quad 0x0 836*4757b351SPierre Pronchery 837*4757b351SPierre Pronchery.quad 0xffffffffffffffff 838*4757b351SPierre Pronchery.quad 0xffffffffffffffff 839*4757b351SPierre Pronchery.quad 0x0 840*4757b351SPierre Pronchery.quad 0x0 841*4757b351SPierre Pronchery 842*4757b351SPierre Pronchery.quad 0x0 843*4757b351SPierre Pronchery.quad 0x0 844*4757b351SPierre Pronchery.quad 0xffffffffffffffff 845*4757b351SPierre Pronchery.quad 0x0 846*4757b351SPierre Pronchery 847*4757b351SPierre Pronchery.quad 0xffffffffffffffff 848*4757b351SPierre Pronchery.quad 0x0 849*4757b351SPierre Pronchery.quad 0xffffffffffffffff 850*4757b351SPierre Pronchery.quad 0x0 851*4757b351SPierre Pronchery 852*4757b351SPierre Pronchery.quad 0x0 853*4757b351SPierre Pronchery.quad 0xffffffffffffffff 854*4757b351SPierre Pronchery.quad 0xffffffffffffffff 855*4757b351SPierre Pronchery.quad 0x0 856*4757b351SPierre Pronchery 857*4757b351SPierre Pronchery.quad 0xffffffffffffffff 858*4757b351SPierre Pronchery.quad 0xffffffffffffffff 859*4757b351SPierre Pronchery.quad 0xffffffffffffffff 860*4757b351SPierre Pronchery.quad 0x0 861*4757b351SPierre Pronchery 862*4757b351SPierre Pronchery.quad 0x0 863*4757b351SPierre Pronchery.quad 0x0 864*4757b351SPierre Pronchery.quad 0x0 865*4757b351SPierre Pronchery.quad 0xffffffffffffffff 866*4757b351SPierre Pronchery 867*4757b351SPierre Pronchery.quad 0xffffffffffffffff 868*4757b351SPierre Pronchery.quad 0x0 869*4757b351SPierre Pronchery.quad 0x0 870*4757b351SPierre Pronchery.quad 0xffffffffffffffff 871*4757b351SPierre Pronchery 872*4757b351SPierre Pronchery.quad 0x0 873*4757b351SPierre Pronchery.quad 0xffffffffffffffff 874*4757b351SPierre Pronchery.quad 0x0 875*4757b351SPierre Pronchery.quad 0xffffffffffffffff 876*4757b351SPierre Pronchery 877*4757b351SPierre Pronchery.quad 0xffffffffffffffff 878*4757b351SPierre Pronchery.quad 0xffffffffffffffff 879*4757b351SPierre Pronchery.quad 0x0 880*4757b351SPierre Pronchery.quad 0xffffffffffffffff 881*4757b351SPierre Pronchery 882*4757b351SPierre Pronchery.quad 0x0 883*4757b351SPierre Pronchery.quad 0x0 884*4757b351SPierre Pronchery.quad 0xffffffffffffffff 885*4757b351SPierre Pronchery.quad 0xffffffffffffffff 886*4757b351SPierre Pronchery 887*4757b351SPierre Pronchery.quad 0xffffffffffffffff 888*4757b351SPierre Pronchery.quad 0x0 889*4757b351SPierre Pronchery.quad 0xffffffffffffffff 890*4757b351SPierre Pronchery.quad 0xffffffffffffffff 891*4757b351SPierre Pronchery 892*4757b351SPierre Pronchery.quad 0x0 893*4757b351SPierre Pronchery.quad 0xffffffffffffffff 894*4757b351SPierre Pronchery.quad 0xffffffffffffffff 895*4757b351SPierre Pronchery.quad 0xffffffffffffffff 896*4757b351SPierre Pronchery 897*4757b351SPierre Pronchery.quad 0xffffffffffffffff 898*4757b351SPierre Pronchery.quad 0xffffffffffffffff 899*4757b351SPierre Pronchery.quad 0xffffffffffffffff 900*4757b351SPierre Pronchery.quad 0xffffffffffffffff 901*4757b351SPierre Pronchery.text 902*4757b351SPierre Pronchery 903*4757b351SPierre Pronchery.globl ossl_rsaz_amm52x30_x2_avxifma256 904*4757b351SPierre Pronchery.type ossl_rsaz_amm52x30_x2_avxifma256,@function 905*4757b351SPierre Pronchery.align 32 906*4757b351SPierre Proncheryossl_rsaz_amm52x30_x2_avxifma256: 907*4757b351SPierre Pronchery.cfi_startproc 908*4757b351SPierre Pronchery.byte 243,15,30,250 909*4757b351SPierre Pronchery pushq %rbx 910*4757b351SPierre Pronchery.cfi_adjust_cfa_offset 8 911*4757b351SPierre Pronchery.cfi_offset %rbx,-16 912*4757b351SPierre Pronchery pushq %rbp 913*4757b351SPierre Pronchery.cfi_adjust_cfa_offset 8 914*4757b351SPierre Pronchery.cfi_offset %rbp,-24 915*4757b351SPierre Pronchery pushq %r12 916*4757b351SPierre Pronchery.cfi_adjust_cfa_offset 8 917*4757b351SPierre Pronchery.cfi_offset %r12,-32 918*4757b351SPierre Pronchery pushq %r13 919*4757b351SPierre Pronchery.cfi_adjust_cfa_offset 8 920*4757b351SPierre Pronchery.cfi_offset %r13,-40 921*4757b351SPierre Pronchery pushq %r14 922*4757b351SPierre Pronchery.cfi_adjust_cfa_offset 8 923*4757b351SPierre Pronchery.cfi_offset %r14,-48 924*4757b351SPierre Pronchery pushq %r15 925*4757b351SPierre Pronchery.cfi_adjust_cfa_offset 8 926*4757b351SPierre Pronchery.cfi_offset %r15,-56 927*4757b351SPierre Pronchery 928*4757b351SPierre Pronchery vpxor %ymm0,%ymm0,%ymm0 929*4757b351SPierre Pronchery vmovapd %ymm0,%ymm3 930*4757b351SPierre Pronchery vmovapd %ymm0,%ymm4 931*4757b351SPierre Pronchery vmovapd %ymm0,%ymm5 932*4757b351SPierre Pronchery vmovapd %ymm0,%ymm6 933*4757b351SPierre Pronchery vmovapd %ymm0,%ymm7 934*4757b351SPierre Pronchery vmovapd %ymm0,%ymm8 935*4757b351SPierre Pronchery vmovapd %ymm0,%ymm9 936*4757b351SPierre Pronchery vmovapd %ymm0,%ymm10 937*4757b351SPierre Pronchery 938*4757b351SPierre Pronchery xorl %r9d,%r9d 939*4757b351SPierre Pronchery 940*4757b351SPierre Pronchery movq %rdx,%r11 941*4757b351SPierre Pronchery movq $0xfffffffffffff,%rax 942*4757b351SPierre Pronchery 943*4757b351SPierre Pronchery movl $30,%ebx 944*4757b351SPierre Pronchery 945*4757b351SPierre Pronchery.align 32 946*4757b351SPierre Pronchery.Lloop30: 947*4757b351SPierre Pronchery movq 0(%r11),%r13 948*4757b351SPierre Pronchery 949*4757b351SPierre Pronchery vpbroadcastq 0(%r11),%ymm1 950*4757b351SPierre Pronchery movq 0(%rsi),%rdx 951*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 952*4757b351SPierre Pronchery addq %r13,%r9 953*4757b351SPierre Pronchery movq %r12,%r10 954*4757b351SPierre Pronchery adcq $0,%r10 955*4757b351SPierre Pronchery 956*4757b351SPierre Pronchery movq (%r8),%r13 957*4757b351SPierre Pronchery imulq %r9,%r13 958*4757b351SPierre Pronchery andq %rax,%r13 959*4757b351SPierre Pronchery 960*4757b351SPierre Pronchery vmovq %r13,%xmm2 961*4757b351SPierre Pronchery vpbroadcastq %xmm2,%ymm2 962*4757b351SPierre Pronchery movq 0(%rcx),%rdx 963*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 964*4757b351SPierre Pronchery addq %r13,%r9 965*4757b351SPierre Pronchery adcq %r12,%r10 966*4757b351SPierre Pronchery 967*4757b351SPierre Pronchery shrq $52,%r9 968*4757b351SPierre Pronchery salq $12,%r10 969*4757b351SPierre Pronchery orq %r10,%r9 970*4757b351SPierre Pronchery 971*4757b351SPierre Pronchery leaq -264(%rsp),%rsp 972*4757b351SPierre Pronchery 973*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rsi),%ymm1,%ymm3 974*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rsi),%ymm1,%ymm4 975*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rsi),%ymm1,%ymm5 976*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rsi),%ymm1,%ymm6 977*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rsi),%ymm1,%ymm7 978*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rsi),%ymm1,%ymm8 979*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rsi),%ymm1,%ymm9 980*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rsi),%ymm1,%ymm10 981*4757b351SPierre Pronchery 982*4757b351SPierre Pronchery{vex} vpmadd52luq 0(%rcx),%ymm2,%ymm3 983*4757b351SPierre Pronchery{vex} vpmadd52luq 32(%rcx),%ymm2,%ymm4 984*4757b351SPierre Pronchery{vex} vpmadd52luq 64(%rcx),%ymm2,%ymm5 985*4757b351SPierre Pronchery{vex} vpmadd52luq 96(%rcx),%ymm2,%ymm6 986*4757b351SPierre Pronchery{vex} vpmadd52luq 128(%rcx),%ymm2,%ymm7 987*4757b351SPierre Pronchery{vex} vpmadd52luq 160(%rcx),%ymm2,%ymm8 988*4757b351SPierre Pronchery{vex} vpmadd52luq 192(%rcx),%ymm2,%ymm9 989*4757b351SPierre Pronchery{vex} vpmadd52luq 224(%rcx),%ymm2,%ymm10 990*4757b351SPierre Pronchery 991*4757b351SPierre Pronchery 992*4757b351SPierre Pronchery vmovdqu %ymm3,0(%rsp) 993*4757b351SPierre Pronchery vmovdqu %ymm4,32(%rsp) 994*4757b351SPierre Pronchery vmovdqu %ymm5,64(%rsp) 995*4757b351SPierre Pronchery vmovdqu %ymm6,96(%rsp) 996*4757b351SPierre Pronchery vmovdqu %ymm7,128(%rsp) 997*4757b351SPierre Pronchery vmovdqu %ymm8,160(%rsp) 998*4757b351SPierre Pronchery vmovdqu %ymm9,192(%rsp) 999*4757b351SPierre Pronchery vmovdqu %ymm10,224(%rsp) 1000*4757b351SPierre Pronchery movq $0,256(%rsp) 1001*4757b351SPierre Pronchery 1002*4757b351SPierre Pronchery vmovdqu 8(%rsp),%ymm3 1003*4757b351SPierre Pronchery vmovdqu 40(%rsp),%ymm4 1004*4757b351SPierre Pronchery vmovdqu 72(%rsp),%ymm5 1005*4757b351SPierre Pronchery vmovdqu 104(%rsp),%ymm6 1006*4757b351SPierre Pronchery vmovdqu 136(%rsp),%ymm7 1007*4757b351SPierre Pronchery vmovdqu 168(%rsp),%ymm8 1008*4757b351SPierre Pronchery vmovdqu 200(%rsp),%ymm9 1009*4757b351SPierre Pronchery vmovdqu 232(%rsp),%ymm10 1010*4757b351SPierre Pronchery 1011*4757b351SPierre Pronchery addq 8(%rsp),%r9 1012*4757b351SPierre Pronchery 1013*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rsi),%ymm1,%ymm3 1014*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rsi),%ymm1,%ymm4 1015*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rsi),%ymm1,%ymm5 1016*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rsi),%ymm1,%ymm6 1017*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rsi),%ymm1,%ymm7 1018*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rsi),%ymm1,%ymm8 1019*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rsi),%ymm1,%ymm9 1020*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rsi),%ymm1,%ymm10 1021*4757b351SPierre Pronchery 1022*4757b351SPierre Pronchery{vex} vpmadd52huq 0(%rcx),%ymm2,%ymm3 1023*4757b351SPierre Pronchery{vex} vpmadd52huq 32(%rcx),%ymm2,%ymm4 1024*4757b351SPierre Pronchery{vex} vpmadd52huq 64(%rcx),%ymm2,%ymm5 1025*4757b351SPierre Pronchery{vex} vpmadd52huq 96(%rcx),%ymm2,%ymm6 1026*4757b351SPierre Pronchery{vex} vpmadd52huq 128(%rcx),%ymm2,%ymm7 1027*4757b351SPierre Pronchery{vex} vpmadd52huq 160(%rcx),%ymm2,%ymm8 1028*4757b351SPierre Pronchery{vex} vpmadd52huq 192(%rcx),%ymm2,%ymm9 1029*4757b351SPierre Pronchery{vex} vpmadd52huq 224(%rcx),%ymm2,%ymm10 1030*4757b351SPierre Pronchery 1031*4757b351SPierre Pronchery leaq 264(%rsp),%rsp 1032*4757b351SPierre Pronchery leaq 8(%r11),%r11 1033*4757b351SPierre Pronchery decl %ebx 1034*4757b351SPierre Pronchery jne .Lloop30 1035*4757b351SPierre Pronchery 1036*4757b351SPierre Pronchery pushq %r11 1037*4757b351SPierre Pronchery pushq %rsi 1038*4757b351SPierre Pronchery pushq %rcx 1039*4757b351SPierre Pronchery pushq %r8 1040*4757b351SPierre Pronchery 1041*4757b351SPierre Pronchery vmovq %r9,%xmm0 1042*4757b351SPierre Pronchery vpbroadcastq %xmm0,%ymm0 1043*4757b351SPierre Pronchery vpblendd $3,%ymm0,%ymm3,%ymm3 1044*4757b351SPierre Pronchery 1045*4757b351SPierre Pronchery 1046*4757b351SPierre Pronchery 1047*4757b351SPierre Pronchery vpsrlq $52,%ymm3,%ymm0 1048*4757b351SPierre Pronchery vpsrlq $52,%ymm4,%ymm1 1049*4757b351SPierre Pronchery vpsrlq $52,%ymm5,%ymm2 1050*4757b351SPierre Pronchery vpsrlq $52,%ymm6,%ymm11 1051*4757b351SPierre Pronchery vpsrlq $52,%ymm7,%ymm12 1052*4757b351SPierre Pronchery vpsrlq $52,%ymm8,%ymm13 1053*4757b351SPierre Pronchery vpsrlq $52,%ymm9,%ymm14 1054*4757b351SPierre Pronchery vpsrlq $52,%ymm10,%ymm15 1055*4757b351SPierre Pronchery 1056*4757b351SPierre Pronchery leaq -32(%rsp),%rsp 1057*4757b351SPierre Pronchery vmovupd %ymm3,(%rsp) 1058*4757b351SPierre Pronchery 1059*4757b351SPierre Pronchery 1060*4757b351SPierre Pronchery vpermq $144,%ymm15,%ymm15 1061*4757b351SPierre Pronchery vpermq $3,%ymm14,%ymm3 1062*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm15,%ymm15 1063*4757b351SPierre Pronchery 1064*4757b351SPierre Pronchery vpermq $144,%ymm14,%ymm14 1065*4757b351SPierre Pronchery vpermq $3,%ymm13,%ymm3 1066*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm14,%ymm14 1067*4757b351SPierre Pronchery 1068*4757b351SPierre Pronchery vpermq $144,%ymm13,%ymm13 1069*4757b351SPierre Pronchery vpermq $3,%ymm12,%ymm3 1070*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm13,%ymm13 1071*4757b351SPierre Pronchery 1072*4757b351SPierre Pronchery vpermq $144,%ymm12,%ymm12 1073*4757b351SPierre Pronchery vpermq $3,%ymm11,%ymm3 1074*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm12,%ymm12 1075*4757b351SPierre Pronchery 1076*4757b351SPierre Pronchery vpermq $144,%ymm11,%ymm11 1077*4757b351SPierre Pronchery vpermq $3,%ymm2,%ymm3 1078*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm11,%ymm11 1079*4757b351SPierre Pronchery 1080*4757b351SPierre Pronchery vpermq $144,%ymm2,%ymm2 1081*4757b351SPierre Pronchery vpermq $3,%ymm1,%ymm3 1082*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm2,%ymm2 1083*4757b351SPierre Pronchery 1084*4757b351SPierre Pronchery vpermq $144,%ymm1,%ymm1 1085*4757b351SPierre Pronchery vpermq $3,%ymm0,%ymm3 1086*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm1,%ymm1 1087*4757b351SPierre Pronchery 1088*4757b351SPierre Pronchery vpermq $144,%ymm0,%ymm0 1089*4757b351SPierre Pronchery vpand .Lhigh64x3(%rip),%ymm0,%ymm0 1090*4757b351SPierre Pronchery 1091*4757b351SPierre Pronchery vmovupd (%rsp),%ymm3 1092*4757b351SPierre Pronchery leaq 32(%rsp),%rsp 1093*4757b351SPierre Pronchery 1094*4757b351SPierre Pronchery 1095*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm3,%ymm3 1096*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm4,%ymm4 1097*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm5,%ymm5 1098*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm6,%ymm6 1099*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm7,%ymm7 1100*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm8,%ymm8 1101*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm9,%ymm9 1102*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm10,%ymm10 1103*4757b351SPierre Pronchery 1104*4757b351SPierre Pronchery 1105*4757b351SPierre Pronchery vpaddq %ymm0,%ymm3,%ymm3 1106*4757b351SPierre Pronchery vpaddq %ymm1,%ymm4,%ymm4 1107*4757b351SPierre Pronchery vpaddq %ymm2,%ymm5,%ymm5 1108*4757b351SPierre Pronchery vpaddq %ymm11,%ymm6,%ymm6 1109*4757b351SPierre Pronchery vpaddq %ymm12,%ymm7,%ymm7 1110*4757b351SPierre Pronchery vpaddq %ymm13,%ymm8,%ymm8 1111*4757b351SPierre Pronchery vpaddq %ymm14,%ymm9,%ymm9 1112*4757b351SPierre Pronchery vpaddq %ymm15,%ymm10,%ymm10 1113*4757b351SPierre Pronchery 1114*4757b351SPierre Pronchery 1115*4757b351SPierre Pronchery 1116*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm3,%ymm0 1117*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm4,%ymm1 1118*4757b351SPierre Pronchery vmovmskpd %ymm0,%r14d 1119*4757b351SPierre Pronchery vmovmskpd %ymm1,%r13d 1120*4757b351SPierre Pronchery shlb $4,%r13b 1121*4757b351SPierre Pronchery orb %r13b,%r14b 1122*4757b351SPierre Pronchery 1123*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm5,%ymm2 1124*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm6,%ymm11 1125*4757b351SPierre Pronchery vmovmskpd %ymm2,%r13d 1126*4757b351SPierre Pronchery vmovmskpd %ymm11,%r12d 1127*4757b351SPierre Pronchery shlb $4,%r12b 1128*4757b351SPierre Pronchery orb %r12b,%r13b 1129*4757b351SPierre Pronchery 1130*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm7,%ymm12 1131*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm8,%ymm13 1132*4757b351SPierre Pronchery vmovmskpd %ymm12,%r12d 1133*4757b351SPierre Pronchery vmovmskpd %ymm13,%r11d 1134*4757b351SPierre Pronchery shlb $4,%r11b 1135*4757b351SPierre Pronchery orb %r11b,%r12b 1136*4757b351SPierre Pronchery 1137*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm9,%ymm14 1138*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm10,%ymm15 1139*4757b351SPierre Pronchery vmovmskpd %ymm14,%r11d 1140*4757b351SPierre Pronchery vmovmskpd %ymm15,%r10d 1141*4757b351SPierre Pronchery shlb $4,%r10b 1142*4757b351SPierre Pronchery orb %r10b,%r11b 1143*4757b351SPierre Pronchery 1144*4757b351SPierre Pronchery addb %r14b,%r14b 1145*4757b351SPierre Pronchery adcb %r13b,%r13b 1146*4757b351SPierre Pronchery adcb %r12b,%r12b 1147*4757b351SPierre Pronchery adcb %r11b,%r11b 1148*4757b351SPierre Pronchery 1149*4757b351SPierre Pronchery 1150*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm3,%ymm0 1151*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm4,%ymm1 1152*4757b351SPierre Pronchery vmovmskpd %ymm0,%r9d 1153*4757b351SPierre Pronchery vmovmskpd %ymm1,%r8d 1154*4757b351SPierre Pronchery shlb $4,%r8b 1155*4757b351SPierre Pronchery orb %r8b,%r9b 1156*4757b351SPierre Pronchery 1157*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm5,%ymm2 1158*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm6,%ymm11 1159*4757b351SPierre Pronchery vmovmskpd %ymm2,%r8d 1160*4757b351SPierre Pronchery vmovmskpd %ymm11,%edx 1161*4757b351SPierre Pronchery shlb $4,%dl 1162*4757b351SPierre Pronchery orb %dl,%r8b 1163*4757b351SPierre Pronchery 1164*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm7,%ymm12 1165*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm8,%ymm13 1166*4757b351SPierre Pronchery vmovmskpd %ymm12,%edx 1167*4757b351SPierre Pronchery vmovmskpd %ymm13,%ecx 1168*4757b351SPierre Pronchery shlb $4,%cl 1169*4757b351SPierre Pronchery orb %cl,%dl 1170*4757b351SPierre Pronchery 1171*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm9,%ymm14 1172*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm10,%ymm15 1173*4757b351SPierre Pronchery vmovmskpd %ymm14,%ecx 1174*4757b351SPierre Pronchery vmovmskpd %ymm15,%ebx 1175*4757b351SPierre Pronchery shlb $4,%bl 1176*4757b351SPierre Pronchery orb %bl,%cl 1177*4757b351SPierre Pronchery 1178*4757b351SPierre Pronchery addb %r9b,%r14b 1179*4757b351SPierre Pronchery adcb %r8b,%r13b 1180*4757b351SPierre Pronchery adcb %dl,%r12b 1181*4757b351SPierre Pronchery adcb %cl,%r11b 1182*4757b351SPierre Pronchery 1183*4757b351SPierre Pronchery xorb %r9b,%r14b 1184*4757b351SPierre Pronchery xorb %r8b,%r13b 1185*4757b351SPierre Pronchery xorb %dl,%r12b 1186*4757b351SPierre Pronchery xorb %cl,%r11b 1187*4757b351SPierre Pronchery 1188*4757b351SPierre Pronchery leaq .Lkmasklut(%rip),%rdx 1189*4757b351SPierre Pronchery 1190*4757b351SPierre Pronchery movb %r14b,%r10b 1191*4757b351SPierre Pronchery andq $0xf,%r14 1192*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm3,%ymm0 1193*4757b351SPierre Pronchery shlq $5,%r14 1194*4757b351SPierre Pronchery vmovapd (%rdx,%r14,1),%ymm2 1195*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm3,%ymm3 1196*4757b351SPierre Pronchery 1197*4757b351SPierre Pronchery shrb $4,%r10b 1198*4757b351SPierre Pronchery andq $0xf,%r10 1199*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm4,%ymm0 1200*4757b351SPierre Pronchery shlq $5,%r10 1201*4757b351SPierre Pronchery vmovapd (%rdx,%r10,1),%ymm2 1202*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm4,%ymm4 1203*4757b351SPierre Pronchery 1204*4757b351SPierre Pronchery movb %r13b,%r10b 1205*4757b351SPierre Pronchery andq $0xf,%r13 1206*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm5,%ymm0 1207*4757b351SPierre Pronchery shlq $5,%r13 1208*4757b351SPierre Pronchery vmovapd (%rdx,%r13,1),%ymm2 1209*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm5,%ymm5 1210*4757b351SPierre Pronchery 1211*4757b351SPierre Pronchery shrb $4,%r10b 1212*4757b351SPierre Pronchery andq $0xf,%r10 1213*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm6,%ymm0 1214*4757b351SPierre Pronchery shlq $5,%r10 1215*4757b351SPierre Pronchery vmovapd (%rdx,%r10,1),%ymm2 1216*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm6,%ymm6 1217*4757b351SPierre Pronchery 1218*4757b351SPierre Pronchery movb %r12b,%r10b 1219*4757b351SPierre Pronchery andq $0xf,%r12 1220*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm7,%ymm0 1221*4757b351SPierre Pronchery shlq $5,%r12 1222*4757b351SPierre Pronchery vmovapd (%rdx,%r12,1),%ymm2 1223*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm7,%ymm7 1224*4757b351SPierre Pronchery 1225*4757b351SPierre Pronchery shrb $4,%r10b 1226*4757b351SPierre Pronchery andq $0xf,%r10 1227*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm8,%ymm0 1228*4757b351SPierre Pronchery shlq $5,%r10 1229*4757b351SPierre Pronchery vmovapd (%rdx,%r10,1),%ymm2 1230*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm8,%ymm8 1231*4757b351SPierre Pronchery 1232*4757b351SPierre Pronchery movb %r11b,%r10b 1233*4757b351SPierre Pronchery andq $0xf,%r11 1234*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm9,%ymm0 1235*4757b351SPierre Pronchery shlq $5,%r11 1236*4757b351SPierre Pronchery vmovapd (%rdx,%r11,1),%ymm2 1237*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm9,%ymm9 1238*4757b351SPierre Pronchery 1239*4757b351SPierre Pronchery shrb $4,%r10b 1240*4757b351SPierre Pronchery andq $0xf,%r10 1241*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm10,%ymm0 1242*4757b351SPierre Pronchery shlq $5,%r10 1243*4757b351SPierre Pronchery vmovapd (%rdx,%r10,1),%ymm2 1244*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm10,%ymm10 1245*4757b351SPierre Pronchery 1246*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm3,%ymm3 1247*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm4,%ymm4 1248*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm5,%ymm5 1249*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm6,%ymm6 1250*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm7,%ymm7 1251*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm8,%ymm8 1252*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm9,%ymm9 1253*4757b351SPierre Pronchery 1254*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm10,%ymm10 1255*4757b351SPierre Pronchery popq %r8 1256*4757b351SPierre Pronchery popq %rcx 1257*4757b351SPierre Pronchery popq %rsi 1258*4757b351SPierre Pronchery popq %r11 1259*4757b351SPierre Pronchery 1260*4757b351SPierre Pronchery vmovdqu %ymm3,0(%rdi) 1261*4757b351SPierre Pronchery vmovdqu %ymm4,32(%rdi) 1262*4757b351SPierre Pronchery vmovdqu %ymm5,64(%rdi) 1263*4757b351SPierre Pronchery vmovdqu %ymm6,96(%rdi) 1264*4757b351SPierre Pronchery vmovdqu %ymm7,128(%rdi) 1265*4757b351SPierre Pronchery vmovdqu %ymm8,160(%rdi) 1266*4757b351SPierre Pronchery vmovdqu %ymm9,192(%rdi) 1267*4757b351SPierre Pronchery vmovdqu %ymm10,224(%rdi) 1268*4757b351SPierre Pronchery 1269*4757b351SPierre Pronchery xorl %r15d,%r15d 1270*4757b351SPierre Pronchery 1271*4757b351SPierre Pronchery leaq 16(%r11),%r11 1272*4757b351SPierre Pronchery movq $0xfffffffffffff,%rax 1273*4757b351SPierre Pronchery 1274*4757b351SPierre Pronchery movl $30,%ebx 1275*4757b351SPierre Pronchery 1276*4757b351SPierre Pronchery vpxor %ymm0,%ymm0,%ymm0 1277*4757b351SPierre Pronchery vmovapd %ymm0,%ymm3 1278*4757b351SPierre Pronchery vmovapd %ymm0,%ymm4 1279*4757b351SPierre Pronchery vmovapd %ymm0,%ymm5 1280*4757b351SPierre Pronchery vmovapd %ymm0,%ymm6 1281*4757b351SPierre Pronchery vmovapd %ymm0,%ymm7 1282*4757b351SPierre Pronchery vmovapd %ymm0,%ymm8 1283*4757b351SPierre Pronchery vmovapd %ymm0,%ymm9 1284*4757b351SPierre Pronchery vmovapd %ymm0,%ymm10 1285*4757b351SPierre Pronchery.align 32 1286*4757b351SPierre Pronchery.Lloop40: 1287*4757b351SPierre Pronchery movq 0(%r11),%r13 1288*4757b351SPierre Pronchery 1289*4757b351SPierre Pronchery vpbroadcastq 0(%r11),%ymm1 1290*4757b351SPierre Pronchery movq 256(%rsi),%rdx 1291*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 1292*4757b351SPierre Pronchery addq %r13,%r9 1293*4757b351SPierre Pronchery movq %r12,%r10 1294*4757b351SPierre Pronchery adcq $0,%r10 1295*4757b351SPierre Pronchery 1296*4757b351SPierre Pronchery movq 8(%r8),%r13 1297*4757b351SPierre Pronchery imulq %r9,%r13 1298*4757b351SPierre Pronchery andq %rax,%r13 1299*4757b351SPierre Pronchery 1300*4757b351SPierre Pronchery vmovq %r13,%xmm2 1301*4757b351SPierre Pronchery vpbroadcastq %xmm2,%ymm2 1302*4757b351SPierre Pronchery movq 256(%rcx),%rdx 1303*4757b351SPierre Pronchery mulxq %r13,%r13,%r12 1304*4757b351SPierre Pronchery addq %r13,%r9 1305*4757b351SPierre Pronchery adcq %r12,%r10 1306*4757b351SPierre Pronchery 1307*4757b351SPierre Pronchery shrq $52,%r9 1308*4757b351SPierre Pronchery salq $12,%r10 1309*4757b351SPierre Pronchery orq %r10,%r9 1310*4757b351SPierre Pronchery 1311*4757b351SPierre Pronchery leaq -264(%rsp),%rsp 1312*4757b351SPierre Pronchery 1313*4757b351SPierre Pronchery{vex} vpmadd52luq 256(%rsi),%ymm1,%ymm3 1314*4757b351SPierre Pronchery{vex} vpmadd52luq 288(%rsi),%ymm1,%ymm4 1315*4757b351SPierre Pronchery{vex} vpmadd52luq 320(%rsi),%ymm1,%ymm5 1316*4757b351SPierre Pronchery{vex} vpmadd52luq 352(%rsi),%ymm1,%ymm6 1317*4757b351SPierre Pronchery{vex} vpmadd52luq 384(%rsi),%ymm1,%ymm7 1318*4757b351SPierre Pronchery{vex} vpmadd52luq 416(%rsi),%ymm1,%ymm8 1319*4757b351SPierre Pronchery{vex} vpmadd52luq 448(%rsi),%ymm1,%ymm9 1320*4757b351SPierre Pronchery{vex} vpmadd52luq 480(%rsi),%ymm1,%ymm10 1321*4757b351SPierre Pronchery 1322*4757b351SPierre Pronchery{vex} vpmadd52luq 256(%rcx),%ymm2,%ymm3 1323*4757b351SPierre Pronchery{vex} vpmadd52luq 288(%rcx),%ymm2,%ymm4 1324*4757b351SPierre Pronchery{vex} vpmadd52luq 320(%rcx),%ymm2,%ymm5 1325*4757b351SPierre Pronchery{vex} vpmadd52luq 352(%rcx),%ymm2,%ymm6 1326*4757b351SPierre Pronchery{vex} vpmadd52luq 384(%rcx),%ymm2,%ymm7 1327*4757b351SPierre Pronchery{vex} vpmadd52luq 416(%rcx),%ymm2,%ymm8 1328*4757b351SPierre Pronchery{vex} vpmadd52luq 448(%rcx),%ymm2,%ymm9 1329*4757b351SPierre Pronchery{vex} vpmadd52luq 480(%rcx),%ymm2,%ymm10 1330*4757b351SPierre Pronchery 1331*4757b351SPierre Pronchery 1332*4757b351SPierre Pronchery vmovdqu %ymm3,0(%rsp) 1333*4757b351SPierre Pronchery vmovdqu %ymm4,32(%rsp) 1334*4757b351SPierre Pronchery vmovdqu %ymm5,64(%rsp) 1335*4757b351SPierre Pronchery vmovdqu %ymm6,96(%rsp) 1336*4757b351SPierre Pronchery vmovdqu %ymm7,128(%rsp) 1337*4757b351SPierre Pronchery vmovdqu %ymm8,160(%rsp) 1338*4757b351SPierre Pronchery vmovdqu %ymm9,192(%rsp) 1339*4757b351SPierre Pronchery vmovdqu %ymm10,224(%rsp) 1340*4757b351SPierre Pronchery movq $0,256(%rsp) 1341*4757b351SPierre Pronchery 1342*4757b351SPierre Pronchery vmovdqu 8(%rsp),%ymm3 1343*4757b351SPierre Pronchery vmovdqu 40(%rsp),%ymm4 1344*4757b351SPierre Pronchery vmovdqu 72(%rsp),%ymm5 1345*4757b351SPierre Pronchery vmovdqu 104(%rsp),%ymm6 1346*4757b351SPierre Pronchery vmovdqu 136(%rsp),%ymm7 1347*4757b351SPierre Pronchery vmovdqu 168(%rsp),%ymm8 1348*4757b351SPierre Pronchery vmovdqu 200(%rsp),%ymm9 1349*4757b351SPierre Pronchery vmovdqu 232(%rsp),%ymm10 1350*4757b351SPierre Pronchery 1351*4757b351SPierre Pronchery addq 8(%rsp),%r9 1352*4757b351SPierre Pronchery 1353*4757b351SPierre Pronchery{vex} vpmadd52huq 256(%rsi),%ymm1,%ymm3 1354*4757b351SPierre Pronchery{vex} vpmadd52huq 288(%rsi),%ymm1,%ymm4 1355*4757b351SPierre Pronchery{vex} vpmadd52huq 320(%rsi),%ymm1,%ymm5 1356*4757b351SPierre Pronchery{vex} vpmadd52huq 352(%rsi),%ymm1,%ymm6 1357*4757b351SPierre Pronchery{vex} vpmadd52huq 384(%rsi),%ymm1,%ymm7 1358*4757b351SPierre Pronchery{vex} vpmadd52huq 416(%rsi),%ymm1,%ymm8 1359*4757b351SPierre Pronchery{vex} vpmadd52huq 448(%rsi),%ymm1,%ymm9 1360*4757b351SPierre Pronchery{vex} vpmadd52huq 480(%rsi),%ymm1,%ymm10 1361*4757b351SPierre Pronchery 1362*4757b351SPierre Pronchery{vex} vpmadd52huq 256(%rcx),%ymm2,%ymm3 1363*4757b351SPierre Pronchery{vex} vpmadd52huq 288(%rcx),%ymm2,%ymm4 1364*4757b351SPierre Pronchery{vex} vpmadd52huq 320(%rcx),%ymm2,%ymm5 1365*4757b351SPierre Pronchery{vex} vpmadd52huq 352(%rcx),%ymm2,%ymm6 1366*4757b351SPierre Pronchery{vex} vpmadd52huq 384(%rcx),%ymm2,%ymm7 1367*4757b351SPierre Pronchery{vex} vpmadd52huq 416(%rcx),%ymm2,%ymm8 1368*4757b351SPierre Pronchery{vex} vpmadd52huq 448(%rcx),%ymm2,%ymm9 1369*4757b351SPierre Pronchery{vex} vpmadd52huq 480(%rcx),%ymm2,%ymm10 1370*4757b351SPierre Pronchery 1371*4757b351SPierre Pronchery leaq 264(%rsp),%rsp 1372*4757b351SPierre Pronchery leaq 8(%r11),%r11 1373*4757b351SPierre Pronchery decl %ebx 1374*4757b351SPierre Pronchery jne .Lloop40 1375*4757b351SPierre Pronchery 1376*4757b351SPierre Pronchery vmovq %r9,%xmm0 1377*4757b351SPierre Pronchery vpbroadcastq %xmm0,%ymm0 1378*4757b351SPierre Pronchery vpblendd $3,%ymm0,%ymm3,%ymm3 1379*4757b351SPierre Pronchery 1380*4757b351SPierre Pronchery 1381*4757b351SPierre Pronchery 1382*4757b351SPierre Pronchery vpsrlq $52,%ymm3,%ymm0 1383*4757b351SPierre Pronchery vpsrlq $52,%ymm4,%ymm1 1384*4757b351SPierre Pronchery vpsrlq $52,%ymm5,%ymm2 1385*4757b351SPierre Pronchery vpsrlq $52,%ymm6,%ymm11 1386*4757b351SPierre Pronchery vpsrlq $52,%ymm7,%ymm12 1387*4757b351SPierre Pronchery vpsrlq $52,%ymm8,%ymm13 1388*4757b351SPierre Pronchery vpsrlq $52,%ymm9,%ymm14 1389*4757b351SPierre Pronchery vpsrlq $52,%ymm10,%ymm15 1390*4757b351SPierre Pronchery 1391*4757b351SPierre Pronchery leaq -32(%rsp),%rsp 1392*4757b351SPierre Pronchery vmovupd %ymm3,(%rsp) 1393*4757b351SPierre Pronchery 1394*4757b351SPierre Pronchery 1395*4757b351SPierre Pronchery vpermq $144,%ymm15,%ymm15 1396*4757b351SPierre Pronchery vpermq $3,%ymm14,%ymm3 1397*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm15,%ymm15 1398*4757b351SPierre Pronchery 1399*4757b351SPierre Pronchery vpermq $144,%ymm14,%ymm14 1400*4757b351SPierre Pronchery vpermq $3,%ymm13,%ymm3 1401*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm14,%ymm14 1402*4757b351SPierre Pronchery 1403*4757b351SPierre Pronchery vpermq $144,%ymm13,%ymm13 1404*4757b351SPierre Pronchery vpermq $3,%ymm12,%ymm3 1405*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm13,%ymm13 1406*4757b351SPierre Pronchery 1407*4757b351SPierre Pronchery vpermq $144,%ymm12,%ymm12 1408*4757b351SPierre Pronchery vpermq $3,%ymm11,%ymm3 1409*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm12,%ymm12 1410*4757b351SPierre Pronchery 1411*4757b351SPierre Pronchery vpermq $144,%ymm11,%ymm11 1412*4757b351SPierre Pronchery vpermq $3,%ymm2,%ymm3 1413*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm11,%ymm11 1414*4757b351SPierre Pronchery 1415*4757b351SPierre Pronchery vpermq $144,%ymm2,%ymm2 1416*4757b351SPierre Pronchery vpermq $3,%ymm1,%ymm3 1417*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm2,%ymm2 1418*4757b351SPierre Pronchery 1419*4757b351SPierre Pronchery vpermq $144,%ymm1,%ymm1 1420*4757b351SPierre Pronchery vpermq $3,%ymm0,%ymm3 1421*4757b351SPierre Pronchery vblendpd $1,%ymm3,%ymm1,%ymm1 1422*4757b351SPierre Pronchery 1423*4757b351SPierre Pronchery vpermq $144,%ymm0,%ymm0 1424*4757b351SPierre Pronchery vpand .Lhigh64x3(%rip),%ymm0,%ymm0 1425*4757b351SPierre Pronchery 1426*4757b351SPierre Pronchery vmovupd (%rsp),%ymm3 1427*4757b351SPierre Pronchery leaq 32(%rsp),%rsp 1428*4757b351SPierre Pronchery 1429*4757b351SPierre Pronchery 1430*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm3,%ymm3 1431*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm4,%ymm4 1432*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm5,%ymm5 1433*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm6,%ymm6 1434*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm7,%ymm7 1435*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm8,%ymm8 1436*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm9,%ymm9 1437*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm10,%ymm10 1438*4757b351SPierre Pronchery 1439*4757b351SPierre Pronchery 1440*4757b351SPierre Pronchery vpaddq %ymm0,%ymm3,%ymm3 1441*4757b351SPierre Pronchery vpaddq %ymm1,%ymm4,%ymm4 1442*4757b351SPierre Pronchery vpaddq %ymm2,%ymm5,%ymm5 1443*4757b351SPierre Pronchery vpaddq %ymm11,%ymm6,%ymm6 1444*4757b351SPierre Pronchery vpaddq %ymm12,%ymm7,%ymm7 1445*4757b351SPierre Pronchery vpaddq %ymm13,%ymm8,%ymm8 1446*4757b351SPierre Pronchery vpaddq %ymm14,%ymm9,%ymm9 1447*4757b351SPierre Pronchery vpaddq %ymm15,%ymm10,%ymm10 1448*4757b351SPierre Pronchery 1449*4757b351SPierre Pronchery 1450*4757b351SPierre Pronchery 1451*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm3,%ymm0 1452*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm4,%ymm1 1453*4757b351SPierre Pronchery vmovmskpd %ymm0,%r14d 1454*4757b351SPierre Pronchery vmovmskpd %ymm1,%r13d 1455*4757b351SPierre Pronchery shlb $4,%r13b 1456*4757b351SPierre Pronchery orb %r13b,%r14b 1457*4757b351SPierre Pronchery 1458*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm5,%ymm2 1459*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm6,%ymm11 1460*4757b351SPierre Pronchery vmovmskpd %ymm2,%r13d 1461*4757b351SPierre Pronchery vmovmskpd %ymm11,%r12d 1462*4757b351SPierre Pronchery shlb $4,%r12b 1463*4757b351SPierre Pronchery orb %r12b,%r13b 1464*4757b351SPierre Pronchery 1465*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm7,%ymm12 1466*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm8,%ymm13 1467*4757b351SPierre Pronchery vmovmskpd %ymm12,%r12d 1468*4757b351SPierre Pronchery vmovmskpd %ymm13,%r11d 1469*4757b351SPierre Pronchery shlb $4,%r11b 1470*4757b351SPierre Pronchery orb %r11b,%r12b 1471*4757b351SPierre Pronchery 1472*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm9,%ymm14 1473*4757b351SPierre Pronchery vpcmpgtq .Lmask52x4(%rip),%ymm10,%ymm15 1474*4757b351SPierre Pronchery vmovmskpd %ymm14,%r11d 1475*4757b351SPierre Pronchery vmovmskpd %ymm15,%r10d 1476*4757b351SPierre Pronchery shlb $4,%r10b 1477*4757b351SPierre Pronchery orb %r10b,%r11b 1478*4757b351SPierre Pronchery 1479*4757b351SPierre Pronchery addb %r14b,%r14b 1480*4757b351SPierre Pronchery adcb %r13b,%r13b 1481*4757b351SPierre Pronchery adcb %r12b,%r12b 1482*4757b351SPierre Pronchery adcb %r11b,%r11b 1483*4757b351SPierre Pronchery 1484*4757b351SPierre Pronchery 1485*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm3,%ymm0 1486*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm4,%ymm1 1487*4757b351SPierre Pronchery vmovmskpd %ymm0,%r9d 1488*4757b351SPierre Pronchery vmovmskpd %ymm1,%r8d 1489*4757b351SPierre Pronchery shlb $4,%r8b 1490*4757b351SPierre Pronchery orb %r8b,%r9b 1491*4757b351SPierre Pronchery 1492*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm5,%ymm2 1493*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm6,%ymm11 1494*4757b351SPierre Pronchery vmovmskpd %ymm2,%r8d 1495*4757b351SPierre Pronchery vmovmskpd %ymm11,%edx 1496*4757b351SPierre Pronchery shlb $4,%dl 1497*4757b351SPierre Pronchery orb %dl,%r8b 1498*4757b351SPierre Pronchery 1499*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm7,%ymm12 1500*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm8,%ymm13 1501*4757b351SPierre Pronchery vmovmskpd %ymm12,%edx 1502*4757b351SPierre Pronchery vmovmskpd %ymm13,%ecx 1503*4757b351SPierre Pronchery shlb $4,%cl 1504*4757b351SPierre Pronchery orb %cl,%dl 1505*4757b351SPierre Pronchery 1506*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm9,%ymm14 1507*4757b351SPierre Pronchery vpcmpeqq .Lmask52x4(%rip),%ymm10,%ymm15 1508*4757b351SPierre Pronchery vmovmskpd %ymm14,%ecx 1509*4757b351SPierre Pronchery vmovmskpd %ymm15,%ebx 1510*4757b351SPierre Pronchery shlb $4,%bl 1511*4757b351SPierre Pronchery orb %bl,%cl 1512*4757b351SPierre Pronchery 1513*4757b351SPierre Pronchery addb %r9b,%r14b 1514*4757b351SPierre Pronchery adcb %r8b,%r13b 1515*4757b351SPierre Pronchery adcb %dl,%r12b 1516*4757b351SPierre Pronchery adcb %cl,%r11b 1517*4757b351SPierre Pronchery 1518*4757b351SPierre Pronchery xorb %r9b,%r14b 1519*4757b351SPierre Pronchery xorb %r8b,%r13b 1520*4757b351SPierre Pronchery xorb %dl,%r12b 1521*4757b351SPierre Pronchery xorb %cl,%r11b 1522*4757b351SPierre Pronchery 1523*4757b351SPierre Pronchery leaq .Lkmasklut(%rip),%rdx 1524*4757b351SPierre Pronchery 1525*4757b351SPierre Pronchery movb %r14b,%r10b 1526*4757b351SPierre Pronchery andq $0xf,%r14 1527*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm3,%ymm0 1528*4757b351SPierre Pronchery shlq $5,%r14 1529*4757b351SPierre Pronchery vmovapd (%rdx,%r14,1),%ymm2 1530*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm3,%ymm3 1531*4757b351SPierre Pronchery 1532*4757b351SPierre Pronchery shrb $4,%r10b 1533*4757b351SPierre Pronchery andq $0xf,%r10 1534*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm4,%ymm0 1535*4757b351SPierre Pronchery shlq $5,%r10 1536*4757b351SPierre Pronchery vmovapd (%rdx,%r10,1),%ymm2 1537*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm4,%ymm4 1538*4757b351SPierre Pronchery 1539*4757b351SPierre Pronchery movb %r13b,%r10b 1540*4757b351SPierre Pronchery andq $0xf,%r13 1541*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm5,%ymm0 1542*4757b351SPierre Pronchery shlq $5,%r13 1543*4757b351SPierre Pronchery vmovapd (%rdx,%r13,1),%ymm2 1544*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm5,%ymm5 1545*4757b351SPierre Pronchery 1546*4757b351SPierre Pronchery shrb $4,%r10b 1547*4757b351SPierre Pronchery andq $0xf,%r10 1548*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm6,%ymm0 1549*4757b351SPierre Pronchery shlq $5,%r10 1550*4757b351SPierre Pronchery vmovapd (%rdx,%r10,1),%ymm2 1551*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm6,%ymm6 1552*4757b351SPierre Pronchery 1553*4757b351SPierre Pronchery movb %r12b,%r10b 1554*4757b351SPierre Pronchery andq $0xf,%r12 1555*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm7,%ymm0 1556*4757b351SPierre Pronchery shlq $5,%r12 1557*4757b351SPierre Pronchery vmovapd (%rdx,%r12,1),%ymm2 1558*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm7,%ymm7 1559*4757b351SPierre Pronchery 1560*4757b351SPierre Pronchery shrb $4,%r10b 1561*4757b351SPierre Pronchery andq $0xf,%r10 1562*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm8,%ymm0 1563*4757b351SPierre Pronchery shlq $5,%r10 1564*4757b351SPierre Pronchery vmovapd (%rdx,%r10,1),%ymm2 1565*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm8,%ymm8 1566*4757b351SPierre Pronchery 1567*4757b351SPierre Pronchery movb %r11b,%r10b 1568*4757b351SPierre Pronchery andq $0xf,%r11 1569*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm9,%ymm0 1570*4757b351SPierre Pronchery shlq $5,%r11 1571*4757b351SPierre Pronchery vmovapd (%rdx,%r11,1),%ymm2 1572*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm9,%ymm9 1573*4757b351SPierre Pronchery 1574*4757b351SPierre Pronchery shrb $4,%r10b 1575*4757b351SPierre Pronchery andq $0xf,%r10 1576*4757b351SPierre Pronchery vpsubq .Lmask52x4(%rip),%ymm10,%ymm0 1577*4757b351SPierre Pronchery shlq $5,%r10 1578*4757b351SPierre Pronchery vmovapd (%rdx,%r10,1),%ymm2 1579*4757b351SPierre Pronchery vblendvpd %ymm2,%ymm0,%ymm10,%ymm10 1580*4757b351SPierre Pronchery 1581*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm3,%ymm3 1582*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm4,%ymm4 1583*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm5,%ymm5 1584*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm6,%ymm6 1585*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm7,%ymm7 1586*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm8,%ymm8 1587*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm9,%ymm9 1588*4757b351SPierre Pronchery 1589*4757b351SPierre Pronchery vpand .Lmask52x4(%rip),%ymm10,%ymm10 1590*4757b351SPierre Pronchery 1591*4757b351SPierre Pronchery vmovdqu %ymm3,256(%rdi) 1592*4757b351SPierre Pronchery vmovdqu %ymm4,288(%rdi) 1593*4757b351SPierre Pronchery vmovdqu %ymm5,320(%rdi) 1594*4757b351SPierre Pronchery vmovdqu %ymm6,352(%rdi) 1595*4757b351SPierre Pronchery vmovdqu %ymm7,384(%rdi) 1596*4757b351SPierre Pronchery vmovdqu %ymm8,416(%rdi) 1597*4757b351SPierre Pronchery vmovdqu %ymm9,448(%rdi) 1598*4757b351SPierre Pronchery vmovdqu %ymm10,480(%rdi) 1599*4757b351SPierre Pronchery 1600*4757b351SPierre Pronchery vzeroupper 1601*4757b351SPierre Pronchery leaq (%rsp),%rax 1602*4757b351SPierre Pronchery.cfi_def_cfa_register %rax 1603*4757b351SPierre Pronchery movq 0(%rax),%r15 1604*4757b351SPierre Pronchery.cfi_restore %r15 1605*4757b351SPierre Pronchery movq 8(%rax),%r14 1606*4757b351SPierre Pronchery.cfi_restore %r14 1607*4757b351SPierre Pronchery movq 16(%rax),%r13 1608*4757b351SPierre Pronchery.cfi_restore %r13 1609*4757b351SPierre Pronchery movq 24(%rax),%r12 1610*4757b351SPierre Pronchery.cfi_restore %r12 1611*4757b351SPierre Pronchery movq 32(%rax),%rbp 1612*4757b351SPierre Pronchery.cfi_restore %rbp 1613*4757b351SPierre Pronchery movq 40(%rax),%rbx 1614*4757b351SPierre Pronchery.cfi_restore %rbx 1615*4757b351SPierre Pronchery leaq 48(%rax),%rsp 1616*4757b351SPierre Pronchery.cfi_def_cfa %rsp,8 1617*4757b351SPierre Pronchery.Lossl_rsaz_amm52x30_x2_avxifma256_epilogue: 1618*4757b351SPierre Pronchery .byte 0xf3,0xc3 1619*4757b351SPierre Pronchery.cfi_endproc 1620*4757b351SPierre Pronchery.size ossl_rsaz_amm52x30_x2_avxifma256, .-ossl_rsaz_amm52x30_x2_avxifma256 1621*4757b351SPierre Pronchery.text 1622*4757b351SPierre Pronchery 1623*4757b351SPierre Pronchery.align 32 1624*4757b351SPierre Pronchery.globl ossl_extract_multiplier_2x30_win5_avx 1625*4757b351SPierre Pronchery.type ossl_extract_multiplier_2x30_win5_avx,@function 1626*4757b351SPierre Proncheryossl_extract_multiplier_2x30_win5_avx: 1627*4757b351SPierre Pronchery.cfi_startproc 1628*4757b351SPierre Pronchery.byte 243,15,30,250 1629*4757b351SPierre Pronchery vmovapd .Lones(%rip),%ymm12 1630*4757b351SPierre Pronchery vmovq %rdx,%xmm8 1631*4757b351SPierre Pronchery vpbroadcastq %xmm8,%ymm10 1632*4757b351SPierre Pronchery vmovq %rcx,%xmm8 1633*4757b351SPierre Pronchery vpbroadcastq %xmm8,%ymm11 1634*4757b351SPierre Pronchery leaq 16384(%rsi),%rax 1635*4757b351SPierre Pronchery 1636*4757b351SPierre Pronchery 1637*4757b351SPierre Pronchery vpxor %xmm0,%xmm0,%xmm0 1638*4757b351SPierre Pronchery vmovapd %ymm0,%ymm9 1639*4757b351SPierre Pronchery vmovapd %ymm0,%ymm1 1640*4757b351SPierre Pronchery vmovapd %ymm0,%ymm2 1641*4757b351SPierre Pronchery vmovapd %ymm0,%ymm3 1642*4757b351SPierre Pronchery vmovapd %ymm0,%ymm4 1643*4757b351SPierre Pronchery vmovapd %ymm0,%ymm5 1644*4757b351SPierre Pronchery vmovapd %ymm0,%ymm6 1645*4757b351SPierre Pronchery vmovapd %ymm0,%ymm7 1646*4757b351SPierre Pronchery 1647*4757b351SPierre Pronchery.align 32 1648*4757b351SPierre Pronchery.Lloop: 1649*4757b351SPierre Pronchery vpcmpeqq %ymm9,%ymm10,%ymm13 1650*4757b351SPierre Pronchery vmovdqu 0(%rsi),%ymm8 1651*4757b351SPierre Pronchery 1652*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm0,%ymm0 1653*4757b351SPierre Pronchery vmovdqu 32(%rsi),%ymm8 1654*4757b351SPierre Pronchery 1655*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm1,%ymm1 1656*4757b351SPierre Pronchery vmovdqu 64(%rsi),%ymm8 1657*4757b351SPierre Pronchery 1658*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm2,%ymm2 1659*4757b351SPierre Pronchery vmovdqu 96(%rsi),%ymm8 1660*4757b351SPierre Pronchery 1661*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm3,%ymm3 1662*4757b351SPierre Pronchery vmovdqu 128(%rsi),%ymm8 1663*4757b351SPierre Pronchery 1664*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm4,%ymm4 1665*4757b351SPierre Pronchery vmovdqu 160(%rsi),%ymm8 1666*4757b351SPierre Pronchery 1667*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm5,%ymm5 1668*4757b351SPierre Pronchery vmovdqu 192(%rsi),%ymm8 1669*4757b351SPierre Pronchery 1670*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm6,%ymm6 1671*4757b351SPierre Pronchery vmovdqu 224(%rsi),%ymm8 1672*4757b351SPierre Pronchery 1673*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm7,%ymm7 1674*4757b351SPierre Pronchery vpaddq %ymm12,%ymm9,%ymm9 1675*4757b351SPierre Pronchery addq $512,%rsi 1676*4757b351SPierre Pronchery cmpq %rsi,%rax 1677*4757b351SPierre Pronchery jne .Lloop 1678*4757b351SPierre Pronchery vmovdqu %ymm0,0(%rdi) 1679*4757b351SPierre Pronchery vmovdqu %ymm1,32(%rdi) 1680*4757b351SPierre Pronchery vmovdqu %ymm2,64(%rdi) 1681*4757b351SPierre Pronchery vmovdqu %ymm3,96(%rdi) 1682*4757b351SPierre Pronchery vmovdqu %ymm4,128(%rdi) 1683*4757b351SPierre Pronchery vmovdqu %ymm5,160(%rdi) 1684*4757b351SPierre Pronchery vmovdqu %ymm6,192(%rdi) 1685*4757b351SPierre Pronchery vmovdqu %ymm7,224(%rdi) 1686*4757b351SPierre Pronchery leaq -16384(%rax),%rsi 1687*4757b351SPierre Pronchery 1688*4757b351SPierre Pronchery 1689*4757b351SPierre Pronchery vpxor %xmm0,%xmm0,%xmm0 1690*4757b351SPierre Pronchery vmovapd %ymm0,%ymm9 1691*4757b351SPierre Pronchery vmovapd %ymm0,%ymm0 1692*4757b351SPierre Pronchery vmovapd %ymm0,%ymm1 1693*4757b351SPierre Pronchery vmovapd %ymm0,%ymm2 1694*4757b351SPierre Pronchery vmovapd %ymm0,%ymm3 1695*4757b351SPierre Pronchery vmovapd %ymm0,%ymm4 1696*4757b351SPierre Pronchery vmovapd %ymm0,%ymm5 1697*4757b351SPierre Pronchery vmovapd %ymm0,%ymm6 1698*4757b351SPierre Pronchery vmovapd %ymm0,%ymm7 1699*4757b351SPierre Pronchery 1700*4757b351SPierre Pronchery.align 32 1701*4757b351SPierre Pronchery.Lloop_8_15: 1702*4757b351SPierre Pronchery vpcmpeqq %ymm9,%ymm11,%ymm13 1703*4757b351SPierre Pronchery vmovdqu 256(%rsi),%ymm8 1704*4757b351SPierre Pronchery 1705*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm0,%ymm0 1706*4757b351SPierre Pronchery vmovdqu 288(%rsi),%ymm8 1707*4757b351SPierre Pronchery 1708*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm1,%ymm1 1709*4757b351SPierre Pronchery vmovdqu 320(%rsi),%ymm8 1710*4757b351SPierre Pronchery 1711*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm2,%ymm2 1712*4757b351SPierre Pronchery vmovdqu 352(%rsi),%ymm8 1713*4757b351SPierre Pronchery 1714*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm3,%ymm3 1715*4757b351SPierre Pronchery vmovdqu 384(%rsi),%ymm8 1716*4757b351SPierre Pronchery 1717*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm4,%ymm4 1718*4757b351SPierre Pronchery vmovdqu 416(%rsi),%ymm8 1719*4757b351SPierre Pronchery 1720*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm5,%ymm5 1721*4757b351SPierre Pronchery vmovdqu 448(%rsi),%ymm8 1722*4757b351SPierre Pronchery 1723*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm6,%ymm6 1724*4757b351SPierre Pronchery vmovdqu 480(%rsi),%ymm8 1725*4757b351SPierre Pronchery 1726*4757b351SPierre Pronchery vblendvpd %ymm13,%ymm8,%ymm7,%ymm7 1727*4757b351SPierre Pronchery vpaddq %ymm12,%ymm9,%ymm9 1728*4757b351SPierre Pronchery addq $512,%rsi 1729*4757b351SPierre Pronchery cmpq %rsi,%rax 1730*4757b351SPierre Pronchery jne .Lloop_8_15 1731*4757b351SPierre Pronchery vmovdqu %ymm0,256(%rdi) 1732*4757b351SPierre Pronchery vmovdqu %ymm1,288(%rdi) 1733*4757b351SPierre Pronchery vmovdqu %ymm2,320(%rdi) 1734*4757b351SPierre Pronchery vmovdqu %ymm3,352(%rdi) 1735*4757b351SPierre Pronchery vmovdqu %ymm4,384(%rdi) 1736*4757b351SPierre Pronchery vmovdqu %ymm5,416(%rdi) 1737*4757b351SPierre Pronchery vmovdqu %ymm6,448(%rdi) 1738*4757b351SPierre Pronchery vmovdqu %ymm7,480(%rdi) 1739*4757b351SPierre Pronchery 1740*4757b351SPierre Pronchery .byte 0xf3,0xc3 1741*4757b351SPierre Pronchery.cfi_endproc 1742*4757b351SPierre Pronchery.size ossl_extract_multiplier_2x30_win5_avx, .-ossl_extract_multiplier_2x30_win5_avx 1743*4757b351SPierre Pronchery.section .rodata 1744*4757b351SPierre Pronchery.align 32 1745*4757b351SPierre Pronchery.Lones: 1746*4757b351SPierre Pronchery.quad 1,1,1,1 1747*4757b351SPierre Pronchery.Lzeros: 1748*4757b351SPierre Pronchery.quad 0,0,0,0 1749*4757b351SPierre Pronchery .section ".note.gnu.property", "a" 1750*4757b351SPierre Pronchery .p2align 3 1751*4757b351SPierre Pronchery .long 1f - 0f 1752*4757b351SPierre Pronchery .long 4f - 1f 1753*4757b351SPierre Pronchery .long 5 1754*4757b351SPierre Pronchery0: 1755*4757b351SPierre Pronchery # "GNU" encoded with .byte, since .asciz isn't supported 1756*4757b351SPierre Pronchery # on Solaris. 1757*4757b351SPierre Pronchery .byte 0x47 1758*4757b351SPierre Pronchery .byte 0x4e 1759*4757b351SPierre Pronchery .byte 0x55 1760*4757b351SPierre Pronchery .byte 0 1761*4757b351SPierre Pronchery1: 1762*4757b351SPierre Pronchery .p2align 3 1763*4757b351SPierre Pronchery .long 0xc0000002 1764*4757b351SPierre Pronchery .long 3f - 2f 1765*4757b351SPierre Pronchery2: 1766*4757b351SPierre Pronchery .long 3 1767*4757b351SPierre Pronchery3: 1768*4757b351SPierre Pronchery .p2align 3 1769*4757b351SPierre Pronchery4: 1770