gitee.com/quant1x/gox@v1.7.6/num/asm/_avx2/arithmetic.s (about) 1 Add_F64_V(double*, double*, unsigned long): # @Add_F64_V(double*, double*, unsigned long) 2 testq %rdx, %rdx 3 je .LBB0_7 4 cmpq $16, %rdx 5 jae .LBB0_3 6 xorl %eax, %eax 7 jmp .LBB0_6 8 .LBB0_3: 9 movq %rdx, %rax 10 andq $-16, %rax 11 xorl %ecx, %ecx 12 .LBB0_4: # =>This Inner Loop Header: Depth=1 13 vmovupd (%rdi,%rcx,8), %ymm0 14 vmovupd 32(%rdi,%rcx,8), %ymm1 15 vmovupd 64(%rdi,%rcx,8), %ymm2 16 vmovupd 96(%rdi,%rcx,8), %ymm3 17 vaddpd (%rsi,%rcx,8), %ymm0, %ymm0 18 vaddpd 32(%rsi,%rcx,8), %ymm1, %ymm1 19 vaddpd 64(%rsi,%rcx,8), %ymm2, %ymm2 20 vaddpd 96(%rsi,%rcx,8), %ymm3, %ymm3 21 vmovupd %ymm0, (%rdi,%rcx,8) 22 vmovupd %ymm1, 32(%rdi,%rcx,8) 23 vmovupd %ymm2, 64(%rdi,%rcx,8) 24 vmovupd %ymm3, 96(%rdi,%rcx,8) 25 addq $16, %rcx 26 cmpq %rcx, %rax 27 jne .LBB0_4 28 cmpq %rdx, %rax 29 je .LBB0_7 30 .LBB0_6: # =>This Inner Loop Header: Depth=1 31 vmovsd (%rdi,%rax,8), %xmm0 # xmm0 = mem[0],zero 32 vaddsd (%rsi,%rax,8), %xmm0, %xmm0 33 vmovsd %xmm0, (%rdi,%rax,8) 34 addq $1, %rax 35 cmpq %rax, %rdx 36 jne .LBB0_6 37 .LBB0_7: 38 vzeroupper 39 retq 40 Add_F32_V(float*, float*, unsigned long): # @Add_F32_V(float*, float*, unsigned long) 41 testq %rdx, %rdx 42 je .LBB1_7 43 cmpq $32, %rdx 44 jae .LBB1_3 45 xorl %eax, %eax 46 jmp .LBB1_6 47 .LBB1_3: 48 movq %rdx, %rax 49 andq $-32, %rax 50 xorl %ecx, %ecx 51 .LBB1_4: # =>This Inner Loop Header: Depth=1 52 vmovups (%rdi,%rcx,4), %ymm0 53 vmovups 32(%rdi,%rcx,4), %ymm1 54 vmovups 64(%rdi,%rcx,4), %ymm2 55 vmovups 96(%rdi,%rcx,4), %ymm3 56 vaddps (%rsi,%rcx,4), %ymm0, %ymm0 57 vaddps 32(%rsi,%rcx,4), %ymm1, %ymm1 58 vaddps 64(%rsi,%rcx,4), %ymm2, %ymm2 59 vaddps 96(%rsi,%rcx,4), %ymm3, %ymm3 60 vmovups %ymm0, (%rdi,%rcx,4) 61 vmovups %ymm1, 32(%rdi,%rcx,4) 62 vmovups %ymm2, 64(%rdi,%rcx,4) 63 vmovups %ymm3, 96(%rdi,%rcx,4) 64 addq $32, %rcx 65 cmpq %rcx, %rax 66 jne .LBB1_4 67 cmpq %rdx, %rax 68 je .LBB1_7 69 .LBB1_6: # =>This Inner Loop Header: Depth=1 70 vmovss (%rdi,%rax,4), %xmm0 # xmm0 = mem[0],zero,zero,zero 71 vaddss (%rsi,%rax,4), %xmm0, %xmm0 72 vmovss %xmm0, (%rdi,%rax,4) 73 addq $1, %rax 74 cmpq %rax, %rdx 75 jne .LBB1_6 76 .LBB1_7: 77 vzeroupper 78 retq 79 AddNumber_F64_V(double*, double, unsigned long): # @AddNumber_F64_V(double*, double, unsigned long) 80 testq %rsi, %rsi 81 je .LBB2_11 82 cmpq $16, %rsi 83 jae .LBB2_3 84 xorl %eax, %eax 85 jmp .LBB2_10 86 .LBB2_3: 87 movq %rsi, %rax 88 andq $-16, %rax 89 vbroadcastsd %xmm0, %ymm1 90 leaq -16(%rax), %rcx 91 movq %rcx, %r8 92 shrq $4, %r8 93 addq $1, %r8 94 testq %rcx, %rcx 95 je .LBB2_4 96 movq %r8, %rdx 97 andq $-2, %rdx 98 xorl %ecx, %ecx 99 .LBB2_6: # =>This Inner Loop Header: Depth=1 100 vaddpd (%rdi,%rcx,8), %ymm1, %ymm2 101 vaddpd 32(%rdi,%rcx,8), %ymm1, %ymm3 102 vaddpd 64(%rdi,%rcx,8), %ymm1, %ymm4 103 vaddpd 96(%rdi,%rcx,8), %ymm1, %ymm5 104 vmovupd %ymm2, (%rdi,%rcx,8) 105 vmovupd %ymm3, 32(%rdi,%rcx,8) 106 vmovupd %ymm4, 64(%rdi,%rcx,8) 107 vmovupd %ymm5, 96(%rdi,%rcx,8) 108 vaddpd 128(%rdi,%rcx,8), %ymm1, %ymm2 109 vaddpd 160(%rdi,%rcx,8), %ymm1, %ymm3 110 vaddpd 192(%rdi,%rcx,8), %ymm1, %ymm4 111 vaddpd 224(%rdi,%rcx,8), %ymm1, %ymm5 112 vmovupd %ymm2, 128(%rdi,%rcx,8) 113 vmovupd %ymm3, 160(%rdi,%rcx,8) 114 vmovupd %ymm4, 192(%rdi,%rcx,8) 115 vmovupd %ymm5, 224(%rdi,%rcx,8) 116 addq $32, %rcx 117 addq $-2, %rdx 118 jne .LBB2_6 119 testb $1, %r8b 120 je .LBB2_9 121 .LBB2_8: 122 vaddpd (%rdi,%rcx,8), %ymm1, %ymm2 123 vaddpd 32(%rdi,%rcx,8), %ymm1, %ymm3 124 vaddpd 64(%rdi,%rcx,8), %ymm1, %ymm4 125 vaddpd 96(%rdi,%rcx,8), %ymm1, %ymm1 126 vmovupd %ymm2, (%rdi,%rcx,8) 127 vmovupd %ymm3, 32(%rdi,%rcx,8) 128 vmovupd %ymm4, 64(%rdi,%rcx,8) 129 vmovupd %ymm1, 96(%rdi,%rcx,8) 130 .LBB2_9: 131 cmpq %rsi, %rax 132 je .LBB2_11 133 .LBB2_10: # =>This Inner Loop Header: Depth=1 134 vaddsd (%rdi,%rax,8), %xmm0, %xmm1 135 vmovsd %xmm1, (%rdi,%rax,8) 136 addq $1, %rax 137 cmpq %rax, %rsi 138 jne .LBB2_10 139 .LBB2_11: 140 vzeroupper 141 retq 142 .LBB2_4: 143 xorl %ecx, %ecx 144 testb $1, %r8b 145 jne .LBB2_8 146 jmp .LBB2_9 147 AddNumber_F32_V(float*, float, unsigned long): # @AddNumber_F32_V(float*, float, unsigned long) 148 testq %rsi, %rsi 149 je .LBB3_11 150 cmpq $32, %rsi 151 jae .LBB3_3 152 xorl %eax, %eax 153 jmp .LBB3_10 154 .LBB3_3: 155 movq %rsi, %rax 156 andq $-32, %rax 157 vbroadcastss %xmm0, %ymm1 158 leaq -32(%rax), %rcx 159 movq %rcx, %r8 160 shrq $5, %r8 161 addq $1, %r8 162 testq %rcx, %rcx 163 je .LBB3_4 164 movq %r8, %rdx 165 andq $-2, %rdx 166 xorl %ecx, %ecx 167 .LBB3_6: # =>This Inner Loop Header: Depth=1 168 vaddps (%rdi,%rcx,4), %ymm1, %ymm2 169 vaddps 32(%rdi,%rcx,4), %ymm1, %ymm3 170 vaddps 64(%rdi,%rcx,4), %ymm1, %ymm4 171 vaddps 96(%rdi,%rcx,4), %ymm1, %ymm5 172 vmovups %ymm2, (%rdi,%rcx,4) 173 vmovups %ymm3, 32(%rdi,%rcx,4) 174 vmovups %ymm4, 64(%rdi,%rcx,4) 175 vmovups %ymm5, 96(%rdi,%rcx,4) 176 vaddps 128(%rdi,%rcx,4), %ymm1, %ymm2 177 vaddps 160(%rdi,%rcx,4), %ymm1, %ymm3 178 vaddps 192(%rdi,%rcx,4), %ymm1, %ymm4 179 vaddps 224(%rdi,%rcx,4), %ymm1, %ymm5 180 vmovups %ymm2, 128(%rdi,%rcx,4) 181 vmovups %ymm3, 160(%rdi,%rcx,4) 182 vmovups %ymm4, 192(%rdi,%rcx,4) 183 vmovups %ymm5, 224(%rdi,%rcx,4) 184 addq $64, %rcx 185 addq $-2, %rdx 186 jne .LBB3_6 187 testb $1, %r8b 188 je .LBB3_9 189 .LBB3_8: 190 vaddps (%rdi,%rcx,4), %ymm1, %ymm2 191 vaddps 32(%rdi,%rcx,4), %ymm1, %ymm3 192 vaddps 64(%rdi,%rcx,4), %ymm1, %ymm4 193 vaddps 96(%rdi,%rcx,4), %ymm1, %ymm1 194 vmovups %ymm2, (%rdi,%rcx,4) 195 vmovups %ymm3, 32(%rdi,%rcx,4) 196 vmovups %ymm4, 64(%rdi,%rcx,4) 197 vmovups %ymm1, 96(%rdi,%rcx,4) 198 .LBB3_9: 199 cmpq %rsi, %rax 200 je .LBB3_11 201 .LBB3_10: # =>This Inner Loop Header: Depth=1 202 vaddss (%rdi,%rax,4), %xmm0, %xmm1 203 vmovss %xmm1, (%rdi,%rax,4) 204 addq $1, %rax 205 cmpq %rax, %rsi 206 jne .LBB3_10 207 .LBB3_11: 208 vzeroupper 209 retq 210 .LBB3_4: 211 xorl %ecx, %ecx 212 testb $1, %r8b 213 jne .LBB3_8 214 jmp .LBB3_9 215 Sub_F64_V(double*, double*, unsigned long): # @Sub_F64_V(double*, double*, unsigned long) 216 testq %rdx, %rdx 217 je .LBB4_7 218 cmpq $16, %rdx 219 jae .LBB4_3 220 xorl %eax, %eax 221 jmp .LBB4_6 222 .LBB4_3: 223 movq %rdx, %rax 224 andq $-16, %rax 225 xorl %ecx, %ecx 226 .LBB4_4: # =>This Inner Loop Header: Depth=1 227 vmovupd (%rdi,%rcx,8), %ymm0 228 vmovupd 32(%rdi,%rcx,8), %ymm1 229 vmovupd 64(%rdi,%rcx,8), %ymm2 230 vmovupd 96(%rdi,%rcx,8), %ymm3 231 vsubpd (%rsi,%rcx,8), %ymm0, %ymm0 232 vsubpd 32(%rsi,%rcx,8), %ymm1, %ymm1 233 vsubpd 64(%rsi,%rcx,8), %ymm2, %ymm2 234 vsubpd 96(%rsi,%rcx,8), %ymm3, %ymm3 235 vmovupd %ymm0, (%rdi,%rcx,8) 236 vmovupd %ymm1, 32(%rdi,%rcx,8) 237 vmovupd %ymm2, 64(%rdi,%rcx,8) 238 vmovupd %ymm3, 96(%rdi,%rcx,8) 239 addq $16, %rcx 240 cmpq %rcx, %rax 241 jne .LBB4_4 242 cmpq %rdx, %rax 243 je .LBB4_7 244 .LBB4_6: # =>This Inner Loop Header: Depth=1 245 vmovsd (%rdi,%rax,8), %xmm0 # xmm0 = mem[0],zero 246 vsubsd (%rsi,%rax,8), %xmm0, %xmm0 247 vmovsd %xmm0, (%rdi,%rax,8) 248 addq $1, %rax 249 cmpq %rax, %rdx 250 jne .LBB4_6 251 .LBB4_7: 252 vzeroupper 253 retq 254 Sub_F32_V(float*, float*, unsigned long): # @Sub_F32_V(float*, float*, unsigned long) 255 testq %rdx, %rdx 256 je .LBB5_7 257 cmpq $32, %rdx 258 jae .LBB5_3 259 xorl %eax, %eax 260 jmp .LBB5_6 261 .LBB5_3: 262 movq %rdx, %rax 263 andq $-32, %rax 264 xorl %ecx, %ecx 265 .LBB5_4: # =>This Inner Loop Header: Depth=1 266 vmovups (%rdi,%rcx,4), %ymm0 267 vmovups 32(%rdi,%rcx,4), %ymm1 268 vmovups 64(%rdi,%rcx,4), %ymm2 269 vmovups 96(%rdi,%rcx,4), %ymm3 270 vsubps (%rsi,%rcx,4), %ymm0, %ymm0 271 vsubps 32(%rsi,%rcx,4), %ymm1, %ymm1 272 vsubps 64(%rsi,%rcx,4), %ymm2, %ymm2 273 vsubps 96(%rsi,%rcx,4), %ymm3, %ymm3 274 vmovups %ymm0, (%rdi,%rcx,4) 275 vmovups %ymm1, 32(%rdi,%rcx,4) 276 vmovups %ymm2, 64(%rdi,%rcx,4) 277 vmovups %ymm3, 96(%rdi,%rcx,4) 278 addq $32, %rcx 279 cmpq %rcx, %rax 280 jne .LBB5_4 281 cmpq %rdx, %rax 282 je .LBB5_7 283 .LBB5_6: # =>This Inner Loop Header: Depth=1 284 vmovss (%rdi,%rax,4), %xmm0 # xmm0 = mem[0],zero,zero,zero 285 vsubss (%rsi,%rax,4), %xmm0, %xmm0 286 vmovss %xmm0, (%rdi,%rax,4) 287 addq $1, %rax 288 cmpq %rax, %rdx 289 jne .LBB5_6 290 .LBB5_7: 291 vzeroupper 292 retq 293 SubNumber_F64_V(double*, double, unsigned long): # @SubNumber_F64_V(double*, double, unsigned long) 294 testq %rsi, %rsi 295 je .LBB6_11 296 cmpq $16, %rsi 297 jae .LBB6_3 298 xorl %eax, %eax 299 jmp .LBB6_10 300 .LBB6_3: 301 movq %rsi, %rax 302 andq $-16, %rax 303 vbroadcastsd %xmm0, %ymm1 304 leaq -16(%rax), %rcx 305 movq %rcx, %r8 306 shrq $4, %r8 307 addq $1, %r8 308 testq %rcx, %rcx 309 je .LBB6_4 310 movq %r8, %rdx 311 andq $-2, %rdx 312 xorl %ecx, %ecx 313 .LBB6_6: # =>This Inner Loop Header: Depth=1 314 vmovupd (%rdi,%rcx,8), %ymm2 315 vmovupd 32(%rdi,%rcx,8), %ymm3 316 vmovupd 64(%rdi,%rcx,8), %ymm4 317 vmovupd 96(%rdi,%rcx,8), %ymm5 318 vsubpd %ymm1, %ymm2, %ymm2 319 vsubpd %ymm1, %ymm3, %ymm3 320 vsubpd %ymm1, %ymm4, %ymm4 321 vsubpd %ymm1, %ymm5, %ymm5 322 vmovupd %ymm2, (%rdi,%rcx,8) 323 vmovupd %ymm3, 32(%rdi,%rcx,8) 324 vmovupd %ymm4, 64(%rdi,%rcx,8) 325 vmovupd %ymm5, 96(%rdi,%rcx,8) 326 vmovupd 128(%rdi,%rcx,8), %ymm2 327 vmovupd 160(%rdi,%rcx,8), %ymm3 328 vmovupd 192(%rdi,%rcx,8), %ymm4 329 vmovupd 224(%rdi,%rcx,8), %ymm5 330 vsubpd %ymm1, %ymm2, %ymm2 331 vsubpd %ymm1, %ymm3, %ymm3 332 vsubpd %ymm1, %ymm4, %ymm4 333 vsubpd %ymm1, %ymm5, %ymm5 334 vmovupd %ymm2, 128(%rdi,%rcx,8) 335 vmovupd %ymm3, 160(%rdi,%rcx,8) 336 vmovupd %ymm4, 192(%rdi,%rcx,8) 337 vmovupd %ymm5, 224(%rdi,%rcx,8) 338 addq $32, %rcx 339 addq $-2, %rdx 340 jne .LBB6_6 341 testb $1, %r8b 342 je .LBB6_9 343 .LBB6_8: 344 vmovupd (%rdi,%rcx,8), %ymm2 345 vmovupd 32(%rdi,%rcx,8), %ymm3 346 vmovupd 64(%rdi,%rcx,8), %ymm4 347 vmovupd 96(%rdi,%rcx,8), %ymm5 348 vsubpd %ymm1, %ymm2, %ymm2 349 vsubpd %ymm1, %ymm3, %ymm3 350 vsubpd %ymm1, %ymm4, %ymm4 351 vsubpd %ymm1, %ymm5, %ymm1 352 vmovupd %ymm2, (%rdi,%rcx,8) 353 vmovupd %ymm3, 32(%rdi,%rcx,8) 354 vmovupd %ymm4, 64(%rdi,%rcx,8) 355 vmovupd %ymm1, 96(%rdi,%rcx,8) 356 .LBB6_9: 357 cmpq %rsi, %rax 358 je .LBB6_11 359 .LBB6_10: # =>This Inner Loop Header: Depth=1 360 vmovsd (%rdi,%rax,8), %xmm1 # xmm1 = mem[0],zero 361 vsubsd %xmm0, %xmm1, %xmm1 362 vmovsd %xmm1, (%rdi,%rax,8) 363 addq $1, %rax 364 cmpq %rax, %rsi 365 jne .LBB6_10 366 .LBB6_11: 367 vzeroupper 368 retq 369 .LBB6_4: 370 xorl %ecx, %ecx 371 testb $1, %r8b 372 jne .LBB6_8 373 jmp .LBB6_9 374 SubNumber_F32_V(float*, float, unsigned long): # @SubNumber_F32_V(float*, float, unsigned long) 375 testq %rsi, %rsi 376 je .LBB7_11 377 cmpq $32, %rsi 378 jae .LBB7_3 379 xorl %eax, %eax 380 jmp .LBB7_10 381 .LBB7_3: 382 movq %rsi, %rax 383 andq $-32, %rax 384 vbroadcastss %xmm0, %ymm1 385 leaq -32(%rax), %rcx 386 movq %rcx, %r8 387 shrq $5, %r8 388 addq $1, %r8 389 testq %rcx, %rcx 390 je .LBB7_4 391 movq %r8, %rdx 392 andq $-2, %rdx 393 xorl %ecx, %ecx 394 .LBB7_6: # =>This Inner Loop Header: Depth=1 395 vmovups (%rdi,%rcx,4), %ymm2 396 vmovups 32(%rdi,%rcx,4), %ymm3 397 vmovups 64(%rdi,%rcx,4), %ymm4 398 vmovups 96(%rdi,%rcx,4), %ymm5 399 vsubps %ymm1, %ymm2, %ymm2 400 vsubps %ymm1, %ymm3, %ymm3 401 vsubps %ymm1, %ymm4, %ymm4 402 vsubps %ymm1, %ymm5, %ymm5 403 vmovups %ymm2, (%rdi,%rcx,4) 404 vmovups %ymm3, 32(%rdi,%rcx,4) 405 vmovups %ymm4, 64(%rdi,%rcx,4) 406 vmovups %ymm5, 96(%rdi,%rcx,4) 407 vmovups 128(%rdi,%rcx,4), %ymm2 408 vmovups 160(%rdi,%rcx,4), %ymm3 409 vmovups 192(%rdi,%rcx,4), %ymm4 410 vmovups 224(%rdi,%rcx,4), %ymm5 411 vsubps %ymm1, %ymm2, %ymm2 412 vsubps %ymm1, %ymm3, %ymm3 413 vsubps %ymm1, %ymm4, %ymm4 414 vsubps %ymm1, %ymm5, %ymm5 415 vmovups %ymm2, 128(%rdi,%rcx,4) 416 vmovups %ymm3, 160(%rdi,%rcx,4) 417 vmovups %ymm4, 192(%rdi,%rcx,4) 418 vmovups %ymm5, 224(%rdi,%rcx,4) 419 addq $64, %rcx 420 addq $-2, %rdx 421 jne .LBB7_6 422 testb $1, %r8b 423 je .LBB7_9 424 .LBB7_8: 425 vmovups (%rdi,%rcx,4), %ymm2 426 vmovups 32(%rdi,%rcx,4), %ymm3 427 vmovups 64(%rdi,%rcx,4), %ymm4 428 vmovups 96(%rdi,%rcx,4), %ymm5 429 vsubps %ymm1, %ymm2, %ymm2 430 vsubps %ymm1, %ymm3, %ymm3 431 vsubps %ymm1, %ymm4, %ymm4 432 vsubps %ymm1, %ymm5, %ymm1 433 vmovups %ymm2, (%rdi,%rcx,4) 434 vmovups %ymm3, 32(%rdi,%rcx,4) 435 vmovups %ymm4, 64(%rdi,%rcx,4) 436 vmovups %ymm1, 96(%rdi,%rcx,4) 437 .LBB7_9: 438 cmpq %rsi, %rax 439 je .LBB7_11 440 .LBB7_10: # =>This Inner Loop Header: Depth=1 441 vmovss (%rdi,%rax,4), %xmm1 # xmm1 = mem[0],zero,zero,zero 442 vsubss %xmm0, %xmm1, %xmm1 443 vmovss %xmm1, (%rdi,%rax,4) 444 addq $1, %rax 445 cmpq %rax, %rsi 446 jne .LBB7_10 447 .LBB7_11: 448 vzeroupper 449 retq 450 .LBB7_4: 451 xorl %ecx, %ecx 452 testb $1, %r8b 453 jne .LBB7_8 454 jmp .LBB7_9 455 Mul_F64_V(double*, double*, unsigned long): # @Mul_F64_V(double*, double*, unsigned long) 456 testq %rdx, %rdx 457 je .LBB8_7 458 cmpq $16, %rdx 459 jae .LBB8_3 460 xorl %eax, %eax 461 jmp .LBB8_6 462 .LBB8_3: 463 movq %rdx, %rax 464 andq $-16, %rax 465 xorl %ecx, %ecx 466 .LBB8_4: # =>This Inner Loop Header: Depth=1 467 vmovupd (%rdi,%rcx,8), %ymm0 468 vmovupd 32(%rdi,%rcx,8), %ymm1 469 vmovupd 64(%rdi,%rcx,8), %ymm2 470 vmovupd 96(%rdi,%rcx,8), %ymm3 471 vmulpd (%rsi,%rcx,8), %ymm0, %ymm0 472 vmulpd 32(%rsi,%rcx,8), %ymm1, %ymm1 473 vmulpd 64(%rsi,%rcx,8), %ymm2, %ymm2 474 vmulpd 96(%rsi,%rcx,8), %ymm3, %ymm3 475 vmovupd %ymm0, (%rdi,%rcx,8) 476 vmovupd %ymm1, 32(%rdi,%rcx,8) 477 vmovupd %ymm2, 64(%rdi,%rcx,8) 478 vmovupd %ymm3, 96(%rdi,%rcx,8) 479 addq $16, %rcx 480 cmpq %rcx, %rax 481 jne .LBB8_4 482 cmpq %rdx, %rax 483 je .LBB8_7 484 .LBB8_6: # =>This Inner Loop Header: Depth=1 485 vmovsd (%rdi,%rax,8), %xmm0 # xmm0 = mem[0],zero 486 vmulsd (%rsi,%rax,8), %xmm0, %xmm0 487 vmovsd %xmm0, (%rdi,%rax,8) 488 addq $1, %rax 489 cmpq %rax, %rdx 490 jne .LBB8_6 491 .LBB8_7: 492 vzeroupper 493 retq 494 Mul_F32_V(float*, float*, unsigned long): # @Mul_F32_V(float*, float*, unsigned long) 495 testq %rdx, %rdx 496 je .LBB9_7 497 cmpq $32, %rdx 498 jae .LBB9_3 499 xorl %eax, %eax 500 jmp .LBB9_6 501 .LBB9_3: 502 movq %rdx, %rax 503 andq $-32, %rax 504 xorl %ecx, %ecx 505 .LBB9_4: # =>This Inner Loop Header: Depth=1 506 vmovups (%rdi,%rcx,4), %ymm0 507 vmovups 32(%rdi,%rcx,4), %ymm1 508 vmovups 64(%rdi,%rcx,4), %ymm2 509 vmovups 96(%rdi,%rcx,4), %ymm3 510 vmulps (%rsi,%rcx,4), %ymm0, %ymm0 511 vmulps 32(%rsi,%rcx,4), %ymm1, %ymm1 512 vmulps 64(%rsi,%rcx,4), %ymm2, %ymm2 513 vmulps 96(%rsi,%rcx,4), %ymm3, %ymm3 514 vmovups %ymm0, (%rdi,%rcx,4) 515 vmovups %ymm1, 32(%rdi,%rcx,4) 516 vmovups %ymm2, 64(%rdi,%rcx,4) 517 vmovups %ymm3, 96(%rdi,%rcx,4) 518 addq $32, %rcx 519 cmpq %rcx, %rax 520 jne .LBB9_4 521 cmpq %rdx, %rax 522 je .LBB9_7 523 .LBB9_6: # =>This Inner Loop Header: Depth=1 524 vmovss (%rdi,%rax,4), %xmm0 # xmm0 = mem[0],zero,zero,zero 525 vmulss (%rsi,%rax,4), %xmm0, %xmm0 526 vmovss %xmm0, (%rdi,%rax,4) 527 addq $1, %rax 528 cmpq %rax, %rdx 529 jne .LBB9_6 530 .LBB9_7: 531 vzeroupper 532 retq 533 MulNumber_F64_V(double*, double, unsigned long): # @MulNumber_F64_V(double*, double, unsigned long) 534 testq %rsi, %rsi 535 je .LBB10_11 536 cmpq $16, %rsi 537 jae .LBB10_3 538 xorl %eax, %eax 539 jmp .LBB10_10 540 .LBB10_3: 541 movq %rsi, %rax 542 andq $-16, %rax 543 vbroadcastsd %xmm0, %ymm1 544 leaq -16(%rax), %rcx 545 movq %rcx, %r8 546 shrq $4, %r8 547 addq $1, %r8 548 testq %rcx, %rcx 549 je .LBB10_4 550 movq %r8, %rdx 551 andq $-2, %rdx 552 xorl %ecx, %ecx 553 .LBB10_6: # =>This Inner Loop Header: Depth=1 554 vmulpd (%rdi,%rcx,8), %ymm1, %ymm2 555 vmulpd 32(%rdi,%rcx,8), %ymm1, %ymm3 556 vmulpd 64(%rdi,%rcx,8), %ymm1, %ymm4 557 vmulpd 96(%rdi,%rcx,8), %ymm1, %ymm5 558 vmovupd %ymm2, (%rdi,%rcx,8) 559 vmovupd %ymm3, 32(%rdi,%rcx,8) 560 vmovupd %ymm4, 64(%rdi,%rcx,8) 561 vmovupd %ymm5, 96(%rdi,%rcx,8) 562 vmulpd 128(%rdi,%rcx,8), %ymm1, %ymm2 563 vmulpd 160(%rdi,%rcx,8), %ymm1, %ymm3 564 vmulpd 192(%rdi,%rcx,8), %ymm1, %ymm4 565 vmulpd 224(%rdi,%rcx,8), %ymm1, %ymm5 566 vmovupd %ymm2, 128(%rdi,%rcx,8) 567 vmovupd %ymm3, 160(%rdi,%rcx,8) 568 vmovupd %ymm4, 192(%rdi,%rcx,8) 569 vmovupd %ymm5, 224(%rdi,%rcx,8) 570 addq $32, %rcx 571 addq $-2, %rdx 572 jne .LBB10_6 573 testb $1, %r8b 574 je .LBB10_9 575 .LBB10_8: 576 vmulpd (%rdi,%rcx,8), %ymm1, %ymm2 577 vmulpd 32(%rdi,%rcx,8), %ymm1, %ymm3 578 vmulpd 64(%rdi,%rcx,8), %ymm1, %ymm4 579 vmulpd 96(%rdi,%rcx,8), %ymm1, %ymm1 580 vmovupd %ymm2, (%rdi,%rcx,8) 581 vmovupd %ymm3, 32(%rdi,%rcx,8) 582 vmovupd %ymm4, 64(%rdi,%rcx,8) 583 vmovupd %ymm1, 96(%rdi,%rcx,8) 584 .LBB10_9: 585 cmpq %rsi, %rax 586 je .LBB10_11 587 .LBB10_10: # =>This Inner Loop Header: Depth=1 588 vmulsd (%rdi,%rax,8), %xmm0, %xmm1 589 vmovsd %xmm1, (%rdi,%rax,8) 590 addq $1, %rax 591 cmpq %rax, %rsi 592 jne .LBB10_10 593 .LBB10_11: 594 vzeroupper 595 retq 596 .LBB10_4: 597 xorl %ecx, %ecx 598 testb $1, %r8b 599 jne .LBB10_8 600 jmp .LBB10_9 601 MulNumber_F32_V(float*, float, unsigned long): # @MulNumber_F32_V(float*, float, unsigned long) 602 testq %rsi, %rsi 603 je .LBB11_11 604 cmpq $32, %rsi 605 jae .LBB11_3 606 xorl %eax, %eax 607 jmp .LBB11_10 608 .LBB11_3: 609 movq %rsi, %rax 610 andq $-32, %rax 611 vbroadcastss %xmm0, %ymm1 612 leaq -32(%rax), %rcx 613 movq %rcx, %r8 614 shrq $5, %r8 615 addq $1, %r8 616 testq %rcx, %rcx 617 je .LBB11_4 618 movq %r8, %rdx 619 andq $-2, %rdx 620 xorl %ecx, %ecx 621 .LBB11_6: # =>This Inner Loop Header: Depth=1 622 vmulps (%rdi,%rcx,4), %ymm1, %ymm2 623 vmulps 32(%rdi,%rcx,4), %ymm1, %ymm3 624 vmulps 64(%rdi,%rcx,4), %ymm1, %ymm4 625 vmulps 96(%rdi,%rcx,4), %ymm1, %ymm5 626 vmovups %ymm2, (%rdi,%rcx,4) 627 vmovups %ymm3, 32(%rdi,%rcx,4) 628 vmovups %ymm4, 64(%rdi,%rcx,4) 629 vmovups %ymm5, 96(%rdi,%rcx,4) 630 vmulps 128(%rdi,%rcx,4), %ymm1, %ymm2 631 vmulps 160(%rdi,%rcx,4), %ymm1, %ymm3 632 vmulps 192(%rdi,%rcx,4), %ymm1, %ymm4 633 vmulps 224(%rdi,%rcx,4), %ymm1, %ymm5 634 vmovups %ymm2, 128(%rdi,%rcx,4) 635 vmovups %ymm3, 160(%rdi,%rcx,4) 636 vmovups %ymm4, 192(%rdi,%rcx,4) 637 vmovups %ymm5, 224(%rdi,%rcx,4) 638 addq $64, %rcx 639 addq $-2, %rdx 640 jne .LBB11_6 641 testb $1, %r8b 642 je .LBB11_9 643 .LBB11_8: 644 vmulps (%rdi,%rcx,4), %ymm1, %ymm2 645 vmulps 32(%rdi,%rcx,4), %ymm1, %ymm3 646 vmulps 64(%rdi,%rcx,4), %ymm1, %ymm4 647 vmulps 96(%rdi,%rcx,4), %ymm1, %ymm1 648 vmovups %ymm2, (%rdi,%rcx,4) 649 vmovups %ymm3, 32(%rdi,%rcx,4) 650 vmovups %ymm4, 64(%rdi,%rcx,4) 651 vmovups %ymm1, 96(%rdi,%rcx,4) 652 .LBB11_9: 653 cmpq %rsi, %rax 654 je .LBB11_11 655 .LBB11_10: # =>This Inner Loop Header: Depth=1 656 vmulss (%rdi,%rax,4), %xmm0, %xmm1 657 vmovss %xmm1, (%rdi,%rax,4) 658 addq $1, %rax 659 cmpq %rax, %rsi 660 jne .LBB11_10 661 .LBB11_11: 662 vzeroupper 663 retq 664 .LBB11_4: 665 xorl %ecx, %ecx 666 testb $1, %r8b 667 jne .LBB11_8 668 jmp .LBB11_9 669 Div_F64_V(double*, double*, unsigned long): # @Div_F64_V(double*, double*, unsigned long) 670 testq %rdx, %rdx 671 je .LBB12_11 672 cmpq $4, %rdx 673 jae .LBB12_3 674 xorl %eax, %eax 675 jmp .LBB12_10 676 .LBB12_3: 677 movq %rdx, %rax 678 andq $-4, %rax 679 leaq -4(%rax), %rcx 680 movq %rcx, %r8 681 shrq $2, %r8 682 addq $1, %r8 683 testq %rcx, %rcx 684 je .LBB12_4 685 movq %r8, %r9 686 andq $-2, %r9 687 xorl %ecx, %ecx 688 .LBB12_6: # =>This Inner Loop Header: Depth=1 689 vmovupd (%rdi,%rcx,8), %ymm0 690 vdivpd (%rsi,%rcx,8), %ymm0, %ymm0 691 vmovupd 32(%rdi,%rcx,8), %ymm1 692 vmovupd %ymm0, (%rdi,%rcx,8) 693 vdivpd 32(%rsi,%rcx,8), %ymm1, %ymm0 694 vmovupd %ymm0, 32(%rdi,%rcx,8) 695 addq $8, %rcx 696 addq $-2, %r9 697 jne .LBB12_6 698 testb $1, %r8b 699 je .LBB12_9 700 .LBB12_8: 701 vmovupd (%rdi,%rcx,8), %ymm0 702 vdivpd (%rsi,%rcx,8), %ymm0, %ymm0 703 vmovupd %ymm0, (%rdi,%rcx,8) 704 .LBB12_9: 705 cmpq %rdx, %rax 706 je .LBB12_11 707 .LBB12_10: # =>This Inner Loop Header: Depth=1 708 vmovsd (%rdi,%rax,8), %xmm0 # xmm0 = mem[0],zero 709 vdivsd (%rsi,%rax,8), %xmm0, %xmm0 710 vmovsd %xmm0, (%rdi,%rax,8) 711 addq $1, %rax 712 cmpq %rax, %rdx 713 jne .LBB12_10 714 .LBB12_11: 715 vzeroupper 716 retq 717 .LBB12_4: 718 xorl %ecx, %ecx 719 testb $1, %r8b 720 jne .LBB12_8 721 jmp .LBB12_9 722 Div_F32_V(float*, float*, unsigned long): # @Div_F32_V(float*, float*, unsigned long) 723 testq %rdx, %rdx 724 je .LBB13_7 725 cmpq $32, %rdx 726 jae .LBB13_3 727 xorl %eax, %eax 728 jmp .LBB13_6 729 .LBB13_3: 730 movq %rdx, %rax 731 andq $-32, %rax 732 xorl %ecx, %ecx 733 .LBB13_4: # =>This Inner Loop Header: Depth=1 734 vmovups (%rsi,%rcx,4), %ymm0 735 vmovups 32(%rsi,%rcx,4), %ymm1 736 vmovups 64(%rsi,%rcx,4), %ymm2 737 vrcpps %ymm0, %ymm3 738 vmovups 96(%rsi,%rcx,4), %ymm4 739 vmovups (%rdi,%rcx,4), %ymm5 740 vmovups 32(%rdi,%rcx,4), %ymm6 741 vmovups 64(%rdi,%rcx,4), %ymm7 742 vmovups 96(%rdi,%rcx,4), %ymm8 743 vmulps %ymm3, %ymm5, %ymm9 744 vfmsub213ps %ymm5, %ymm9, %ymm0 # ymm0 = (ymm9 * ymm0) - ymm5 745 vfnmadd213ps %ymm9, %ymm3, %ymm0 # ymm0 = -(ymm3 * ymm0) + ymm9 746 vrcpps %ymm1, %ymm3 747 vmulps %ymm3, %ymm6, %ymm5 748 vfmsub213ps %ymm6, %ymm5, %ymm1 # ymm1 = (ymm5 * ymm1) - ymm6 749 vrcpps %ymm2, %ymm6 750 vfnmadd213ps %ymm5, %ymm3, %ymm1 # ymm1 = -(ymm3 * ymm1) + ymm5 751 vmulps %ymm6, %ymm7, %ymm3 752 vfmsub213ps %ymm7, %ymm3, %ymm2 # ymm2 = (ymm3 * ymm2) - ymm7 753 vfnmadd213ps %ymm3, %ymm6, %ymm2 # ymm2 = -(ymm6 * ymm2) + ymm3 754 vrcpps %ymm4, %ymm3 755 vmulps %ymm3, %ymm8, %ymm5 756 vfmsub213ps %ymm8, %ymm5, %ymm4 # ymm4 = (ymm5 * ymm4) - ymm8 757 vfnmadd213ps %ymm5, %ymm3, %ymm4 # ymm4 = -(ymm3 * ymm4) + ymm5 758 vmovups %ymm0, (%rdi,%rcx,4) 759 vmovups %ymm1, 32(%rdi,%rcx,4) 760 vmovups %ymm2, 64(%rdi,%rcx,4) 761 vmovups %ymm4, 96(%rdi,%rcx,4) 762 addq $32, %rcx 763 cmpq %rcx, %rax 764 jne .LBB13_4 765 cmpq %rdx, %rax 766 je .LBB13_7 767 .LBB13_6: # =>This Inner Loop Header: Depth=1 768 vmovss (%rdi,%rax,4), %xmm0 # xmm0 = mem[0],zero,zero,zero 769 vdivss (%rsi,%rax,4), %xmm0, %xmm0 770 vmovss %xmm0, (%rdi,%rax,4) 771 addq $1, %rax 772 cmpq %rax, %rdx 773 jne .LBB13_6 774 .LBB13_7: 775 vzeroupper 776 retq 777 .LCPI14_0: 778 .quad 0x3ff0000000000000 # double 1 779 DivNumber_F64_V(double*, double, unsigned long): # @DivNumber_F64_V(double*, double, unsigned long) 780 testq %rsi, %rsi 781 je .LBB14_12 782 cmpq $4, %rsi 783 jae .LBB14_3 784 xorl %eax, %eax 785 jmp .LBB14_10 786 .LBB14_3: 787 movq %rsi, %rax 788 andq $-4, %rax 789 vbroadcastsd %xmm0, %ymm1 790 leaq -4(%rax), %rcx 791 movq %rcx, %r8 792 shrq $2, %r8 793 addq $1, %r8 794 testq %rcx, %rcx 795 je .LBB14_4 796 movq %r8, %rcx 797 andq $-2, %rcx 798 vbroadcastsd .LCPI14_0(%rip), %ymm2 # ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0] 799 vdivpd %ymm1, %ymm2, %ymm2 800 xorl %edx, %edx 801 .LBB14_6: # =>This Inner Loop Header: Depth=1 802 vmulpd (%rdi,%rdx,8), %ymm2, %ymm3 803 vmovupd %ymm3, (%rdi,%rdx,8) 804 vmulpd 32(%rdi,%rdx,8), %ymm2, %ymm3 805 vmovupd %ymm3, 32(%rdi,%rdx,8) 806 addq $8, %rdx 807 addq $-2, %rcx 808 jne .LBB14_6 809 testb $1, %r8b 810 je .LBB14_9 811 .LBB14_8: 812 vmovupd (%rdi,%rdx,8), %ymm2 813 vdivpd %ymm1, %ymm2, %ymm1 814 vmovupd %ymm1, (%rdi,%rdx,8) 815 .LBB14_9: 816 cmpq %rsi, %rax 817 je .LBB14_12 818 .LBB14_10: 819 vmovsd .LCPI14_0(%rip), %xmm1 # xmm1 = mem[0],zero 820 vdivsd %xmm0, %xmm1, %xmm0 821 .LBB14_11: # =>This Inner Loop Header: Depth=1 822 vmulsd (%rdi,%rax,8), %xmm0, %xmm1 823 vmovsd %xmm1, (%rdi,%rax,8) 824 addq $1, %rax 825 cmpq %rax, %rsi 826 jne .LBB14_11 827 .LBB14_12: 828 vzeroupper 829 retq 830 .LBB14_4: 831 xorl %edx, %edx 832 testb $1, %r8b 833 jne .LBB14_8 834 jmp .LBB14_9 835 .LCPI15_0: 836 .long 0x3f800000 # float 1 837 DivNumber_F32_V(float*, float, unsigned long): # @DivNumber_F32_V(float*, float, unsigned long) 838 testq %rsi, %rsi 839 je .LBB15_8 840 cmpq $32, %rsi 841 jae .LBB15_3 842 xorl %eax, %eax 843 jmp .LBB15_6 844 .LBB15_3: 845 movq %rsi, %rax 846 andq $-32, %rax 847 vmovss .LCPI15_0(%rip), %xmm1 # xmm1 = mem[0],zero,zero,zero 848 vdivss %xmm0, %xmm1, %xmm1 849 vbroadcastss %xmm1, %ymm1 850 xorl %ecx, %ecx 851 .LBB15_4: # =>This Inner Loop Header: Depth=1 852 vmulps (%rdi,%rcx,4), %ymm1, %ymm2 853 vmulps 32(%rdi,%rcx,4), %ymm1, %ymm3 854 vmulps 64(%rdi,%rcx,4), %ymm1, %ymm4 855 vmulps 96(%rdi,%rcx,4), %ymm1, %ymm5 856 vmovups %ymm2, (%rdi,%rcx,4) 857 vmovups %ymm3, 32(%rdi,%rcx,4) 858 vmovups %ymm4, 64(%rdi,%rcx,4) 859 vmovups %ymm5, 96(%rdi,%rcx,4) 860 addq $32, %rcx 861 cmpq %rcx, %rax 862 jne .LBB15_4 863 cmpq %rsi, %rax 864 je .LBB15_8 865 .LBB15_6: 866 vmovss .LCPI15_0(%rip), %xmm1 # xmm1 = mem[0],zero,zero,zero 867 vdivss %xmm0, %xmm1, %xmm0 868 .LBB15_7: # =>This Inner Loop Header: Depth=1 869 vmulss (%rdi,%rax,4), %xmm0, %xmm1 870 vmovss %xmm1, (%rdi,%rax,4) 871 addq $1, %rax 872 cmpq %rax, %rsi 873 jne .LBB15_7 874 .LBB15_8: 875 vzeroupper 876 retq 877 .LCPI16_0: 878 .quad 0x7fffffffffffffff # double NaN 879 .LCPI16_1: 880 .quad 0x7fffffffffffffff # double NaN 881 .quad 0x7fffffffffffffff # double NaN 882 Abs_F64_V(double*, unsigned long): # @Abs_F64_V(double*, unsigned long) 883 testq %rsi, %rsi 884 je .LBB16_8 885 cmpq $16, %rsi 886 jae .LBB16_3 887 xorl %eax, %eax 888 jmp .LBB16_6 889 .LBB16_3: 890 movq %rsi, %rax 891 andq $-16, %rax 892 xorl %ecx, %ecx 893 vbroadcastsd .LCPI16_0(%rip), %ymm0 # ymm0 = [NaN,NaN,NaN,NaN] 894 .LBB16_4: # =>This Inner Loop Header: Depth=1 895 vandps (%rdi,%rcx,8), %ymm0, %ymm1 896 vandps 32(%rdi,%rcx,8), %ymm0, %ymm2 897 vandps 64(%rdi,%rcx,8), %ymm0, %ymm3 898 vandps 96(%rdi,%rcx,8), %ymm0, %ymm4 899 vmovups %ymm1, (%rdi,%rcx,8) 900 vmovups %ymm2, 32(%rdi,%rcx,8) 901 vmovups %ymm3, 64(%rdi,%rcx,8) 902 vmovups %ymm4, 96(%rdi,%rcx,8) 903 addq $16, %rcx 904 cmpq %rcx, %rax 905 jne .LBB16_4 906 cmpq %rsi, %rax 907 je .LBB16_8 908 .LBB16_6: 909 vmovaps .LCPI16_1(%rip), %xmm0 # xmm0 = [NaN,NaN] 910 .LBB16_7: # =>This Inner Loop Header: Depth=1 911 vmovsd (%rdi,%rax,8), %xmm1 # xmm1 = mem[0],zero 912 vandps %xmm0, %xmm1, %xmm1 913 vmovlps %xmm1, (%rdi,%rax,8) 914 addq $1, %rax 915 cmpq %rax, %rsi 916 jne .LBB16_7 917 .LBB16_8: 918 vzeroupper 919 retq 920 .LCPI17_0: 921 .long 0x7fffffff # float NaN 922 Abs_F32_V(float*, unsigned long): # @Abs_F32_V(float*, unsigned long) 923 testq %rsi, %rsi 924 je .LBB17_8 925 cmpq $32, %rsi 926 jae .LBB17_3 927 xorl %eax, %eax 928 jmp .LBB17_6 929 .LBB17_3: 930 movq %rsi, %rax 931 andq $-32, %rax 932 xorl %ecx, %ecx 933 vbroadcastss .LCPI17_0(%rip), %ymm0 # ymm0 = [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN] 934 .LBB17_4: # =>This Inner Loop Header: Depth=1 935 vandps (%rdi,%rcx,4), %ymm0, %ymm1 936 vandps 32(%rdi,%rcx,4), %ymm0, %ymm2 937 vandps 64(%rdi,%rcx,4), %ymm0, %ymm3 938 vandps 96(%rdi,%rcx,4), %ymm0, %ymm4 939 vmovups %ymm1, (%rdi,%rcx,4) 940 vmovups %ymm2, 32(%rdi,%rcx,4) 941 vmovups %ymm3, 64(%rdi,%rcx,4) 942 vmovups %ymm4, 96(%rdi,%rcx,4) 943 addq $32, %rcx 944 cmpq %rcx, %rax 945 jne .LBB17_4 946 cmpq %rsi, %rax 947 je .LBB17_8 948 .LBB17_6: 949 vbroadcastss .LCPI17_0(%rip), %xmm0 # xmm0 = [NaN,NaN,NaN,NaN] 950 .LBB17_7: # =>This Inner Loop Header: Depth=1 951 vmovss (%rdi,%rax,4), %xmm1 # xmm1 = mem[0],zero,zero,zero 952 vandps %xmm0, %xmm1, %xmm1 953 vmovss %xmm1, (%rdi,%rax,4) 954 addq $1, %rax 955 cmpq %rax, %rsi 956 jne .LBB17_7 957 .LBB17_8: 958 vzeroupper 959 retq 960 .LCPI18_0: 961 .quad 0x8000000000000000 # double -0 962 .LCPI18_1: 963 .quad 0x8000000000000000 # double -0 964 .quad 0x8000000000000000 # double -0 965 Neg_F64_V(double*, unsigned long): # @Neg_F64_V(double*, unsigned long) 966 testq %rsi, %rsi 967 je .LBB18_12 968 cmpq $16, %rsi 969 jae .LBB18_3 970 xorl %eax, %eax 971 jmp .LBB18_10 972 .LBB18_3: 973 movq %rsi, %rax 974 andq $-16, %rax 975 leaq -16(%rax), %rcx 976 movq %rcx, %r8 977 shrq $4, %r8 978 addq $1, %r8 979 testq %rcx, %rcx 980 je .LBB18_4 981 movq %r8, %rdx 982 andq $-2, %rdx 983 xorl %ecx, %ecx 984 vbroadcastsd .LCPI18_0(%rip), %ymm0 # ymm0 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0] 985 .LBB18_6: # =>This Inner Loop Header: Depth=1 986 vxorps (%rdi,%rcx,8), %ymm0, %ymm1 987 vxorps 32(%rdi,%rcx,8), %ymm0, %ymm2 988 vxorps 64(%rdi,%rcx,8), %ymm0, %ymm3 989 vxorps 96(%rdi,%rcx,8), %ymm0, %ymm4 990 vmovups %ymm1, (%rdi,%rcx,8) 991 vmovups %ymm2, 32(%rdi,%rcx,8) 992 vmovups %ymm3, 64(%rdi,%rcx,8) 993 vmovups %ymm4, 96(%rdi,%rcx,8) 994 vxorps 128(%rdi,%rcx,8), %ymm0, %ymm1 995 vxorps 160(%rdi,%rcx,8), %ymm0, %ymm2 996 vxorps 192(%rdi,%rcx,8), %ymm0, %ymm3 997 vxorps 224(%rdi,%rcx,8), %ymm0, %ymm4 998 vmovups %ymm1, 128(%rdi,%rcx,8) 999 vmovups %ymm2, 160(%rdi,%rcx,8) 1000 vmovups %ymm3, 192(%rdi,%rcx,8) 1001 vmovups %ymm4, 224(%rdi,%rcx,8) 1002 addq $32, %rcx 1003 addq $-2, %rdx 1004 jne .LBB18_6 1005 testb $1, %r8b 1006 je .LBB18_9 1007 .LBB18_8: 1008 vbroadcastsd .LCPI18_0(%rip), %ymm0 # ymm0 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0] 1009 vxorps (%rdi,%rcx,8), %ymm0, %ymm1 1010 vxorps 32(%rdi,%rcx,8), %ymm0, %ymm2 1011 vxorps 64(%rdi,%rcx,8), %ymm0, %ymm3 1012 vxorps 96(%rdi,%rcx,8), %ymm0, %ymm0 1013 vmovups %ymm1, (%rdi,%rcx,8) 1014 vmovups %ymm2, 32(%rdi,%rcx,8) 1015 vmovups %ymm3, 64(%rdi,%rcx,8) 1016 vmovups %ymm0, 96(%rdi,%rcx,8) 1017 .LBB18_9: 1018 cmpq %rsi, %rax 1019 je .LBB18_12 1020 .LBB18_10: 1021 vmovaps .LCPI18_1(%rip), %xmm0 # xmm0 = [-0.0E+0,-0.0E+0] 1022 .LBB18_11: # =>This Inner Loop Header: Depth=1 1023 vmovsd (%rdi,%rax,8), %xmm1 # xmm1 = mem[0],zero 1024 vxorps %xmm0, %xmm1, %xmm1 1025 vmovlps %xmm1, (%rdi,%rax,8) 1026 addq $1, %rax 1027 cmpq %rax, %rsi 1028 jne .LBB18_11 1029 .LBB18_12: 1030 vzeroupper 1031 retq 1032 .LBB18_4: 1033 xorl %ecx, %ecx 1034 testb $1, %r8b 1035 jne .LBB18_8 1036 jmp .LBB18_9 1037 .LCPI19_0: 1038 .long 0x80000000 # float -0 1039 Neg_F32_V(float*, unsigned long): # @Neg_F32_V(float*, unsigned long) 1040 testq %rsi, %rsi 1041 je .LBB19_12 1042 cmpq $32, %rsi 1043 jae .LBB19_3 1044 xorl %eax, %eax 1045 jmp .LBB19_10 1046 .LBB19_3: 1047 movq %rsi, %rax 1048 andq $-32, %rax 1049 leaq -32(%rax), %rcx 1050 movq %rcx, %r8 1051 shrq $5, %r8 1052 addq $1, %r8 1053 testq %rcx, %rcx 1054 je .LBB19_4 1055 movq %r8, %rdx 1056 andq $-2, %rdx 1057 xorl %ecx, %ecx 1058 vbroadcastss .LCPI19_0(%rip), %ymm0 # ymm0 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0] 1059 .LBB19_6: # =>This Inner Loop Header: Depth=1 1060 vxorps (%rdi,%rcx,4), %ymm0, %ymm1 1061 vxorps 32(%rdi,%rcx,4), %ymm0, %ymm2 1062 vxorps 64(%rdi,%rcx,4), %ymm0, %ymm3 1063 vxorps 96(%rdi,%rcx,4), %ymm0, %ymm4 1064 vmovups %ymm1, (%rdi,%rcx,4) 1065 vmovups %ymm2, 32(%rdi,%rcx,4) 1066 vmovups %ymm3, 64(%rdi,%rcx,4) 1067 vmovups %ymm4, 96(%rdi,%rcx,4) 1068 vxorps 128(%rdi,%rcx,4), %ymm0, %ymm1 1069 vxorps 160(%rdi,%rcx,4), %ymm0, %ymm2 1070 vxorps 192(%rdi,%rcx,4), %ymm0, %ymm3 1071 vxorps 224(%rdi,%rcx,4), %ymm0, %ymm4 1072 vmovups %ymm1, 128(%rdi,%rcx,4) 1073 vmovups %ymm2, 160(%rdi,%rcx,4) 1074 vmovups %ymm3, 192(%rdi,%rcx,4) 1075 vmovups %ymm4, 224(%rdi,%rcx,4) 1076 addq $64, %rcx 1077 addq $-2, %rdx 1078 jne .LBB19_6 1079 testb $1, %r8b 1080 je .LBB19_9 1081 .LBB19_8: 1082 vbroadcastss .LCPI19_0(%rip), %ymm0 # ymm0 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0] 1083 vxorps (%rdi,%rcx,4), %ymm0, %ymm1 1084 vxorps 32(%rdi,%rcx,4), %ymm0, %ymm2 1085 vxorps 64(%rdi,%rcx,4), %ymm0, %ymm3 1086 vxorps 96(%rdi,%rcx,4), %ymm0, %ymm0 1087 vmovups %ymm1, (%rdi,%rcx,4) 1088 vmovups %ymm2, 32(%rdi,%rcx,4) 1089 vmovups %ymm3, 64(%rdi,%rcx,4) 1090 vmovups %ymm0, 96(%rdi,%rcx,4) 1091 .LBB19_9: 1092 cmpq %rsi, %rax 1093 je .LBB19_12 1094 .LBB19_10: 1095 vbroadcastss .LCPI19_0(%rip), %xmm0 # xmm0 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0] 1096 .LBB19_11: # =>This Inner Loop Header: Depth=1 1097 vmovss (%rdi,%rax,4), %xmm1 # xmm1 = mem[0],zero,zero,zero 1098 vxorps %xmm0, %xmm1, %xmm1 1099 vmovss %xmm1, (%rdi,%rax,4) 1100 addq $1, %rax 1101 cmpq %rax, %rsi 1102 jne .LBB19_11 1103 .LBB19_12: 1104 vzeroupper 1105 retq 1106 .LBB19_4: 1107 xorl %ecx, %ecx 1108 testb $1, %r8b 1109 jne .LBB19_8 1110 jmp .LBB19_9 1111 .LCPI20_0: 1112 .quad 0x3ff0000000000000 # double 1 1113 Inv_F64_V(double*, unsigned long): # @Inv_F64_V(double*, unsigned long) 1114 testq %rsi, %rsi 1115 je .LBB20_12 1116 cmpq $4, %rsi 1117 jae .LBB20_3 1118 xorl %eax, %eax 1119 jmp .LBB20_10 1120 .LBB20_3: 1121 movq %rsi, %rax 1122 andq $-4, %rax 1123 leaq -4(%rax), %rcx 1124 movq %rcx, %r8 1125 shrq $2, %r8 1126 addq $1, %r8 1127 testq %rcx, %rcx 1128 je .LBB20_4 1129 movq %r8, %rcx 1130 andq $-2, %rcx 1131 xorl %edx, %edx 1132 vbroadcastsd .LCPI20_0(%rip), %ymm0 # ymm0 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0] 1133 .LBB20_6: # =>This Inner Loop Header: Depth=1 1134 vdivpd (%rdi,%rdx,8), %ymm0, %ymm1 1135 vmovupd %ymm1, (%rdi,%rdx,8) 1136 vdivpd 32(%rdi,%rdx,8), %ymm0, %ymm1 1137 vmovupd %ymm1, 32(%rdi,%rdx,8) 1138 addq $8, %rdx 1139 addq $-2, %rcx 1140 jne .LBB20_6 1141 testb $1, %r8b 1142 je .LBB20_9 1143 .LBB20_8: 1144 vbroadcastsd .LCPI20_0(%rip), %ymm0 # ymm0 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0] 1145 vdivpd (%rdi,%rdx,8), %ymm0, %ymm0 1146 vmovupd %ymm0, (%rdi,%rdx,8) 1147 .LBB20_9: 1148 cmpq %rsi, %rax 1149 je .LBB20_12 1150 .LBB20_10: 1151 vmovsd .LCPI20_0(%rip), %xmm0 # xmm0 = mem[0],zero 1152 .LBB20_11: # =>This Inner Loop Header: Depth=1 1153 vdivsd (%rdi,%rax,8), %xmm0, %xmm1 1154 vmovsd %xmm1, (%rdi,%rax,8) 1155 addq $1, %rax 1156 cmpq %rax, %rsi 1157 jne .LBB20_11 1158 .LBB20_12: 1159 vzeroupper 1160 retq 1161 .LBB20_4: 1162 xorl %edx, %edx 1163 testb $1, %r8b 1164 jne .LBB20_8 1165 jmp .LBB20_9 1166 .LCPI21_0: 1167 .long 0x3f800000 # float 1 1168 Inv_F32_V(float*, unsigned long): # @Inv_F32_V(float*, unsigned long) 1169 testq %rsi, %rsi 1170 je .LBB21_8 1171 cmpq $32, %rsi 1172 jae .LBB21_3 1173 xorl %eax, %eax 1174 jmp .LBB21_6 1175 .LBB21_3: 1176 movq %rsi, %rax 1177 andq $-32, %rax 1178 xorl %ecx, %ecx 1179 vbroadcastss .LCPI21_0(%rip), %ymm0 # ymm0 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0] 1180 .LBB21_4: # =>This Inner Loop Header: Depth=1 1181 vmovups (%rdi,%rcx,4), %ymm1 1182 vmovups 32(%rdi,%rcx,4), %ymm2 1183 vmovups 64(%rdi,%rcx,4), %ymm3 1184 vrcpps %ymm1, %ymm4 1185 vfmsub213ps %ymm0, %ymm4, %ymm1 # ymm1 = (ymm4 * ymm1) - ymm0 1186 vrcpps %ymm2, %ymm5 1187 vfnmadd132ps %ymm4, %ymm4, %ymm1 # ymm1 = -(ymm1 * ymm4) + ymm4 1188 vmovups 96(%rdi,%rcx,4), %ymm4 1189 vfmsub213ps %ymm0, %ymm5, %ymm2 # ymm2 = (ymm5 * ymm2) - ymm0 1190 vfnmadd132ps %ymm5, %ymm5, %ymm2 # ymm2 = -(ymm2 * ymm5) + ymm5 1191 vrcpps %ymm3, %ymm5 1192 vfmsub213ps %ymm0, %ymm5, %ymm3 # ymm3 = (ymm5 * ymm3) - ymm0 1193 vfnmadd132ps %ymm5, %ymm5, %ymm3 # ymm3 = -(ymm3 * ymm5) + ymm5 1194 vrcpps %ymm4, %ymm5 1195 vfmsub213ps %ymm0, %ymm5, %ymm4 # ymm4 = (ymm5 * ymm4) - ymm0 1196 vfnmadd132ps %ymm5, %ymm5, %ymm4 # ymm4 = -(ymm4 * ymm5) + ymm5 1197 vmovups %ymm1, (%rdi,%rcx,4) 1198 vmovups %ymm2, 32(%rdi,%rcx,4) 1199 vmovups %ymm3, 64(%rdi,%rcx,4) 1200 vmovups %ymm4, 96(%rdi,%rcx,4) 1201 addq $32, %rcx 1202 cmpq %rcx, %rax 1203 jne .LBB21_4 1204 cmpq %rsi, %rax 1205 je .LBB21_8 1206 .LBB21_6: 1207 vmovss .LCPI21_0(%rip), %xmm0 # xmm0 = mem[0],zero,zero,zero 1208 .LBB21_7: # =>This Inner Loop Header: Depth=1 1209 vdivss (%rdi,%rax,4), %xmm0, %xmm1 1210 vmovss %xmm1, (%rdi,%rax,4) 1211 addq $1, %rax 1212 cmpq %rax, %rsi 1213 jne .LBB21_7 1214 .LBB21_8: 1215 vzeroupper 1216 retq