Lines Matching refs:AVX512BW
3 …wn -mattr=+avx512bw | FileCheck %s --check-prefix=AVX --check-prefix=AVX512 --check-prefix=AVX512BW
250 ; AVX512BW-LABEL: test_div7_32i16:
251 ; AVX512BW: # BB#0:
252 ; AVX512BW-NEXT: vpmulhuw {{.*}}(%rip), %zmm0, %zmm1
253 ; AVX512BW-NEXT: vpsubw %zmm1, %zmm0, %zmm0
254 ; AVX512BW-NEXT: vpsrlw $1, %zmm0, %zmm0
255 ; AVX512BW-NEXT: vpaddw %zmm1, %zmm0, %zmm0
256 ; AVX512BW-NEXT: vpsrlw $2, %zmm0, %zmm0
257 ; AVX512BW-NEXT: retq
305 ; AVX512BW-LABEL: test_div7_64i8:
306 ; AVX512BW: # BB#0:
307 ; AVX512BW-NEXT: vextracti32x4 $3, %zmm0, %xmm1
308 ; AVX512BW-NEXT: vpextrb $1, %xmm1, %eax
309 ; AVX512BW-NEXT: imull $37, %eax, %ecx
310 ; AVX512BW-NEXT: shrl $8, %ecx
311 ; AVX512BW-NEXT: subb %cl, %al
312 ; AVX512BW-NEXT: shrb %al
313 ; AVX512BW-NEXT: addb %cl, %al
314 ; AVX512BW-NEXT: shrb $2, %al
315 ; AVX512BW-NEXT: movzbl %al, %eax
316 ; AVX512BW-NEXT: vpextrb $0, %xmm1, %ecx
317 ; AVX512BW-NEXT: imull $37, %ecx, %edx
318 ; AVX512BW-NEXT: shrl $8, %edx
319 ; AVX512BW-NEXT: subb %dl, %cl
320 ; AVX512BW-NEXT: shrb %cl
321 ; AVX512BW-NEXT: addb %dl, %cl
322 ; AVX512BW-NEXT: shrb $2, %cl
323 ; AVX512BW-NEXT: movzbl %cl, %ecx
324 ; AVX512BW-NEXT: vmovd %ecx, %xmm2
325 ; AVX512BW-NEXT: vpinsrb $1, %eax, %xmm2, %xmm2
326 ; AVX512BW-NEXT: vpextrb $2, %xmm1, %eax
327 ; AVX512BW-NEXT: imull $37, %eax, %ecx
328 ; AVX512BW-NEXT: shrl $8, %ecx
329 ; AVX512BW-NEXT: subb %cl, %al
330 ; AVX512BW-NEXT: shrb %al
331 ; AVX512BW-NEXT: addb %cl, %al
332 ; AVX512BW-NEXT: shrb $2, %al
333 ; AVX512BW-NEXT: movzbl %al, %eax
334 ; AVX512BW-NEXT: vpinsrb $2, %eax, %xmm2, %xmm2
335 ; AVX512BW-NEXT: vpextrb $3, %xmm1, %eax
336 ; AVX512BW-NEXT: imull $37, %eax, %ecx
337 ; AVX512BW-NEXT: shrl $8, %ecx
338 ; AVX512BW-NEXT: subb %cl, %al
339 ; AVX512BW-NEXT: shrb %al
340 ; AVX512BW-NEXT: addb %cl, %al
341 ; AVX512BW-NEXT: shrb $2, %al
342 ; AVX512BW-NEXT: movzbl %al, %eax
343 ; AVX512BW-NEXT: vpinsrb $3, %eax, %xmm2, %xmm2
344 ; AVX512BW-NEXT: vpextrb $4, %xmm1, %eax
345 ; AVX512BW-NEXT: imull $37, %eax, %ecx
346 ; AVX512BW-NEXT: shrl $8, %ecx
347 ; AVX512BW-NEXT: subb %cl, %al
348 ; AVX512BW-NEXT: shrb %al
349 ; AVX512BW-NEXT: addb %cl, %al
350 ; AVX512BW-NEXT: shrb $2, %al
351 ; AVX512BW-NEXT: movzbl %al, %eax
352 ; AVX512BW-NEXT: vpinsrb $4, %eax, %xmm2, %xmm2
353 ; AVX512BW-NEXT: vpextrb $5, %xmm1, %eax
354 ; AVX512BW-NEXT: imull $37, %eax, %ecx
355 ; AVX512BW-NEXT: shrl $8, %ecx
356 ; AVX512BW-NEXT: subb %cl, %al
357 ; AVX512BW-NEXT: shrb %al
358 ; AVX512BW-NEXT: addb %cl, %al
359 ; AVX512BW-NEXT: shrb $2, %al
360 ; AVX512BW-NEXT: movzbl %al, %eax
361 ; AVX512BW-NEXT: vpinsrb $5, %eax, %xmm2, %xmm2
362 ; AVX512BW-NEXT: vpextrb $6, %xmm1, %eax
363 ; AVX512BW-NEXT: imull $37, %eax, %ecx
364 ; AVX512BW-NEXT: shrl $8, %ecx
365 ; AVX512BW-NEXT: subb %cl, %al
366 ; AVX512BW-NEXT: shrb %al
367 ; AVX512BW-NEXT: addb %cl, %al
368 ; AVX512BW-NEXT: shrb $2, %al
369 ; AVX512BW-NEXT: movzbl %al, %eax
370 ; AVX512BW-NEXT: vpinsrb $6, %eax, %xmm2, %xmm2
371 ; AVX512BW-NEXT: vpextrb $7, %xmm1, %eax
372 ; AVX512BW-NEXT: imull $37, %eax, %ecx
373 ; AVX512BW-NEXT: shrl $8, %ecx
374 ; AVX512BW-NEXT: subb %cl, %al
375 ; AVX512BW-NEXT: shrb %al
376 ; AVX512BW-NEXT: addb %cl, %al
377 ; AVX512BW-NEXT: shrb $2, %al
378 ; AVX512BW-NEXT: movzbl %al, %eax
379 ; AVX512BW-NEXT: vpinsrb $7, %eax, %xmm2, %xmm2
380 ; AVX512BW-NEXT: vpextrb $8, %xmm1, %eax
381 ; AVX512BW-NEXT: imull $37, %eax, %ecx
382 ; AVX512BW-NEXT: shrl $8, %ecx
383 ; AVX512BW-NEXT: subb %cl, %al
384 ; AVX512BW-NEXT: shrb %al
385 ; AVX512BW-NEXT: addb %cl, %al
386 ; AVX512BW-NEXT: shrb $2, %al
387 ; AVX512BW-NEXT: movzbl %al, %eax
388 ; AVX512BW-NEXT: vpinsrb $8, %eax, %xmm2, %xmm2
389 ; AVX512BW-NEXT: vpextrb $9, %xmm1, %eax
390 ; AVX512BW-NEXT: imull $37, %eax, %ecx
391 ; AVX512BW-NEXT: shrl $8, %ecx
392 ; AVX512BW-NEXT: subb %cl, %al
393 ; AVX512BW-NEXT: shrb %al
394 ; AVX512BW-NEXT: addb %cl, %al
395 ; AVX512BW-NEXT: shrb $2, %al
396 ; AVX512BW-NEXT: movzbl %al, %eax
397 ; AVX512BW-NEXT: vpinsrb $9, %eax, %xmm2, %xmm2
398 ; AVX512BW-NEXT: vpextrb $10, %xmm1, %eax
399 ; AVX512BW-NEXT: imull $37, %eax, %ecx
400 ; AVX512BW-NEXT: shrl $8, %ecx
401 ; AVX512BW-NEXT: subb %cl, %al
402 ; AVX512BW-NEXT: shrb %al
403 ; AVX512BW-NEXT: addb %cl, %al
404 ; AVX512BW-NEXT: shrb $2, %al
405 ; AVX512BW-NEXT: movzbl %al, %eax
406 ; AVX512BW-NEXT: vpinsrb $10, %eax, %xmm2, %xmm2
407 ; AVX512BW-NEXT: vpextrb $11, %xmm1, %eax
408 ; AVX512BW-NEXT: imull $37, %eax, %ecx
409 ; AVX512BW-NEXT: shrl $8, %ecx
410 ; AVX512BW-NEXT: subb %cl, %al
411 ; AVX512BW-NEXT: shrb %al
412 ; AVX512BW-NEXT: addb %cl, %al
413 ; AVX512BW-NEXT: shrb $2, %al
414 ; AVX512BW-NEXT: movzbl %al, %eax
415 ; AVX512BW-NEXT: vpinsrb $11, %eax, %xmm2, %xmm2
416 ; AVX512BW-NEXT: vpextrb $12, %xmm1, %eax
417 ; AVX512BW-NEXT: imull $37, %eax, %ecx
418 ; AVX512BW-NEXT: shrl $8, %ecx
419 ; AVX512BW-NEXT: subb %cl, %al
420 ; AVX512BW-NEXT: shrb %al
421 ; AVX512BW-NEXT: addb %cl, %al
422 ; AVX512BW-NEXT: shrb $2, %al
423 ; AVX512BW-NEXT: movzbl %al, %eax
424 ; AVX512BW-NEXT: vpinsrb $12, %eax, %xmm2, %xmm2
425 ; AVX512BW-NEXT: vpextrb $13, %xmm1, %eax
426 ; AVX512BW-NEXT: imull $37, %eax, %ecx
427 ; AVX512BW-NEXT: shrl $8, %ecx
428 ; AVX512BW-NEXT: subb %cl, %al
429 ; AVX512BW-NEXT: shrb %al
430 ; AVX512BW-NEXT: addb %cl, %al
431 ; AVX512BW-NEXT: shrb $2, %al
432 ; AVX512BW-NEXT: movzbl %al, %eax
433 ; AVX512BW-NEXT: vpinsrb $13, %eax, %xmm2, %xmm2
434 ; AVX512BW-NEXT: vpextrb $14, %xmm1, %eax
435 ; AVX512BW-NEXT: imull $37, %eax, %ecx
436 ; AVX512BW-NEXT: shrl $8, %ecx
437 ; AVX512BW-NEXT: subb %cl, %al
438 ; AVX512BW-NEXT: shrb %al
439 ; AVX512BW-NEXT: addb %cl, %al
440 ; AVX512BW-NEXT: shrb $2, %al
441 ; AVX512BW-NEXT: movzbl %al, %eax
442 ; AVX512BW-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
443 ; AVX512BW-NEXT: vpextrb $15, %xmm1, %eax
444 ; AVX512BW-NEXT: imull $37, %eax, %ecx
445 ; AVX512BW-NEXT: shrl $8, %ecx
446 ; AVX512BW-NEXT: subb %cl, %al
447 ; AVX512BW-NEXT: shrb %al
448 ; AVX512BW-NEXT: addb %cl, %al
449 ; AVX512BW-NEXT: shrb $2, %al
450 ; AVX512BW-NEXT: movzbl %al, %eax
451 ; AVX512BW-NEXT: vpinsrb $15, %eax, %xmm2, %xmm1
452 ; AVX512BW-NEXT: vextracti32x4 $2, %zmm0, %xmm2
453 ; AVX512BW-NEXT: vpextrb $1, %xmm2, %eax
454 ; AVX512BW-NEXT: imull $37, %eax, %ecx
455 ; AVX512BW-NEXT: shrl $8, %ecx
456 ; AVX512BW-NEXT: subb %cl, %al
457 ; AVX512BW-NEXT: shrb %al
458 ; AVX512BW-NEXT: addb %cl, %al
459 ; AVX512BW-NEXT: shrb $2, %al
460 ; AVX512BW-NEXT: movzbl %al, %eax
461 ; AVX512BW-NEXT: vpextrb $0, %xmm2, %ecx
462 ; AVX512BW-NEXT: imull $37, %ecx, %edx
463 ; AVX512BW-NEXT: shrl $8, %edx
464 ; AVX512BW-NEXT: subb %dl, %cl
465 ; AVX512BW-NEXT: shrb %cl
466 ; AVX512BW-NEXT: addb %dl, %cl
467 ; AVX512BW-NEXT: shrb $2, %cl
468 ; AVX512BW-NEXT: movzbl %cl, %ecx
469 ; AVX512BW-NEXT: vmovd %ecx, %xmm3
470 ; AVX512BW-NEXT: vpinsrb $1, %eax, %xmm3, %xmm3
471 ; AVX512BW-NEXT: vpextrb $2, %xmm2, %eax
472 ; AVX512BW-NEXT: imull $37, %eax, %ecx
473 ; AVX512BW-NEXT: shrl $8, %ecx
474 ; AVX512BW-NEXT: subb %cl, %al
475 ; AVX512BW-NEXT: shrb %al
476 ; AVX512BW-NEXT: addb %cl, %al
477 ; AVX512BW-NEXT: shrb $2, %al
478 ; AVX512BW-NEXT: movzbl %al, %eax
479 ; AVX512BW-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3
480 ; AVX512BW-NEXT: vpextrb $3, %xmm2, %eax
481 ; AVX512BW-NEXT: imull $37, %eax, %ecx
482 ; AVX512BW-NEXT: shrl $8, %ecx
483 ; AVX512BW-NEXT: subb %cl, %al
484 ; AVX512BW-NEXT: shrb %al
485 ; AVX512BW-NEXT: addb %cl, %al
486 ; AVX512BW-NEXT: shrb $2, %al
487 ; AVX512BW-NEXT: movzbl %al, %eax
488 ; AVX512BW-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3
489 ; AVX512BW-NEXT: vpextrb $4, %xmm2, %eax
490 ; AVX512BW-NEXT: imull $37, %eax, %ecx
491 ; AVX512BW-NEXT: shrl $8, %ecx
492 ; AVX512BW-NEXT: subb %cl, %al
493 ; AVX512BW-NEXT: shrb %al
494 ; AVX512BW-NEXT: addb %cl, %al
495 ; AVX512BW-NEXT: shrb $2, %al
496 ; AVX512BW-NEXT: movzbl %al, %eax
497 ; AVX512BW-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3
498 ; AVX512BW-NEXT: vpextrb $5, %xmm2, %eax
499 ; AVX512BW-NEXT: imull $37, %eax, %ecx
500 ; AVX512BW-NEXT: shrl $8, %ecx
501 ; AVX512BW-NEXT: subb %cl, %al
502 ; AVX512BW-NEXT: shrb %al
503 ; AVX512BW-NEXT: addb %cl, %al
504 ; AVX512BW-NEXT: shrb $2, %al
505 ; AVX512BW-NEXT: movzbl %al, %eax
506 ; AVX512BW-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3
507 ; AVX512BW-NEXT: vpextrb $6, %xmm2, %eax
508 ; AVX512BW-NEXT: imull $37, %eax, %ecx
509 ; AVX512BW-NEXT: shrl $8, %ecx
510 ; AVX512BW-NEXT: subb %cl, %al
511 ; AVX512BW-NEXT: shrb %al
512 ; AVX512BW-NEXT: addb %cl, %al
513 ; AVX512BW-NEXT: shrb $2, %al
514 ; AVX512BW-NEXT: movzbl %al, %eax
515 ; AVX512BW-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3
516 ; AVX512BW-NEXT: vpextrb $7, %xmm2, %eax
517 ; AVX512BW-NEXT: imull $37, %eax, %ecx
518 ; AVX512BW-NEXT: shrl $8, %ecx
519 ; AVX512BW-NEXT: subb %cl, %al
520 ; AVX512BW-NEXT: shrb %al
521 ; AVX512BW-NEXT: addb %cl, %al
522 ; AVX512BW-NEXT: shrb $2, %al
523 ; AVX512BW-NEXT: movzbl %al, %eax
524 ; AVX512BW-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3
525 ; AVX512BW-NEXT: vpextrb $8, %xmm2, %eax
526 ; AVX512BW-NEXT: imull $37, %eax, %ecx
527 ; AVX512BW-NEXT: shrl $8, %ecx
528 ; AVX512BW-NEXT: subb %cl, %al
529 ; AVX512BW-NEXT: shrb %al
530 ; AVX512BW-NEXT: addb %cl, %al
531 ; AVX512BW-NEXT: shrb $2, %al
532 ; AVX512BW-NEXT: movzbl %al, %eax
533 ; AVX512BW-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3
534 ; AVX512BW-NEXT: vpextrb $9, %xmm2, %eax
535 ; AVX512BW-NEXT: imull $37, %eax, %ecx
536 ; AVX512BW-NEXT: shrl $8, %ecx
537 ; AVX512BW-NEXT: subb %cl, %al
538 ; AVX512BW-NEXT: shrb %al
539 ; AVX512BW-NEXT: addb %cl, %al
540 ; AVX512BW-NEXT: shrb $2, %al
541 ; AVX512BW-NEXT: movzbl %al, %eax
542 ; AVX512BW-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3
543 ; AVX512BW-NEXT: vpextrb $10, %xmm2, %eax
544 ; AVX512BW-NEXT: imull $37, %eax, %ecx
545 ; AVX512BW-NEXT: shrl $8, %ecx
546 ; AVX512BW-NEXT: subb %cl, %al
547 ; AVX512BW-NEXT: shrb %al
548 ; AVX512BW-NEXT: addb %cl, %al
549 ; AVX512BW-NEXT: shrb $2, %al
550 ; AVX512BW-NEXT: movzbl %al, %eax
551 ; AVX512BW-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3
552 ; AVX512BW-NEXT: vpextrb $11, %xmm2, %eax
553 ; AVX512BW-NEXT: imull $37, %eax, %ecx
554 ; AVX512BW-NEXT: shrl $8, %ecx
555 ; AVX512BW-NEXT: subb %cl, %al
556 ; AVX512BW-NEXT: shrb %al
557 ; AVX512BW-NEXT: addb %cl, %al
558 ; AVX512BW-NEXT: shrb $2, %al
559 ; AVX512BW-NEXT: movzbl %al, %eax
560 ; AVX512BW-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3
561 ; AVX512BW-NEXT: vpextrb $12, %xmm2, %eax
562 ; AVX512BW-NEXT: imull $37, %eax, %ecx
563 ; AVX512BW-NEXT: shrl $8, %ecx
564 ; AVX512BW-NEXT: subb %cl, %al
565 ; AVX512BW-NEXT: shrb %al
566 ; AVX512BW-NEXT: addb %cl, %al
567 ; AVX512BW-NEXT: shrb $2, %al
568 ; AVX512BW-NEXT: movzbl %al, %eax
569 ; AVX512BW-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3
570 ; AVX512BW-NEXT: vpextrb $13, %xmm2, %eax
571 ; AVX512BW-NEXT: imull $37, %eax, %ecx
572 ; AVX512BW-NEXT: shrl $8, %ecx
573 ; AVX512BW-NEXT: subb %cl, %al
574 ; AVX512BW-NEXT: shrb %al
575 ; AVX512BW-NEXT: addb %cl, %al
576 ; AVX512BW-NEXT: shrb $2, %al
577 ; AVX512BW-NEXT: movzbl %al, %eax
578 ; AVX512BW-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3
579 ; AVX512BW-NEXT: vpextrb $14, %xmm2, %eax
580 ; AVX512BW-NEXT: imull $37, %eax, %ecx
581 ; AVX512BW-NEXT: shrl $8, %ecx
582 ; AVX512BW-NEXT: subb %cl, %al
583 ; AVX512BW-NEXT: shrb %al
584 ; AVX512BW-NEXT: addb %cl, %al
585 ; AVX512BW-NEXT: shrb $2, %al
586 ; AVX512BW-NEXT: movzbl %al, %eax
587 ; AVX512BW-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
588 ; AVX512BW-NEXT: vpextrb $15, %xmm2, %eax
589 ; AVX512BW-NEXT: imull $37, %eax, %ecx
590 ; AVX512BW-NEXT: shrl $8, %ecx
591 ; AVX512BW-NEXT: subb %cl, %al
592 ; AVX512BW-NEXT: shrb %al
593 ; AVX512BW-NEXT: addb %cl, %al
594 ; AVX512BW-NEXT: shrb $2, %al
595 ; AVX512BW-NEXT: movzbl %al, %eax
596 ; AVX512BW-NEXT: vpinsrb $15, %eax, %xmm3, %xmm2
597 ; AVX512BW-NEXT: vinserti128 $1, %xmm1, %ymm2, %ymm1
598 ; AVX512BW-NEXT: vextracti32x4 $1, %zmm0, %xmm2
599 ; AVX512BW-NEXT: vpextrb $1, %xmm2, %eax
600 ; AVX512BW-NEXT: imull $37, %eax, %ecx
601 ; AVX512BW-NEXT: shrl $8, %ecx
602 ; AVX512BW-NEXT: subb %cl, %al
603 ; AVX512BW-NEXT: shrb %al
604 ; AVX512BW-NEXT: addb %cl, %al
605 ; AVX512BW-NEXT: shrb $2, %al
606 ; AVX512BW-NEXT: movzbl %al, %eax
607 ; AVX512BW-NEXT: vpextrb $0, %xmm2, %ecx
608 ; AVX512BW-NEXT: imull $37, %ecx, %edx
609 ; AVX512BW-NEXT: shrl $8, %edx
610 ; AVX512BW-NEXT: subb %dl, %cl
611 ; AVX512BW-NEXT: shrb %cl
612 ; AVX512BW-NEXT: addb %dl, %cl
613 ; AVX512BW-NEXT: shrb $2, %cl
614 ; AVX512BW-NEXT: movzbl %cl, %ecx
615 ; AVX512BW-NEXT: vmovd %ecx, %xmm3
616 ; AVX512BW-NEXT: vpinsrb $1, %eax, %xmm3, %xmm3
617 ; AVX512BW-NEXT: vpextrb $2, %xmm2, %eax
618 ; AVX512BW-NEXT: imull $37, %eax, %ecx
619 ; AVX512BW-NEXT: shrl $8, %ecx
620 ; AVX512BW-NEXT: subb %cl, %al
621 ; AVX512BW-NEXT: shrb %al
622 ; AVX512BW-NEXT: addb %cl, %al
623 ; AVX512BW-NEXT: shrb $2, %al
624 ; AVX512BW-NEXT: movzbl %al, %eax
625 ; AVX512BW-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3
626 ; AVX512BW-NEXT: vpextrb $3, %xmm2, %eax
627 ; AVX512BW-NEXT: imull $37, %eax, %ecx
628 ; AVX512BW-NEXT: shrl $8, %ecx
629 ; AVX512BW-NEXT: subb %cl, %al
630 ; AVX512BW-NEXT: shrb %al
631 ; AVX512BW-NEXT: addb %cl, %al
632 ; AVX512BW-NEXT: shrb $2, %al
633 ; AVX512BW-NEXT: movzbl %al, %eax
634 ; AVX512BW-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3
635 ; AVX512BW-NEXT: vpextrb $4, %xmm2, %eax
636 ; AVX512BW-NEXT: imull $37, %eax, %ecx
637 ; AVX512BW-NEXT: shrl $8, %ecx
638 ; AVX512BW-NEXT: subb %cl, %al
639 ; AVX512BW-NEXT: shrb %al
640 ; AVX512BW-NEXT: addb %cl, %al
641 ; AVX512BW-NEXT: shrb $2, %al
642 ; AVX512BW-NEXT: movzbl %al, %eax
643 ; AVX512BW-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3
644 ; AVX512BW-NEXT: vpextrb $5, %xmm2, %eax
645 ; AVX512BW-NEXT: imull $37, %eax, %ecx
646 ; AVX512BW-NEXT: shrl $8, %ecx
647 ; AVX512BW-NEXT: subb %cl, %al
648 ; AVX512BW-NEXT: shrb %al
649 ; AVX512BW-NEXT: addb %cl, %al
650 ; AVX512BW-NEXT: shrb $2, %al
651 ; AVX512BW-NEXT: movzbl %al, %eax
652 ; AVX512BW-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3
653 ; AVX512BW-NEXT: vpextrb $6, %xmm2, %eax
654 ; AVX512BW-NEXT: imull $37, %eax, %ecx
655 ; AVX512BW-NEXT: shrl $8, %ecx
656 ; AVX512BW-NEXT: subb %cl, %al
657 ; AVX512BW-NEXT: shrb %al
658 ; AVX512BW-NEXT: addb %cl, %al
659 ; AVX512BW-NEXT: shrb $2, %al
660 ; AVX512BW-NEXT: movzbl %al, %eax
661 ; AVX512BW-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3
662 ; AVX512BW-NEXT: vpextrb $7, %xmm2, %eax
663 ; AVX512BW-NEXT: imull $37, %eax, %ecx
664 ; AVX512BW-NEXT: shrl $8, %ecx
665 ; AVX512BW-NEXT: subb %cl, %al
666 ; AVX512BW-NEXT: shrb %al
667 ; AVX512BW-NEXT: addb %cl, %al
668 ; AVX512BW-NEXT: shrb $2, %al
669 ; AVX512BW-NEXT: movzbl %al, %eax
670 ; AVX512BW-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3
671 ; AVX512BW-NEXT: vpextrb $8, %xmm2, %eax
672 ; AVX512BW-NEXT: imull $37, %eax, %ecx
673 ; AVX512BW-NEXT: shrl $8, %ecx
674 ; AVX512BW-NEXT: subb %cl, %al
675 ; AVX512BW-NEXT: shrb %al
676 ; AVX512BW-NEXT: addb %cl, %al
677 ; AVX512BW-NEXT: shrb $2, %al
678 ; AVX512BW-NEXT: movzbl %al, %eax
679 ; AVX512BW-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3
680 ; AVX512BW-NEXT: vpextrb $9, %xmm2, %eax
681 ; AVX512BW-NEXT: imull $37, %eax, %ecx
682 ; AVX512BW-NEXT: shrl $8, %ecx
683 ; AVX512BW-NEXT: subb %cl, %al
684 ; AVX512BW-NEXT: shrb %al
685 ; AVX512BW-NEXT: addb %cl, %al
686 ; AVX512BW-NEXT: shrb $2, %al
687 ; AVX512BW-NEXT: movzbl %al, %eax
688 ; AVX512BW-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3
689 ; AVX512BW-NEXT: vpextrb $10, %xmm2, %eax
690 ; AVX512BW-NEXT: imull $37, %eax, %ecx
691 ; AVX512BW-NEXT: shrl $8, %ecx
692 ; AVX512BW-NEXT: subb %cl, %al
693 ; AVX512BW-NEXT: shrb %al
694 ; AVX512BW-NEXT: addb %cl, %al
695 ; AVX512BW-NEXT: shrb $2, %al
696 ; AVX512BW-NEXT: movzbl %al, %eax
697 ; AVX512BW-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3
698 ; AVX512BW-NEXT: vpextrb $11, %xmm2, %eax
699 ; AVX512BW-NEXT: imull $37, %eax, %ecx
700 ; AVX512BW-NEXT: shrl $8, %ecx
701 ; AVX512BW-NEXT: subb %cl, %al
702 ; AVX512BW-NEXT: shrb %al
703 ; AVX512BW-NEXT: addb %cl, %al
704 ; AVX512BW-NEXT: shrb $2, %al
705 ; AVX512BW-NEXT: movzbl %al, %eax
706 ; AVX512BW-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3
707 ; AVX512BW-NEXT: vpextrb $12, %xmm2, %eax
708 ; AVX512BW-NEXT: imull $37, %eax, %ecx
709 ; AVX512BW-NEXT: shrl $8, %ecx
710 ; AVX512BW-NEXT: subb %cl, %al
711 ; AVX512BW-NEXT: shrb %al
712 ; AVX512BW-NEXT: addb %cl, %al
713 ; AVX512BW-NEXT: shrb $2, %al
714 ; AVX512BW-NEXT: movzbl %al, %eax
715 ; AVX512BW-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3
716 ; AVX512BW-NEXT: vpextrb $13, %xmm2, %eax
717 ; AVX512BW-NEXT: imull $37, %eax, %ecx
718 ; AVX512BW-NEXT: shrl $8, %ecx
719 ; AVX512BW-NEXT: subb %cl, %al
720 ; AVX512BW-NEXT: shrb %al
721 ; AVX512BW-NEXT: addb %cl, %al
722 ; AVX512BW-NEXT: shrb $2, %al
723 ; AVX512BW-NEXT: movzbl %al, %eax
724 ; AVX512BW-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3
725 ; AVX512BW-NEXT: vpextrb $14, %xmm2, %eax
726 ; AVX512BW-NEXT: imull $37, %eax, %ecx
727 ; AVX512BW-NEXT: shrl $8, %ecx
728 ; AVX512BW-NEXT: subb %cl, %al
729 ; AVX512BW-NEXT: shrb %al
730 ; AVX512BW-NEXT: addb %cl, %al
731 ; AVX512BW-NEXT: shrb $2, %al
732 ; AVX512BW-NEXT: movzbl %al, %eax
733 ; AVX512BW-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
734 ; AVX512BW-NEXT: vpextrb $15, %xmm2, %eax
735 ; AVX512BW-NEXT: imull $37, %eax, %ecx
736 ; AVX512BW-NEXT: shrl $8, %ecx
737 ; AVX512BW-NEXT: subb %cl, %al
738 ; AVX512BW-NEXT: shrb %al
739 ; AVX512BW-NEXT: addb %cl, %al
740 ; AVX512BW-NEXT: shrb $2, %al
741 ; AVX512BW-NEXT: movzbl %al, %eax
742 ; AVX512BW-NEXT: vpinsrb $15, %eax, %xmm3, %xmm2
743 ; AVX512BW-NEXT: vpextrb $1, %xmm0, %eax
744 ; AVX512BW-NEXT: imull $37, %eax, %ecx
745 ; AVX512BW-NEXT: shrl $8, %ecx
746 ; AVX512BW-NEXT: subb %cl, %al
747 ; AVX512BW-NEXT: shrb %al
748 ; AVX512BW-NEXT: addb %cl, %al
749 ; AVX512BW-NEXT: shrb $2, %al
750 ; AVX512BW-NEXT: movzbl %al, %eax
751 ; AVX512BW-NEXT: vpextrb $0, %xmm0, %ecx
752 ; AVX512BW-NEXT: imull $37, %ecx, %edx
753 ; AVX512BW-NEXT: shrl $8, %edx
754 ; AVX512BW-NEXT: subb %dl, %cl
755 ; AVX512BW-NEXT: shrb %cl
756 ; AVX512BW-NEXT: addb %dl, %cl
757 ; AVX512BW-NEXT: shrb $2, %cl
758 ; AVX512BW-NEXT: movzbl %cl, %ecx
759 ; AVX512BW-NEXT: vmovd %ecx, %xmm3
760 ; AVX512BW-NEXT: vpinsrb $1, %eax, %xmm3, %xmm3
761 ; AVX512BW-NEXT: vpextrb $2, %xmm0, %eax
762 ; AVX512BW-NEXT: imull $37, %eax, %ecx
763 ; AVX512BW-NEXT: shrl $8, %ecx
764 ; AVX512BW-NEXT: subb %cl, %al
765 ; AVX512BW-NEXT: shrb %al
766 ; AVX512BW-NEXT: addb %cl, %al
767 ; AVX512BW-NEXT: shrb $2, %al
768 ; AVX512BW-NEXT: movzbl %al, %eax
769 ; AVX512BW-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3
770 ; AVX512BW-NEXT: vpextrb $3, %xmm0, %eax
771 ; AVX512BW-NEXT: imull $37, %eax, %ecx
772 ; AVX512BW-NEXT: shrl $8, %ecx
773 ; AVX512BW-NEXT: subb %cl, %al
774 ; AVX512BW-NEXT: shrb %al
775 ; AVX512BW-NEXT: addb %cl, %al
776 ; AVX512BW-NEXT: shrb $2, %al
777 ; AVX512BW-NEXT: movzbl %al, %eax
778 ; AVX512BW-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3
779 ; AVX512BW-NEXT: vpextrb $4, %xmm0, %eax
780 ; AVX512BW-NEXT: imull $37, %eax, %ecx
781 ; AVX512BW-NEXT: shrl $8, %ecx
782 ; AVX512BW-NEXT: subb %cl, %al
783 ; AVX512BW-NEXT: shrb %al
784 ; AVX512BW-NEXT: addb %cl, %al
785 ; AVX512BW-NEXT: shrb $2, %al
786 ; AVX512BW-NEXT: movzbl %al, %eax
787 ; AVX512BW-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3
788 ; AVX512BW-NEXT: vpextrb $5, %xmm0, %eax
789 ; AVX512BW-NEXT: imull $37, %eax, %ecx
790 ; AVX512BW-NEXT: shrl $8, %ecx
791 ; AVX512BW-NEXT: subb %cl, %al
792 ; AVX512BW-NEXT: shrb %al
793 ; AVX512BW-NEXT: addb %cl, %al
794 ; AVX512BW-NEXT: shrb $2, %al
795 ; AVX512BW-NEXT: movzbl %al, %eax
796 ; AVX512BW-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3
797 ; AVX512BW-NEXT: vpextrb $6, %xmm0, %eax
798 ; AVX512BW-NEXT: imull $37, %eax, %ecx
799 ; AVX512BW-NEXT: shrl $8, %ecx
800 ; AVX512BW-NEXT: subb %cl, %al
801 ; AVX512BW-NEXT: shrb %al
802 ; AVX512BW-NEXT: addb %cl, %al
803 ; AVX512BW-NEXT: shrb $2, %al
804 ; AVX512BW-NEXT: movzbl %al, %eax
805 ; AVX512BW-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3
806 ; AVX512BW-NEXT: vpextrb $7, %xmm0, %eax
807 ; AVX512BW-NEXT: imull $37, %eax, %ecx
808 ; AVX512BW-NEXT: shrl $8, %ecx
809 ; AVX512BW-NEXT: subb %cl, %al
810 ; AVX512BW-NEXT: shrb %al
811 ; AVX512BW-NEXT: addb %cl, %al
812 ; AVX512BW-NEXT: shrb $2, %al
813 ; AVX512BW-NEXT: movzbl %al, %eax
814 ; AVX512BW-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3
815 ; AVX512BW-NEXT: vpextrb $8, %xmm0, %eax
816 ; AVX512BW-NEXT: imull $37, %eax, %ecx
817 ; AVX512BW-NEXT: shrl $8, %ecx
818 ; AVX512BW-NEXT: subb %cl, %al
819 ; AVX512BW-NEXT: shrb %al
820 ; AVX512BW-NEXT: addb %cl, %al
821 ; AVX512BW-NEXT: shrb $2, %al
822 ; AVX512BW-NEXT: movzbl %al, %eax
823 ; AVX512BW-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3
824 ; AVX512BW-NEXT: vpextrb $9, %xmm0, %eax
825 ; AVX512BW-NEXT: imull $37, %eax, %ecx
826 ; AVX512BW-NEXT: shrl $8, %ecx
827 ; AVX512BW-NEXT: subb %cl, %al
828 ; AVX512BW-NEXT: shrb %al
829 ; AVX512BW-NEXT: addb %cl, %al
830 ; AVX512BW-NEXT: shrb $2, %al
831 ; AVX512BW-NEXT: movzbl %al, %eax
832 ; AVX512BW-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3
833 ; AVX512BW-NEXT: vpextrb $10, %xmm0, %eax
834 ; AVX512BW-NEXT: imull $37, %eax, %ecx
835 ; AVX512BW-NEXT: shrl $8, %ecx
836 ; AVX512BW-NEXT: subb %cl, %al
837 ; AVX512BW-NEXT: shrb %al
838 ; AVX512BW-NEXT: addb %cl, %al
839 ; AVX512BW-NEXT: shrb $2, %al
840 ; AVX512BW-NEXT: movzbl %al, %eax
841 ; AVX512BW-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3
842 ; AVX512BW-NEXT: vpextrb $11, %xmm0, %eax
843 ; AVX512BW-NEXT: imull $37, %eax, %ecx
844 ; AVX512BW-NEXT: shrl $8, %ecx
845 ; AVX512BW-NEXT: subb %cl, %al
846 ; AVX512BW-NEXT: shrb %al
847 ; AVX512BW-NEXT: addb %cl, %al
848 ; AVX512BW-NEXT: shrb $2, %al
849 ; AVX512BW-NEXT: movzbl %al, %eax
850 ; AVX512BW-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3
851 ; AVX512BW-NEXT: vpextrb $12, %xmm0, %eax
852 ; AVX512BW-NEXT: imull $37, %eax, %ecx
853 ; AVX512BW-NEXT: shrl $8, %ecx
854 ; AVX512BW-NEXT: subb %cl, %al
855 ; AVX512BW-NEXT: shrb %al
856 ; AVX512BW-NEXT: addb %cl, %al
857 ; AVX512BW-NEXT: shrb $2, %al
858 ; AVX512BW-NEXT: movzbl %al, %eax
859 ; AVX512BW-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3
860 ; AVX512BW-NEXT: vpextrb $13, %xmm0, %eax
861 ; AVX512BW-NEXT: imull $37, %eax, %ecx
862 ; AVX512BW-NEXT: shrl $8, %ecx
863 ; AVX512BW-NEXT: subb %cl, %al
864 ; AVX512BW-NEXT: shrb %al
865 ; AVX512BW-NEXT: addb %cl, %al
866 ; AVX512BW-NEXT: shrb $2, %al
867 ; AVX512BW-NEXT: movzbl %al, %eax
868 ; AVX512BW-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3
869 ; AVX512BW-NEXT: vpextrb $14, %xmm0, %eax
870 ; AVX512BW-NEXT: imull $37, %eax, %ecx
871 ; AVX512BW-NEXT: shrl $8, %ecx
872 ; AVX512BW-NEXT: subb %cl, %al
873 ; AVX512BW-NEXT: shrb %al
874 ; AVX512BW-NEXT: addb %cl, %al
875 ; AVX512BW-NEXT: shrb $2, %al
876 ; AVX512BW-NEXT: movzbl %al, %eax
877 ; AVX512BW-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
878 ; AVX512BW-NEXT: vpextrb $15, %xmm0, %eax
879 ; AVX512BW-NEXT: imull $37, %eax, %ecx
880 ; AVX512BW-NEXT: shrl $8, %ecx
881 ; AVX512BW-NEXT: subb %cl, %al
882 ; AVX512BW-NEXT: shrb %al
883 ; AVX512BW-NEXT: addb %cl, %al
884 ; AVX512BW-NEXT: shrb $2, %al
885 ; AVX512BW-NEXT: movzbl %al, %eax
886 ; AVX512BW-NEXT: vpinsrb $15, %eax, %xmm3, %xmm0
887 ; AVX512BW-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm0
888 ; AVX512BW-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
889 ; AVX512BW-NEXT: retq
1240 ; AVX512BW-LABEL: test_rem7_32i16:
1241 ; AVX512BW: # BB#0:
1242 ; AVX512BW-NEXT: vpmulhuw {{.*}}(%rip), %zmm0, %zmm1
1243 ; AVX512BW-NEXT: vpsubw %zmm1, %zmm0, %zmm2
1244 ; AVX512BW-NEXT: vpsrlw $1, %zmm2, %zmm2
1245 ; AVX512BW-NEXT: vpaddw %zmm1, %zmm2, %zmm1
1246 ; AVX512BW-NEXT: vpsrlw $2, %zmm1, %zmm1
1247 ; AVX512BW-NEXT: vpmullw {{.*}}(%rip), %zmm1, %zmm1
1248 ; AVX512BW-NEXT: vpsubw %zmm1, %zmm0, %zmm0
1249 ; AVX512BW-NEXT: retq
1320 ; AVX512BW-LABEL: test_rem7_64i8:
1321 ; AVX512BW: # BB#0:
1322 ; AVX512BW-NEXT: vextracti32x4 $3, %zmm0, %xmm1
1323 ; AVX512BW-NEXT: vpextrb $1, %xmm1, %edx
1324 ; AVX512BW-NEXT: imull $37, %edx, %ecx
1325 ; AVX512BW-NEXT: shrl $8, %ecx
1326 ; AVX512BW-NEXT: movl %edx, %eax
1327 ; AVX512BW-NEXT: subb %cl, %al
1328 ; AVX512BW-NEXT: shrb %al
1329 ; AVX512BW-NEXT: addb %cl, %al
1330 ; AVX512BW-NEXT: shrb $2, %al
1331 ; AVX512BW-NEXT: movb $7, %cl
1332 ; AVX512BW-NEXT: mulb %cl
1333 ; AVX512BW-NEXT: subb %al, %dl
1334 ; AVX512BW-NEXT: movzbl %dl, %edx
1335 ; AVX512BW-NEXT: vpextrb $0, %xmm1, %esi
1336 ; AVX512BW-NEXT: imull $37, %esi, %edi
1337 ; AVX512BW-NEXT: shrl $8, %edi
1338 ; AVX512BW-NEXT: movl %esi, %eax
1339 ; AVX512BW-NEXT: subb %dil, %al
1340 ; AVX512BW-NEXT: shrb %al
1341 ; AVX512BW-NEXT: addb %dil, %al
1342 ; AVX512BW-NEXT: shrb $2, %al
1343 ; AVX512BW-NEXT: mulb %cl
1344 ; AVX512BW-NEXT: subb %al, %sil
1345 ; AVX512BW-NEXT: movzbl %sil, %eax
1346 ; AVX512BW-NEXT: vmovd %eax, %xmm2
1347 ; AVX512BW-NEXT: vpinsrb $1, %edx, %xmm2, %xmm2
1348 ; AVX512BW-NEXT: vpextrb $2, %xmm1, %edx
1349 ; AVX512BW-NEXT: imull $37, %edx, %esi
1350 ; AVX512BW-NEXT: shrl $8, %esi
1351 ; AVX512BW-NEXT: movl %edx, %eax
1352 ; AVX512BW-NEXT: subb %sil, %al
1353 ; AVX512BW-NEXT: shrb %al
1354 ; AVX512BW-NEXT: addb %sil, %al
1355 ; AVX512BW-NEXT: shrb $2, %al
1356 ; AVX512BW-NEXT: mulb %cl
1357 ; AVX512BW-NEXT: subb %al, %dl
1358 ; AVX512BW-NEXT: movzbl %dl, %eax
1359 ; AVX512BW-NEXT: vpinsrb $2, %eax, %xmm2, %xmm2
1360 ; AVX512BW-NEXT: vpextrb $3, %xmm1, %edx
1361 ; AVX512BW-NEXT: imull $37, %edx, %esi
1362 ; AVX512BW-NEXT: shrl $8, %esi
1363 ; AVX512BW-NEXT: movl %edx, %eax
1364 ; AVX512BW-NEXT: subb %sil, %al
1365 ; AVX512BW-NEXT: shrb %al
1366 ; AVX512BW-NEXT: addb %sil, %al
1367 ; AVX512BW-NEXT: shrb $2, %al
1368 ; AVX512BW-NEXT: mulb %cl
1369 ; AVX512BW-NEXT: subb %al, %dl
1370 ; AVX512BW-NEXT: movzbl %dl, %eax
1371 ; AVX512BW-NEXT: vpinsrb $3, %eax, %xmm2, %xmm2
1372 ; AVX512BW-NEXT: vpextrb $4, %xmm1, %edx
1373 ; AVX512BW-NEXT: imull $37, %edx, %esi
1374 ; AVX512BW-NEXT: shrl $8, %esi
1375 ; AVX512BW-NEXT: movl %edx, %eax
1376 ; AVX512BW-NEXT: subb %sil, %al
1377 ; AVX512BW-NEXT: shrb %al
1378 ; AVX512BW-NEXT: addb %sil, %al
1379 ; AVX512BW-NEXT: shrb $2, %al
1380 ; AVX512BW-NEXT: mulb %cl
1381 ; AVX512BW-NEXT: subb %al, %dl
1382 ; AVX512BW-NEXT: movzbl %dl, %eax
1383 ; AVX512BW-NEXT: vpinsrb $4, %eax, %xmm2, %xmm2
1384 ; AVX512BW-NEXT: vpextrb $5, %xmm1, %edx
1385 ; AVX512BW-NEXT: imull $37, %edx, %esi
1386 ; AVX512BW-NEXT: shrl $8, %esi
1387 ; AVX512BW-NEXT: movl %edx, %eax
1388 ; AVX512BW-NEXT: subb %sil, %al
1389 ; AVX512BW-NEXT: shrb %al
1390 ; AVX512BW-NEXT: addb %sil, %al
1391 ; AVX512BW-NEXT: shrb $2, %al
1392 ; AVX512BW-NEXT: mulb %cl
1393 ; AVX512BW-NEXT: subb %al, %dl
1394 ; AVX512BW-NEXT: movzbl %dl, %eax
1395 ; AVX512BW-NEXT: vpinsrb $5, %eax, %xmm2, %xmm2
1396 ; AVX512BW-NEXT: vpextrb $6, %xmm1, %edx
1397 ; AVX512BW-NEXT: imull $37, %edx, %esi
1398 ; AVX512BW-NEXT: shrl $8, %esi
1399 ; AVX512BW-NEXT: movl %edx, %eax
1400 ; AVX512BW-NEXT: subb %sil, %al
1401 ; AVX512BW-NEXT: shrb %al
1402 ; AVX512BW-NEXT: addb %sil, %al
1403 ; AVX512BW-NEXT: shrb $2, %al
1404 ; AVX512BW-NEXT: mulb %cl
1405 ; AVX512BW-NEXT: subb %al, %dl
1406 ; AVX512BW-NEXT: movzbl %dl, %eax
1407 ; AVX512BW-NEXT: vpinsrb $6, %eax, %xmm2, %xmm2
1408 ; AVX512BW-NEXT: vpextrb $7, %xmm1, %edx
1409 ; AVX512BW-NEXT: imull $37, %edx, %esi
1410 ; AVX512BW-NEXT: shrl $8, %esi
1411 ; AVX512BW-NEXT: movl %edx, %eax
1412 ; AVX512BW-NEXT: subb %sil, %al
1413 ; AVX512BW-NEXT: shrb %al
1414 ; AVX512BW-NEXT: addb %sil, %al
1415 ; AVX512BW-NEXT: shrb $2, %al
1416 ; AVX512BW-NEXT: mulb %cl
1417 ; AVX512BW-NEXT: subb %al, %dl
1418 ; AVX512BW-NEXT: movzbl %dl, %eax
1419 ; AVX512BW-NEXT: vpinsrb $7, %eax, %xmm2, %xmm2
1420 ; AVX512BW-NEXT: vpextrb $8, %xmm1, %edx
1421 ; AVX512BW-NEXT: imull $37, %edx, %esi
1422 ; AVX512BW-NEXT: shrl $8, %esi
1423 ; AVX512BW-NEXT: movl %edx, %eax
1424 ; AVX512BW-NEXT: subb %sil, %al
1425 ; AVX512BW-NEXT: shrb %al
1426 ; AVX512BW-NEXT: addb %sil, %al
1427 ; AVX512BW-NEXT: shrb $2, %al
1428 ; AVX512BW-NEXT: mulb %cl
1429 ; AVX512BW-NEXT: subb %al, %dl
1430 ; AVX512BW-NEXT: movzbl %dl, %eax
1431 ; AVX512BW-NEXT: vpinsrb $8, %eax, %xmm2, %xmm2
1432 ; AVX512BW-NEXT: vpextrb $9, %xmm1, %edx
1433 ; AVX512BW-NEXT: imull $37, %edx, %esi
1434 ; AVX512BW-NEXT: shrl $8, %esi
1435 ; AVX512BW-NEXT: movl %edx, %eax
1436 ; AVX512BW-NEXT: subb %sil, %al
1437 ; AVX512BW-NEXT: shrb %al
1438 ; AVX512BW-NEXT: addb %sil, %al
1439 ; AVX512BW-NEXT: shrb $2, %al
1440 ; AVX512BW-NEXT: mulb %cl
1441 ; AVX512BW-NEXT: subb %al, %dl
1442 ; AVX512BW-NEXT: movzbl %dl, %eax
1443 ; AVX512BW-NEXT: vpinsrb $9, %eax, %xmm2, %xmm2
1444 ; AVX512BW-NEXT: vpextrb $10, %xmm1, %edx
1445 ; AVX512BW-NEXT: imull $37, %edx, %esi
1446 ; AVX512BW-NEXT: shrl $8, %esi
1447 ; AVX512BW-NEXT: movl %edx, %eax
1448 ; AVX512BW-NEXT: subb %sil, %al
1449 ; AVX512BW-NEXT: shrb %al
1450 ; AVX512BW-NEXT: addb %sil, %al
1451 ; AVX512BW-NEXT: shrb $2, %al
1452 ; AVX512BW-NEXT: mulb %cl
1453 ; AVX512BW-NEXT: subb %al, %dl
1454 ; AVX512BW-NEXT: movzbl %dl, %eax
1455 ; AVX512BW-NEXT: vpinsrb $10, %eax, %xmm2, %xmm2
1456 ; AVX512BW-NEXT: vpextrb $11, %xmm1, %edx
1457 ; AVX512BW-NEXT: imull $37, %edx, %esi
1458 ; AVX512BW-NEXT: shrl $8, %esi
1459 ; AVX512BW-NEXT: movl %edx, %eax
1460 ; AVX512BW-NEXT: subb %sil, %al
1461 ; AVX512BW-NEXT: shrb %al
1462 ; AVX512BW-NEXT: addb %sil, %al
1463 ; AVX512BW-NEXT: shrb $2, %al
1464 ; AVX512BW-NEXT: mulb %cl
1465 ; AVX512BW-NEXT: subb %al, %dl
1466 ; AVX512BW-NEXT: movzbl %dl, %eax
1467 ; AVX512BW-NEXT: vpinsrb $11, %eax, %xmm2, %xmm2
1468 ; AVX512BW-NEXT: vpextrb $12, %xmm1, %edx
1469 ; AVX512BW-NEXT: imull $37, %edx, %esi
1470 ; AVX512BW-NEXT: shrl $8, %esi
1471 ; AVX512BW-NEXT: movl %edx, %eax
1472 ; AVX512BW-NEXT: subb %sil, %al
1473 ; AVX512BW-NEXT: shrb %al
1474 ; AVX512BW-NEXT: addb %sil, %al
1475 ; AVX512BW-NEXT: shrb $2, %al
1476 ; AVX512BW-NEXT: mulb %cl
1477 ; AVX512BW-NEXT: subb %al, %dl
1478 ; AVX512BW-NEXT: movzbl %dl, %eax
1479 ; AVX512BW-NEXT: vpinsrb $12, %eax, %xmm2, %xmm2
1480 ; AVX512BW-NEXT: vpextrb $13, %xmm1, %edx
1481 ; AVX512BW-NEXT: imull $37, %edx, %esi
1482 ; AVX512BW-NEXT: shrl $8, %esi
1483 ; AVX512BW-NEXT: movl %edx, %eax
1484 ; AVX512BW-NEXT: subb %sil, %al
1485 ; AVX512BW-NEXT: shrb %al
1486 ; AVX512BW-NEXT: addb %sil, %al
1487 ; AVX512BW-NEXT: shrb $2, %al
1488 ; AVX512BW-NEXT: mulb %cl
1489 ; AVX512BW-NEXT: subb %al, %dl
1490 ; AVX512BW-NEXT: movzbl %dl, %eax
1491 ; AVX512BW-NEXT: vpinsrb $13, %eax, %xmm2, %xmm2
1492 ; AVX512BW-NEXT: vpextrb $14, %xmm1, %edx
1493 ; AVX512BW-NEXT: imull $37, %edx, %esi
1494 ; AVX512BW-NEXT: shrl $8, %esi
1495 ; AVX512BW-NEXT: movl %edx, %eax
1496 ; AVX512BW-NEXT: subb %sil, %al
1497 ; AVX512BW-NEXT: shrb %al
1498 ; AVX512BW-NEXT: addb %sil, %al
1499 ; AVX512BW-NEXT: shrb $2, %al
1500 ; AVX512BW-NEXT: mulb %cl
1501 ; AVX512BW-NEXT: subb %al, %dl
1502 ; AVX512BW-NEXT: movzbl %dl, %eax
1503 ; AVX512BW-NEXT: vpinsrb $14, %eax, %xmm2, %xmm2
1504 ; AVX512BW-NEXT: vpextrb $15, %xmm1, %edx
1505 ; AVX512BW-NEXT: imull $37, %edx, %esi
1506 ; AVX512BW-NEXT: shrl $8, %esi
1507 ; AVX512BW-NEXT: movl %edx, %eax
1508 ; AVX512BW-NEXT: subb %sil, %al
1509 ; AVX512BW-NEXT: shrb %al
1510 ; AVX512BW-NEXT: addb %sil, %al
1511 ; AVX512BW-NEXT: shrb $2, %al
1512 ; AVX512BW-NEXT: mulb %cl
1513 ; AVX512BW-NEXT: subb %al, %dl
1514 ; AVX512BW-NEXT: movzbl %dl, %eax
1515 ; AVX512BW-NEXT: vpinsrb $15, %eax, %xmm2, %xmm1
1516 ; AVX512BW-NEXT: vextracti32x4 $2, %zmm0, %xmm2
1517 ; AVX512BW-NEXT: vpextrb $1, %xmm2, %edx
1518 ; AVX512BW-NEXT: imull $37, %edx, %esi
1519 ; AVX512BW-NEXT: shrl $8, %esi
1520 ; AVX512BW-NEXT: movl %edx, %eax
1521 ; AVX512BW-NEXT: subb %sil, %al
1522 ; AVX512BW-NEXT: shrb %al
1523 ; AVX512BW-NEXT: addb %sil, %al
1524 ; AVX512BW-NEXT: shrb $2, %al
1525 ; AVX512BW-NEXT: mulb %cl
1526 ; AVX512BW-NEXT: subb %al, %dl
1527 ; AVX512BW-NEXT: movzbl %dl, %edx
1528 ; AVX512BW-NEXT: vpextrb $0, %xmm2, %esi
1529 ; AVX512BW-NEXT: imull $37, %esi, %edi
1530 ; AVX512BW-NEXT: shrl $8, %edi
1531 ; AVX512BW-NEXT: movl %esi, %eax
1532 ; AVX512BW-NEXT: subb %dil, %al
1533 ; AVX512BW-NEXT: shrb %al
1534 ; AVX512BW-NEXT: addb %dil, %al
1535 ; AVX512BW-NEXT: shrb $2, %al
1536 ; AVX512BW-NEXT: mulb %cl
1537 ; AVX512BW-NEXT: subb %al, %sil
1538 ; AVX512BW-NEXT: movzbl %sil, %eax
1539 ; AVX512BW-NEXT: vmovd %eax, %xmm3
1540 ; AVX512BW-NEXT: vpinsrb $1, %edx, %xmm3, %xmm3
1541 ; AVX512BW-NEXT: vpextrb $2, %xmm2, %edx
1542 ; AVX512BW-NEXT: imull $37, %edx, %esi
1543 ; AVX512BW-NEXT: shrl $8, %esi
1544 ; AVX512BW-NEXT: movl %edx, %eax
1545 ; AVX512BW-NEXT: subb %sil, %al
1546 ; AVX512BW-NEXT: shrb %al
1547 ; AVX512BW-NEXT: addb %sil, %al
1548 ; AVX512BW-NEXT: shrb $2, %al
1549 ; AVX512BW-NEXT: mulb %cl
1550 ; AVX512BW-NEXT: subb %al, %dl
1551 ; AVX512BW-NEXT: movzbl %dl, %eax
1552 ; AVX512BW-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3
1553 ; AVX512BW-NEXT: vpextrb $3, %xmm2, %edx
1554 ; AVX512BW-NEXT: imull $37, %edx, %esi
1555 ; AVX512BW-NEXT: shrl $8, %esi
1556 ; AVX512BW-NEXT: movl %edx, %eax
1557 ; AVX512BW-NEXT: subb %sil, %al
1558 ; AVX512BW-NEXT: shrb %al
1559 ; AVX512BW-NEXT: addb %sil, %al
1560 ; AVX512BW-NEXT: shrb $2, %al
1561 ; AVX512BW-NEXT: mulb %cl
1562 ; AVX512BW-NEXT: subb %al, %dl
1563 ; AVX512BW-NEXT: movzbl %dl, %eax
1564 ; AVX512BW-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3
1565 ; AVX512BW-NEXT: vpextrb $4, %xmm2, %edx
1566 ; AVX512BW-NEXT: imull $37, %edx, %esi
1567 ; AVX512BW-NEXT: shrl $8, %esi
1568 ; AVX512BW-NEXT: movl %edx, %eax
1569 ; AVX512BW-NEXT: subb %sil, %al
1570 ; AVX512BW-NEXT: shrb %al
1571 ; AVX512BW-NEXT: addb %sil, %al
1572 ; AVX512BW-NEXT: shrb $2, %al
1573 ; AVX512BW-NEXT: mulb %cl
1574 ; AVX512BW-NEXT: subb %al, %dl
1575 ; AVX512BW-NEXT: movzbl %dl, %eax
1576 ; AVX512BW-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3
1577 ; AVX512BW-NEXT: vpextrb $5, %xmm2, %edx
1578 ; AVX512BW-NEXT: imull $37, %edx, %esi
1579 ; AVX512BW-NEXT: shrl $8, %esi
1580 ; AVX512BW-NEXT: movl %edx, %eax
1581 ; AVX512BW-NEXT: subb %sil, %al
1582 ; AVX512BW-NEXT: shrb %al
1583 ; AVX512BW-NEXT: addb %sil, %al
1584 ; AVX512BW-NEXT: shrb $2, %al
1585 ; AVX512BW-NEXT: mulb %cl
1586 ; AVX512BW-NEXT: subb %al, %dl
1587 ; AVX512BW-NEXT: movzbl %dl, %eax
1588 ; AVX512BW-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3
1589 ; AVX512BW-NEXT: vpextrb $6, %xmm2, %edx
1590 ; AVX512BW-NEXT: imull $37, %edx, %esi
1591 ; AVX512BW-NEXT: shrl $8, %esi
1592 ; AVX512BW-NEXT: movl %edx, %eax
1593 ; AVX512BW-NEXT: subb %sil, %al
1594 ; AVX512BW-NEXT: shrb %al
1595 ; AVX512BW-NEXT: addb %sil, %al
1596 ; AVX512BW-NEXT: shrb $2, %al
1597 ; AVX512BW-NEXT: mulb %cl
1598 ; AVX512BW-NEXT: subb %al, %dl
1599 ; AVX512BW-NEXT: movzbl %dl, %eax
1600 ; AVX512BW-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3
1601 ; AVX512BW-NEXT: vpextrb $7, %xmm2, %edx
1602 ; AVX512BW-NEXT: imull $37, %edx, %esi
1603 ; AVX512BW-NEXT: shrl $8, %esi
1604 ; AVX512BW-NEXT: movl %edx, %eax
1605 ; AVX512BW-NEXT: subb %sil, %al
1606 ; AVX512BW-NEXT: shrb %al
1607 ; AVX512BW-NEXT: addb %sil, %al
1608 ; AVX512BW-NEXT: shrb $2, %al
1609 ; AVX512BW-NEXT: mulb %cl
1610 ; AVX512BW-NEXT: subb %al, %dl
1611 ; AVX512BW-NEXT: movzbl %dl, %eax
1612 ; AVX512BW-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3
1613 ; AVX512BW-NEXT: vpextrb $8, %xmm2, %edx
1614 ; AVX512BW-NEXT: imull $37, %edx, %esi
1615 ; AVX512BW-NEXT: shrl $8, %esi
1616 ; AVX512BW-NEXT: movl %edx, %eax
1617 ; AVX512BW-NEXT: subb %sil, %al
1618 ; AVX512BW-NEXT: shrb %al
1619 ; AVX512BW-NEXT: addb %sil, %al
1620 ; AVX512BW-NEXT: shrb $2, %al
1621 ; AVX512BW-NEXT: mulb %cl
1622 ; AVX512BW-NEXT: subb %al, %dl
1623 ; AVX512BW-NEXT: movzbl %dl, %eax
1624 ; AVX512BW-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3
1625 ; AVX512BW-NEXT: vpextrb $9, %xmm2, %edx
1626 ; AVX512BW-NEXT: imull $37, %edx, %esi
1627 ; AVX512BW-NEXT: shrl $8, %esi
1628 ; AVX512BW-NEXT: movl %edx, %eax
1629 ; AVX512BW-NEXT: subb %sil, %al
1630 ; AVX512BW-NEXT: shrb %al
1631 ; AVX512BW-NEXT: addb %sil, %al
1632 ; AVX512BW-NEXT: shrb $2, %al
1633 ; AVX512BW-NEXT: mulb %cl
1634 ; AVX512BW-NEXT: subb %al, %dl
1635 ; AVX512BW-NEXT: movzbl %dl, %eax
1636 ; AVX512BW-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3
1637 ; AVX512BW-NEXT: vpextrb $10, %xmm2, %edx
1638 ; AVX512BW-NEXT: imull $37, %edx, %esi
1639 ; AVX512BW-NEXT: shrl $8, %esi
1640 ; AVX512BW-NEXT: movl %edx, %eax
1641 ; AVX512BW-NEXT: subb %sil, %al
1642 ; AVX512BW-NEXT: shrb %al
1643 ; AVX512BW-NEXT: addb %sil, %al
1644 ; AVX512BW-NEXT: shrb $2, %al
1645 ; AVX512BW-NEXT: mulb %cl
1646 ; AVX512BW-NEXT: subb %al, %dl
1647 ; AVX512BW-NEXT: movzbl %dl, %eax
1648 ; AVX512BW-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3
1649 ; AVX512BW-NEXT: vpextrb $11, %xmm2, %edx
1650 ; AVX512BW-NEXT: imull $37, %edx, %esi
1651 ; AVX512BW-NEXT: shrl $8, %esi
1652 ; AVX512BW-NEXT: movl %edx, %eax
1653 ; AVX512BW-NEXT: subb %sil, %al
1654 ; AVX512BW-NEXT: shrb %al
1655 ; AVX512BW-NEXT: addb %sil, %al
1656 ; AVX512BW-NEXT: shrb $2, %al
1657 ; AVX512BW-NEXT: mulb %cl
1658 ; AVX512BW-NEXT: subb %al, %dl
1659 ; AVX512BW-NEXT: movzbl %dl, %eax
1660 ; AVX512BW-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3
1661 ; AVX512BW-NEXT: vpextrb $12, %xmm2, %edx
1662 ; AVX512BW-NEXT: imull $37, %edx, %esi
1663 ; AVX512BW-NEXT: shrl $8, %esi
1664 ; AVX512BW-NEXT: movl %edx, %eax
1665 ; AVX512BW-NEXT: subb %sil, %al
1666 ; AVX512BW-NEXT: shrb %al
1667 ; AVX512BW-NEXT: addb %sil, %al
1668 ; AVX512BW-NEXT: shrb $2, %al
1669 ; AVX512BW-NEXT: mulb %cl
1670 ; AVX512BW-NEXT: subb %al, %dl
1671 ; AVX512BW-NEXT: movzbl %dl, %eax
1672 ; AVX512BW-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3
1673 ; AVX512BW-NEXT: vpextrb $13, %xmm2, %edx
1674 ; AVX512BW-NEXT: imull $37, %edx, %esi
1675 ; AVX512BW-NEXT: shrl $8, %esi
1676 ; AVX512BW-NEXT: movl %edx, %eax
1677 ; AVX512BW-NEXT: subb %sil, %al
1678 ; AVX512BW-NEXT: shrb %al
1679 ; AVX512BW-NEXT: addb %sil, %al
1680 ; AVX512BW-NEXT: shrb $2, %al
1681 ; AVX512BW-NEXT: mulb %cl
1682 ; AVX512BW-NEXT: subb %al, %dl
1683 ; AVX512BW-NEXT: movzbl %dl, %eax
1684 ; AVX512BW-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3
1685 ; AVX512BW-NEXT: vpextrb $14, %xmm2, %edx
1686 ; AVX512BW-NEXT: imull $37, %edx, %esi
1687 ; AVX512BW-NEXT: shrl $8, %esi
1688 ; AVX512BW-NEXT: movl %edx, %eax
1689 ; AVX512BW-NEXT: subb %sil, %al
1690 ; AVX512BW-NEXT: shrb %al
1691 ; AVX512BW-NEXT: addb %sil, %al
1692 ; AVX512BW-NEXT: shrb $2, %al
1693 ; AVX512BW-NEXT: mulb %cl
1694 ; AVX512BW-NEXT: subb %al, %dl
1695 ; AVX512BW-NEXT: movzbl %dl, %eax
1696 ; AVX512BW-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
1697 ; AVX512BW-NEXT: vpextrb $15, %xmm2, %edx
1698 ; AVX512BW-NEXT: imull $37, %edx, %esi
1699 ; AVX512BW-NEXT: shrl $8, %esi
1700 ; AVX512BW-NEXT: movl %edx, %eax
1701 ; AVX512BW-NEXT: subb %sil, %al
1702 ; AVX512BW-NEXT: shrb %al
1703 ; AVX512BW-NEXT: addb %sil, %al
1704 ; AVX512BW-NEXT: shrb $2, %al
1705 ; AVX512BW-NEXT: mulb %cl
1706 ; AVX512BW-NEXT: subb %al, %dl
1707 ; AVX512BW-NEXT: movzbl %dl, %eax
1708 ; AVX512BW-NEXT: vpinsrb $15, %eax, %xmm3, %xmm2
1709 ; AVX512BW-NEXT: vinserti128 $1, %xmm1, %ymm2, %ymm1
1710 ; AVX512BW-NEXT: vextracti32x4 $1, %zmm0, %xmm2
1711 ; AVX512BW-NEXT: vpextrb $1, %xmm2, %edx
1712 ; AVX512BW-NEXT: imull $37, %edx, %esi
1713 ; AVX512BW-NEXT: shrl $8, %esi
1714 ; AVX512BW-NEXT: movl %edx, %eax
1715 ; AVX512BW-NEXT: subb %sil, %al
1716 ; AVX512BW-NEXT: shrb %al
1717 ; AVX512BW-NEXT: addb %sil, %al
1718 ; AVX512BW-NEXT: shrb $2, %al
1719 ; AVX512BW-NEXT: mulb %cl
1720 ; AVX512BW-NEXT: subb %al, %dl
1721 ; AVX512BW-NEXT: movzbl %dl, %edx
1722 ; AVX512BW-NEXT: vpextrb $0, %xmm2, %esi
1723 ; AVX512BW-NEXT: imull $37, %esi, %edi
1724 ; AVX512BW-NEXT: shrl $8, %edi
1725 ; AVX512BW-NEXT: movl %esi, %eax
1726 ; AVX512BW-NEXT: subb %dil, %al
1727 ; AVX512BW-NEXT: shrb %al
1728 ; AVX512BW-NEXT: addb %dil, %al
1729 ; AVX512BW-NEXT: shrb $2, %al
1730 ; AVX512BW-NEXT: mulb %cl
1731 ; AVX512BW-NEXT: subb %al, %sil
1732 ; AVX512BW-NEXT: movzbl %sil, %eax
1733 ; AVX512BW-NEXT: vmovd %eax, %xmm3
1734 ; AVX512BW-NEXT: vpinsrb $1, %edx, %xmm3, %xmm3
1735 ; AVX512BW-NEXT: vpextrb $2, %xmm2, %edx
1736 ; AVX512BW-NEXT: imull $37, %edx, %esi
1737 ; AVX512BW-NEXT: shrl $8, %esi
1738 ; AVX512BW-NEXT: movl %edx, %eax
1739 ; AVX512BW-NEXT: subb %sil, %al
1740 ; AVX512BW-NEXT: shrb %al
1741 ; AVX512BW-NEXT: addb %sil, %al
1742 ; AVX512BW-NEXT: shrb $2, %al
1743 ; AVX512BW-NEXT: mulb %cl
1744 ; AVX512BW-NEXT: subb %al, %dl
1745 ; AVX512BW-NEXT: movzbl %dl, %eax
1746 ; AVX512BW-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3
1747 ; AVX512BW-NEXT: vpextrb $3, %xmm2, %edx
1748 ; AVX512BW-NEXT: imull $37, %edx, %esi
1749 ; AVX512BW-NEXT: shrl $8, %esi
1750 ; AVX512BW-NEXT: movl %edx, %eax
1751 ; AVX512BW-NEXT: subb %sil, %al
1752 ; AVX512BW-NEXT: shrb %al
1753 ; AVX512BW-NEXT: addb %sil, %al
1754 ; AVX512BW-NEXT: shrb $2, %al
1755 ; AVX512BW-NEXT: mulb %cl
1756 ; AVX512BW-NEXT: subb %al, %dl
1757 ; AVX512BW-NEXT: movzbl %dl, %eax
1758 ; AVX512BW-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3
1759 ; AVX512BW-NEXT: vpextrb $4, %xmm2, %edx
1760 ; AVX512BW-NEXT: imull $37, %edx, %esi
1761 ; AVX512BW-NEXT: shrl $8, %esi
1762 ; AVX512BW-NEXT: movl %edx, %eax
1763 ; AVX512BW-NEXT: subb %sil, %al
1764 ; AVX512BW-NEXT: shrb %al
1765 ; AVX512BW-NEXT: addb %sil, %al
1766 ; AVX512BW-NEXT: shrb $2, %al
1767 ; AVX512BW-NEXT: mulb %cl
1768 ; AVX512BW-NEXT: subb %al, %dl
1769 ; AVX512BW-NEXT: movzbl %dl, %eax
1770 ; AVX512BW-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3
1771 ; AVX512BW-NEXT: vpextrb $5, %xmm2, %edx
1772 ; AVX512BW-NEXT: imull $37, %edx, %esi
1773 ; AVX512BW-NEXT: shrl $8, %esi
1774 ; AVX512BW-NEXT: movl %edx, %eax
1775 ; AVX512BW-NEXT: subb %sil, %al
1776 ; AVX512BW-NEXT: shrb %al
1777 ; AVX512BW-NEXT: addb %sil, %al
1778 ; AVX512BW-NEXT: shrb $2, %al
1779 ; AVX512BW-NEXT: mulb %cl
1780 ; AVX512BW-NEXT: subb %al, %dl
1781 ; AVX512BW-NEXT: movzbl %dl, %eax
1782 ; AVX512BW-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3
1783 ; AVX512BW-NEXT: vpextrb $6, %xmm2, %edx
1784 ; AVX512BW-NEXT: imull $37, %edx, %esi
1785 ; AVX512BW-NEXT: shrl $8, %esi
1786 ; AVX512BW-NEXT: movl %edx, %eax
1787 ; AVX512BW-NEXT: subb %sil, %al
1788 ; AVX512BW-NEXT: shrb %al
1789 ; AVX512BW-NEXT: addb %sil, %al
1790 ; AVX512BW-NEXT: shrb $2, %al
1791 ; AVX512BW-NEXT: mulb %cl
1792 ; AVX512BW-NEXT: subb %al, %dl
1793 ; AVX512BW-NEXT: movzbl %dl, %eax
1794 ; AVX512BW-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3
1795 ; AVX512BW-NEXT: vpextrb $7, %xmm2, %edx
1796 ; AVX512BW-NEXT: imull $37, %edx, %esi
1797 ; AVX512BW-NEXT: shrl $8, %esi
1798 ; AVX512BW-NEXT: movl %edx, %eax
1799 ; AVX512BW-NEXT: subb %sil, %al
1800 ; AVX512BW-NEXT: shrb %al
1801 ; AVX512BW-NEXT: addb %sil, %al
1802 ; AVX512BW-NEXT: shrb $2, %al
1803 ; AVX512BW-NEXT: mulb %cl
1804 ; AVX512BW-NEXT: subb %al, %dl
1805 ; AVX512BW-NEXT: movzbl %dl, %eax
1806 ; AVX512BW-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3
1807 ; AVX512BW-NEXT: vpextrb $8, %xmm2, %edx
1808 ; AVX512BW-NEXT: imull $37, %edx, %esi
1809 ; AVX512BW-NEXT: shrl $8, %esi
1810 ; AVX512BW-NEXT: movl %edx, %eax
1811 ; AVX512BW-NEXT: subb %sil, %al
1812 ; AVX512BW-NEXT: shrb %al
1813 ; AVX512BW-NEXT: addb %sil, %al
1814 ; AVX512BW-NEXT: shrb $2, %al
1815 ; AVX512BW-NEXT: mulb %cl
1816 ; AVX512BW-NEXT: subb %al, %dl
1817 ; AVX512BW-NEXT: movzbl %dl, %eax
1818 ; AVX512BW-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3
1819 ; AVX512BW-NEXT: vpextrb $9, %xmm2, %edx
1820 ; AVX512BW-NEXT: imull $37, %edx, %esi
1821 ; AVX512BW-NEXT: shrl $8, %esi
1822 ; AVX512BW-NEXT: movl %edx, %eax
1823 ; AVX512BW-NEXT: subb %sil, %al
1824 ; AVX512BW-NEXT: shrb %al
1825 ; AVX512BW-NEXT: addb %sil, %al
1826 ; AVX512BW-NEXT: shrb $2, %al
1827 ; AVX512BW-NEXT: mulb %cl
1828 ; AVX512BW-NEXT: subb %al, %dl
1829 ; AVX512BW-NEXT: movzbl %dl, %eax
1830 ; AVX512BW-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3
1831 ; AVX512BW-NEXT: vpextrb $10, %xmm2, %edx
1832 ; AVX512BW-NEXT: imull $37, %edx, %esi
1833 ; AVX512BW-NEXT: shrl $8, %esi
1834 ; AVX512BW-NEXT: movl %edx, %eax
1835 ; AVX512BW-NEXT: subb %sil, %al
1836 ; AVX512BW-NEXT: shrb %al
1837 ; AVX512BW-NEXT: addb %sil, %al
1838 ; AVX512BW-NEXT: shrb $2, %al
1839 ; AVX512BW-NEXT: mulb %cl
1840 ; AVX512BW-NEXT: subb %al, %dl
1841 ; AVX512BW-NEXT: movzbl %dl, %eax
1842 ; AVX512BW-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3
1843 ; AVX512BW-NEXT: vpextrb $11, %xmm2, %edx
1844 ; AVX512BW-NEXT: imull $37, %edx, %esi
1845 ; AVX512BW-NEXT: shrl $8, %esi
1846 ; AVX512BW-NEXT: movl %edx, %eax
1847 ; AVX512BW-NEXT: subb %sil, %al
1848 ; AVX512BW-NEXT: shrb %al
1849 ; AVX512BW-NEXT: addb %sil, %al
1850 ; AVX512BW-NEXT: shrb $2, %al
1851 ; AVX512BW-NEXT: mulb %cl
1852 ; AVX512BW-NEXT: subb %al, %dl
1853 ; AVX512BW-NEXT: movzbl %dl, %eax
1854 ; AVX512BW-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3
1855 ; AVX512BW-NEXT: vpextrb $12, %xmm2, %edx
1856 ; AVX512BW-NEXT: imull $37, %edx, %esi
1857 ; AVX512BW-NEXT: shrl $8, %esi
1858 ; AVX512BW-NEXT: movl %edx, %eax
1859 ; AVX512BW-NEXT: subb %sil, %al
1860 ; AVX512BW-NEXT: shrb %al
1861 ; AVX512BW-NEXT: addb %sil, %al
1862 ; AVX512BW-NEXT: shrb $2, %al
1863 ; AVX512BW-NEXT: mulb %cl
1864 ; AVX512BW-NEXT: subb %al, %dl
1865 ; AVX512BW-NEXT: movzbl %dl, %eax
1866 ; AVX512BW-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3
1867 ; AVX512BW-NEXT: vpextrb $13, %xmm2, %edx
1868 ; AVX512BW-NEXT: imull $37, %edx, %esi
1869 ; AVX512BW-NEXT: shrl $8, %esi
1870 ; AVX512BW-NEXT: movl %edx, %eax
1871 ; AVX512BW-NEXT: subb %sil, %al
1872 ; AVX512BW-NEXT: shrb %al
1873 ; AVX512BW-NEXT: addb %sil, %al
1874 ; AVX512BW-NEXT: shrb $2, %al
1875 ; AVX512BW-NEXT: mulb %cl
1876 ; AVX512BW-NEXT: subb %al, %dl
1877 ; AVX512BW-NEXT: movzbl %dl, %eax
1878 ; AVX512BW-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3
1879 ; AVX512BW-NEXT: vpextrb $14, %xmm2, %edx
1880 ; AVX512BW-NEXT: imull $37, %edx, %esi
1881 ; AVX512BW-NEXT: shrl $8, %esi
1882 ; AVX512BW-NEXT: movl %edx, %eax
1883 ; AVX512BW-NEXT: subb %sil, %al
1884 ; AVX512BW-NEXT: shrb %al
1885 ; AVX512BW-NEXT: addb %sil, %al
1886 ; AVX512BW-NEXT: shrb $2, %al
1887 ; AVX512BW-NEXT: mulb %cl
1888 ; AVX512BW-NEXT: subb %al, %dl
1889 ; AVX512BW-NEXT: movzbl %dl, %eax
1890 ; AVX512BW-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
1891 ; AVX512BW-NEXT: vpextrb $15, %xmm2, %edx
1892 ; AVX512BW-NEXT: imull $37, %edx, %esi
1893 ; AVX512BW-NEXT: shrl $8, %esi
1894 ; AVX512BW-NEXT: movl %edx, %eax
1895 ; AVX512BW-NEXT: subb %sil, %al
1896 ; AVX512BW-NEXT: shrb %al
1897 ; AVX512BW-NEXT: addb %sil, %al
1898 ; AVX512BW-NEXT: shrb $2, %al
1899 ; AVX512BW-NEXT: mulb %cl
1900 ; AVX512BW-NEXT: subb %al, %dl
1901 ; AVX512BW-NEXT: movzbl %dl, %eax
1902 ; AVX512BW-NEXT: vpinsrb $15, %eax, %xmm3, %xmm2
1903 ; AVX512BW-NEXT: vpextrb $1, %xmm0, %edx
1904 ; AVX512BW-NEXT: imull $37, %edx, %esi
1905 ; AVX512BW-NEXT: shrl $8, %esi
1906 ; AVX512BW-NEXT: movl %edx, %eax
1907 ; AVX512BW-NEXT: subb %sil, %al
1908 ; AVX512BW-NEXT: shrb %al
1909 ; AVX512BW-NEXT: addb %sil, %al
1910 ; AVX512BW-NEXT: shrb $2, %al
1911 ; AVX512BW-NEXT: mulb %cl
1912 ; AVX512BW-NEXT: subb %al, %dl
1913 ; AVX512BW-NEXT: movzbl %dl, %edx
1914 ; AVX512BW-NEXT: vpextrb $0, %xmm0, %esi
1915 ; AVX512BW-NEXT: imull $37, %esi, %edi
1916 ; AVX512BW-NEXT: shrl $8, %edi
1917 ; AVX512BW-NEXT: movl %esi, %eax
1918 ; AVX512BW-NEXT: subb %dil, %al
1919 ; AVX512BW-NEXT: shrb %al
1920 ; AVX512BW-NEXT: addb %dil, %al
1921 ; AVX512BW-NEXT: shrb $2, %al
1922 ; AVX512BW-NEXT: mulb %cl
1923 ; AVX512BW-NEXT: subb %al, %sil
1924 ; AVX512BW-NEXT: movzbl %sil, %eax
1925 ; AVX512BW-NEXT: vmovd %eax, %xmm3
1926 ; AVX512BW-NEXT: vpinsrb $1, %edx, %xmm3, %xmm3
1927 ; AVX512BW-NEXT: vpextrb $2, %xmm0, %edx
1928 ; AVX512BW-NEXT: imull $37, %edx, %esi
1929 ; AVX512BW-NEXT: shrl $8, %esi
1930 ; AVX512BW-NEXT: movl %edx, %eax
1931 ; AVX512BW-NEXT: subb %sil, %al
1932 ; AVX512BW-NEXT: shrb %al
1933 ; AVX512BW-NEXT: addb %sil, %al
1934 ; AVX512BW-NEXT: shrb $2, %al
1935 ; AVX512BW-NEXT: mulb %cl
1936 ; AVX512BW-NEXT: subb %al, %dl
1937 ; AVX512BW-NEXT: movzbl %dl, %eax
1938 ; AVX512BW-NEXT: vpinsrb $2, %eax, %xmm3, %xmm3
1939 ; AVX512BW-NEXT: vpextrb $3, %xmm0, %edx
1940 ; AVX512BW-NEXT: imull $37, %edx, %esi
1941 ; AVX512BW-NEXT: shrl $8, %esi
1942 ; AVX512BW-NEXT: movl %edx, %eax
1943 ; AVX512BW-NEXT: subb %sil, %al
1944 ; AVX512BW-NEXT: shrb %al
1945 ; AVX512BW-NEXT: addb %sil, %al
1946 ; AVX512BW-NEXT: shrb $2, %al
1947 ; AVX512BW-NEXT: mulb %cl
1948 ; AVX512BW-NEXT: subb %al, %dl
1949 ; AVX512BW-NEXT: movzbl %dl, %eax
1950 ; AVX512BW-NEXT: vpinsrb $3, %eax, %xmm3, %xmm3
1951 ; AVX512BW-NEXT: vpextrb $4, %xmm0, %edx
1952 ; AVX512BW-NEXT: imull $37, %edx, %esi
1953 ; AVX512BW-NEXT: shrl $8, %esi
1954 ; AVX512BW-NEXT: movl %edx, %eax
1955 ; AVX512BW-NEXT: subb %sil, %al
1956 ; AVX512BW-NEXT: shrb %al
1957 ; AVX512BW-NEXT: addb %sil, %al
1958 ; AVX512BW-NEXT: shrb $2, %al
1959 ; AVX512BW-NEXT: mulb %cl
1960 ; AVX512BW-NEXT: subb %al, %dl
1961 ; AVX512BW-NEXT: movzbl %dl, %eax
1962 ; AVX512BW-NEXT: vpinsrb $4, %eax, %xmm3, %xmm3
1963 ; AVX512BW-NEXT: vpextrb $5, %xmm0, %edx
1964 ; AVX512BW-NEXT: imull $37, %edx, %esi
1965 ; AVX512BW-NEXT: shrl $8, %esi
1966 ; AVX512BW-NEXT: movl %edx, %eax
1967 ; AVX512BW-NEXT: subb %sil, %al
1968 ; AVX512BW-NEXT: shrb %al
1969 ; AVX512BW-NEXT: addb %sil, %al
1970 ; AVX512BW-NEXT: shrb $2, %al
1971 ; AVX512BW-NEXT: mulb %cl
1972 ; AVX512BW-NEXT: subb %al, %dl
1973 ; AVX512BW-NEXT: movzbl %dl, %eax
1974 ; AVX512BW-NEXT: vpinsrb $5, %eax, %xmm3, %xmm3
1975 ; AVX512BW-NEXT: vpextrb $6, %xmm0, %edx
1976 ; AVX512BW-NEXT: imull $37, %edx, %esi
1977 ; AVX512BW-NEXT: shrl $8, %esi
1978 ; AVX512BW-NEXT: movl %edx, %eax
1979 ; AVX512BW-NEXT: subb %sil, %al
1980 ; AVX512BW-NEXT: shrb %al
1981 ; AVX512BW-NEXT: addb %sil, %al
1982 ; AVX512BW-NEXT: shrb $2, %al
1983 ; AVX512BW-NEXT: mulb %cl
1984 ; AVX512BW-NEXT: subb %al, %dl
1985 ; AVX512BW-NEXT: movzbl %dl, %eax
1986 ; AVX512BW-NEXT: vpinsrb $6, %eax, %xmm3, %xmm3
1987 ; AVX512BW-NEXT: vpextrb $7, %xmm0, %edx
1988 ; AVX512BW-NEXT: imull $37, %edx, %esi
1989 ; AVX512BW-NEXT: shrl $8, %esi
1990 ; AVX512BW-NEXT: movl %edx, %eax
1991 ; AVX512BW-NEXT: subb %sil, %al
1992 ; AVX512BW-NEXT: shrb %al
1993 ; AVX512BW-NEXT: addb %sil, %al
1994 ; AVX512BW-NEXT: shrb $2, %al
1995 ; AVX512BW-NEXT: mulb %cl
1996 ; AVX512BW-NEXT: subb %al, %dl
1997 ; AVX512BW-NEXT: movzbl %dl, %eax
1998 ; AVX512BW-NEXT: vpinsrb $7, %eax, %xmm3, %xmm3
1999 ; AVX512BW-NEXT: vpextrb $8, %xmm0, %edx
2000 ; AVX512BW-NEXT: imull $37, %edx, %esi
2001 ; AVX512BW-NEXT: shrl $8, %esi
2002 ; AVX512BW-NEXT: movl %edx, %eax
2003 ; AVX512BW-NEXT: subb %sil, %al
2004 ; AVX512BW-NEXT: shrb %al
2005 ; AVX512BW-NEXT: addb %sil, %al
2006 ; AVX512BW-NEXT: shrb $2, %al
2007 ; AVX512BW-NEXT: mulb %cl
2008 ; AVX512BW-NEXT: subb %al, %dl
2009 ; AVX512BW-NEXT: movzbl %dl, %eax
2010 ; AVX512BW-NEXT: vpinsrb $8, %eax, %xmm3, %xmm3
2011 ; AVX512BW-NEXT: vpextrb $9, %xmm0, %edx
2012 ; AVX512BW-NEXT: imull $37, %edx, %esi
2013 ; AVX512BW-NEXT: shrl $8, %esi
2014 ; AVX512BW-NEXT: movl %edx, %eax
2015 ; AVX512BW-NEXT: subb %sil, %al
2016 ; AVX512BW-NEXT: shrb %al
2017 ; AVX512BW-NEXT: addb %sil, %al
2018 ; AVX512BW-NEXT: shrb $2, %al
2019 ; AVX512BW-NEXT: mulb %cl
2020 ; AVX512BW-NEXT: subb %al, %dl
2021 ; AVX512BW-NEXT: movzbl %dl, %eax
2022 ; AVX512BW-NEXT: vpinsrb $9, %eax, %xmm3, %xmm3
2023 ; AVX512BW-NEXT: vpextrb $10, %xmm0, %edx
2024 ; AVX512BW-NEXT: imull $37, %edx, %esi
2025 ; AVX512BW-NEXT: shrl $8, %esi
2026 ; AVX512BW-NEXT: movl %edx, %eax
2027 ; AVX512BW-NEXT: subb %sil, %al
2028 ; AVX512BW-NEXT: shrb %al
2029 ; AVX512BW-NEXT: addb %sil, %al
2030 ; AVX512BW-NEXT: shrb $2, %al
2031 ; AVX512BW-NEXT: mulb %cl
2032 ; AVX512BW-NEXT: subb %al, %dl
2033 ; AVX512BW-NEXT: movzbl %dl, %eax
2034 ; AVX512BW-NEXT: vpinsrb $10, %eax, %xmm3, %xmm3
2035 ; AVX512BW-NEXT: vpextrb $11, %xmm0, %edx
2036 ; AVX512BW-NEXT: imull $37, %edx, %esi
2037 ; AVX512BW-NEXT: shrl $8, %esi
2038 ; AVX512BW-NEXT: movl %edx, %eax
2039 ; AVX512BW-NEXT: subb %sil, %al
2040 ; AVX512BW-NEXT: shrb %al
2041 ; AVX512BW-NEXT: addb %sil, %al
2042 ; AVX512BW-NEXT: shrb $2, %al
2043 ; AVX512BW-NEXT: mulb %cl
2044 ; AVX512BW-NEXT: subb %al, %dl
2045 ; AVX512BW-NEXT: movzbl %dl, %eax
2046 ; AVX512BW-NEXT: vpinsrb $11, %eax, %xmm3, %xmm3
2047 ; AVX512BW-NEXT: vpextrb $12, %xmm0, %edx
2048 ; AVX512BW-NEXT: imull $37, %edx, %esi
2049 ; AVX512BW-NEXT: shrl $8, %esi
2050 ; AVX512BW-NEXT: movl %edx, %eax
2051 ; AVX512BW-NEXT: subb %sil, %al
2052 ; AVX512BW-NEXT: shrb %al
2053 ; AVX512BW-NEXT: addb %sil, %al
2054 ; AVX512BW-NEXT: shrb $2, %al
2055 ; AVX512BW-NEXT: mulb %cl
2056 ; AVX512BW-NEXT: subb %al, %dl
2057 ; AVX512BW-NEXT: movzbl %dl, %eax
2058 ; AVX512BW-NEXT: vpinsrb $12, %eax, %xmm3, %xmm3
2059 ; AVX512BW-NEXT: vpextrb $13, %xmm0, %edx
2060 ; AVX512BW-NEXT: imull $37, %edx, %esi
2061 ; AVX512BW-NEXT: shrl $8, %esi
2062 ; AVX512BW-NEXT: movl %edx, %eax
2063 ; AVX512BW-NEXT: subb %sil, %al
2064 ; AVX512BW-NEXT: shrb %al
2065 ; AVX512BW-NEXT: addb %sil, %al
2066 ; AVX512BW-NEXT: shrb $2, %al
2067 ; AVX512BW-NEXT: mulb %cl
2068 ; AVX512BW-NEXT: subb %al, %dl
2069 ; AVX512BW-NEXT: movzbl %dl, %eax
2070 ; AVX512BW-NEXT: vpinsrb $13, %eax, %xmm3, %xmm3
2071 ; AVX512BW-NEXT: vpextrb $14, %xmm0, %edx
2072 ; AVX512BW-NEXT: imull $37, %edx, %esi
2073 ; AVX512BW-NEXT: shrl $8, %esi
2074 ; AVX512BW-NEXT: movl %edx, %eax
2075 ; AVX512BW-NEXT: subb %sil, %al
2076 ; AVX512BW-NEXT: shrb %al
2077 ; AVX512BW-NEXT: addb %sil, %al
2078 ; AVX512BW-NEXT: shrb $2, %al
2079 ; AVX512BW-NEXT: mulb %cl
2080 ; AVX512BW-NEXT: subb %al, %dl
2081 ; AVX512BW-NEXT: movzbl %dl, %eax
2082 ; AVX512BW-NEXT: vpinsrb $14, %eax, %xmm3, %xmm3
2083 ; AVX512BW-NEXT: vpextrb $15, %xmm0, %edx
2084 ; AVX512BW-NEXT: imull $37, %edx, %esi
2085 ; AVX512BW-NEXT: shrl $8, %esi
2086 ; AVX512BW-NEXT: movl %edx, %eax
2087 ; AVX512BW-NEXT: subb %sil, %al
2088 ; AVX512BW-NEXT: shrb %al
2089 ; AVX512BW-NEXT: addb %sil, %al
2090 ; AVX512BW-NEXT: shrb $2, %al
2091 ; AVX512BW-NEXT: mulb %cl
2092 ; AVX512BW-NEXT: subb %al, %dl
2093 ; AVX512BW-NEXT: movzbl %dl, %eax
2094 ; AVX512BW-NEXT: vpinsrb $15, %eax, %xmm3, %xmm0
2095 ; AVX512BW-NEXT: vinserti128 $1, %xmm2, %ymm0, %ymm0
2096 ; AVX512BW-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
2097 ; AVX512BW-NEXT: retq