Lines Matching full:4
356 ; CHECK-NEXT: movi v2.4s, #127, msl #8
359 ; CHECK-NEXT: fcvtn2 v0.4s, v1.2d
360 ; CHECK-NEXT: movi v1.4s, #1
361 ; CHECK-NEXT: ushr v3.4s, v0.4s, #16
362 ; CHECK-NEXT: add v2.4s, v0.4s, v2.4s
364 ; CHECK-NEXT: fcmeq v3.4s, v0.4s, v0.4s
365 ; CHECK-NEXT: orr v0.4s, #64, lsl #16
366 ; CHECK-NEXT: add v1.4s, v1.4s, v2.4s
368 ; CHECK-NEXT: shrn v0.4h, v0.4s, #16
383 ; CHECK-NEXT: movi v2.4s, #127, msl #8
386 ; CHECK-NEXT: fcvtn2 v0.4s, v1.2d
387 ; CHECK-NEXT: movi v1.4s, #1
388 ; CHECK-NEXT: ushr v3.4s, v0.4s, #16
389 ; CHECK-NEXT: add v2.4s, v0.4s, v2.4s
391 ; CHECK-NEXT: fcmeq v3.4s, v0.4s, v0.4s
392 ; CHECK-NEXT: orr v0.4s, #64, lsl #16
393 ; CHECK-NEXT: add v1.4s, v1.4s, v2.4s
395 ; CHECK-NEXT: shrn v0.4h, v0.4s, #16
402 define <4 x bfloat> @stofp_v4i64_v4bf16(<4 x i64> %a) {
407 ; CHECK-NEXT: movi v2.4s, #127, msl #8
409 ; CHECK-NEXT: fcvtn2 v0.4s, v1.2d
410 ; CHECK-NEXT: movi v1.4s, #1
411 ; CHECK-NEXT: ushr v3.4s, v0.4s, #16
412 ; CHECK-NEXT: add v2.4s, v0.4s, v2.4s
414 ; CHECK-NEXT: fcmeq v3.4s, v0.4s, v0.4s
415 ; CHECK-NEXT: orr v0.4s, #64, lsl #16
416 ; CHECK-NEXT: add v1.4s, v1.4s, v2.4s
418 ; CHECK-NEXT: shrn v0.4h, v0.4s, #16
421 %c = sitofp <4 x i64> %a to <4 x bfloat>
422 ret <4 x bfloat> %c
425 define <4 x bfloat> @utofp_v4i64_v4bf16(<4 x i64> %a) {
430 ; CHECK-NEXT: movi v2.4s, #127, msl #8
432 ; CHECK-NEXT: fcvtn2 v0.4s, v1.2d
433 ; CHECK-NEXT: movi v1.4s, #1
434 ; CHECK-NEXT: ushr v3.4s, v0.4s, #16
435 ; CHECK-NEXT: add v2.4s, v0.4s, v2.4s
437 ; CHECK-NEXT: fcmeq v3.4s, v0.4s, v0.4s
438 ; CHECK-NEXT: orr v0.4s, #64, lsl #16
439 ; CHECK-NEXT: add v1.4s, v1.4s, v2.4s
441 ; CHECK-NEXT: shrn v0.4h, v0.4s, #16
444 %c = uitofp <4 x i64> %a to <4 x bfloat>
445 ret <4 x bfloat> %c
457 ; CHECK-NEXT: fcvtn2 v2.4s, v3.2d
458 ; CHECK-NEXT: fcvtn2 v0.4s, v1.2d
459 ; CHECK-NEXT: movi v1.4s, #1
460 ; CHECK-NEXT: movi v3.4s, #127, msl #8
461 ; CHECK-NEXT: ushr v4.4s, v2.4s, #16
462 ; CHECK-NEXT: ushr v5.4s, v0.4s, #16
463 ; CHECK-NEXT: add v6.4s, v2.4s, v3.4s
464 ; CHECK-NEXT: add v3.4s, v0.4s, v3.4s
467 ; CHECK-NEXT: fcmeq v5.4s, v2.4s, v2.4s
468 ; CHECK-NEXT: orr v2.4s, #64, lsl #16
469 ; CHECK-NEXT: add v4.4s, v4.4s, v6.4s
470 ; CHECK-NEXT: fcmeq v6.4s, v0.4s, v0.4s
471 ; CHECK-NEXT: add v1.4s, v1.4s, v3.4s
472 ; CHECK-NEXT: orr v0.4s, #64, lsl #16
491 ; CHECK-NEXT: fcvtn2 v2.4s, v3.2d
492 ; CHECK-NEXT: fcvtn2 v0.4s, v1.2d
493 ; CHECK-NEXT: movi v1.4s, #1
494 ; CHECK-NEXT: movi v3.4s, #127, msl #8
495 ; CHECK-NEXT: ushr v4.4s, v2.4s, #16
496 ; CHECK-NEXT: ushr v5.4s, v0.4s, #16
497 ; CHECK-NEXT: add v6.4s, v2.4s, v3.4s
498 ; CHECK-NEXT: add v3.4s, v0.4s, v3.4s
501 ; CHECK-NEXT: fcmeq v5.4s, v2.4s, v2.4s
502 ; CHECK-NEXT: orr v2.4s, #64, lsl #16
503 ; CHECK-NEXT: add v4.4s, v4.4s, v6.4s
504 ; CHECK-NEXT: fcmeq v6.4s, v0.4s, v0.4s
505 ; CHECK-NEXT: add v1.4s, v1.4s, v3.4s
506 ; CHECK-NEXT: orr v0.4s, #64, lsl #16
531 ; CHECK-NEXT: fcvtn2 v0.4s, v1.2d
532 ; CHECK-NEXT: fcvtn2 v2.4s, v3.2d
533 ; CHECK-NEXT: fcvtn2 v6.4s, v7.2d
534 ; CHECK-NEXT: fcvtn2 v4.4s, v5.2d
535 ; CHECK-NEXT: movi v1.4s, #1
536 ; CHECK-NEXT: movi v3.4s, #127, msl #8
537 ; CHECK-NEXT: ushr v7.4s, v0.4s, #16
538 ; CHECK-NEXT: ushr v5.4s, v2.4s, #16
539 ; CHECK-NEXT: ushr v16.4s, v6.4s, #16
540 ; CHECK-NEXT: ushr v17.4s, v4.4s, #16
541 ; CHECK-NEXT: add v19.4s, v0.4s, v3.4s
542 ; CHECK-NEXT: add v18.4s, v2.4s, v3.4s
543 ; CHECK-NEXT: add v20.4s, v6.4s, v3.4s
544 ; CHECK-NEXT: add v3.4s, v4.4s, v3.4s
549 ; CHECK-NEXT: fcmeq v17.4s, v2.4s, v2.4s
550 ; CHECK-NEXT: orr v2.4s, #64, lsl #16
551 ; CHECK-NEXT: add v7.4s, v7.4s, v19.4s
552 ; CHECK-NEXT: fcmeq v19.4s, v6.4s, v6.4s
553 ; CHECK-NEXT: add v5.4s, v5.4s, v18.4s
554 ; CHECK-NEXT: fcmeq v18.4s, v0.4s, v0.4s
555 ; CHECK-NEXT: add v1.4s, v1.4s, v3.4s
556 ; CHECK-NEXT: fcmeq v3.4s, v4.4s, v4.4s
557 ; CHECK-NEXT: add v16.4s, v16.4s, v20.4s
558 ; CHECK-NEXT: orr v0.4s, #64, lsl #16
559 ; CHECK-NEXT: orr v6.4s, #64, lsl #16
560 ; CHECK-NEXT: orr v4.4s, #64, lsl #16
589 ; CHECK-NEXT: fcvtn2 v0.4s, v1.2d
590 ; CHECK-NEXT: fcvtn2 v2.4s, v3.2d
591 ; CHECK-NEXT: fcvtn2 v6.4s, v7.2d
592 ; CHECK-NEXT: fcvtn2 v4.4s, v5.2d
593 ; CHECK-NEXT: movi v1.4s, #1
594 ; CHECK-NEXT: movi v3.4s, #127, msl #8
595 ; CHECK-NEXT: ushr v7.4s, v0.4s, #16
596 ; CHECK-NEXT: ushr v5.4s, v2.4s, #16
597 ; CHECK-NEXT: ushr v16.4s, v6.4s, #16
598 ; CHECK-NEXT: ushr v17.4s, v4.4s, #16
599 ; CHECK-NEXT: add v19.4s, v0.4s, v3.4s
600 ; CHECK-NEXT: add v18.4s, v2.4s, v3.4s
601 ; CHECK-NEXT: add v20.4s, v6.4s, v3.4s
602 ; CHECK-NEXT: add v3.4s, v4.4s, v3.4s
607 ; CHECK-NEXT: fcmeq v17.4s, v2.4s, v2.4s
608 ; CHECK-NEXT: orr v2.4s, #64, lsl #16
609 ; CHECK-NEXT: add v7.4s, v7.4s, v19.4s
610 ; CHECK-NEXT: fcmeq v19.4s, v6.4s, v6.4s
611 ; CHECK-NEXT: add v5.4s, v5.4s, v18.4s
612 ; CHECK-NEXT: fcmeq v18.4s, v0.4s, v0.4s
613 ; CHECK-NEXT: add v1.4s, v1.4s, v3.4s
614 ; CHECK-NEXT: fcmeq v3.4s, v4.4s, v4.4s
615 ; CHECK-NEXT: add v16.4s, v16.4s, v20.4s
616 ; CHECK-NEXT: orr v0.4s, #64, lsl #16
617 ; CHECK-NEXT: orr v6.4s, #64, lsl #16
618 ; CHECK-NEXT: orr v4.4s, #64, lsl #16
644 ; CHECK-NEXT: movi v16.4s, #1
652 ; CHECK-NEXT: movi v2.4s, #127, msl #8
654 ; CHECK-NEXT: fcvtn2 v0.4s, v19.2d
656 ; CHECK-NEXT: fcvtn2 v1.4s, v17.2d
657 ; CHECK-NEXT: fcvtn2 v3.4s, v6.2d
661 ; CHECK-NEXT: fcvtn2 v4.4s, v5.2d
665 ; CHECK-NEXT: ushr v24.4s, v0.4s, #16
666 ; CHECK-NEXT: add v5.4s, v0.4s, v2.4s
668 ; CHECK-NEXT: ushr v23.4s, v1.4s, #16
669 ; CHECK-NEXT: ushr v25.4s, v3.4s, #16
671 ; CHECK-NEXT: fcvtn2 v6.4s, v20.2d
672 ; CHECK-NEXT: add v26.4s, v1.4s, v2.4s
676 ; CHECK-NEXT: fcmeq v20.4s, v0.4s, v0.4s
678 ; CHECK-NEXT: orr v0.4s, #64, lsl #16
679 ; CHECK-NEXT: fcmeq v27.4s, v3.4s, v3.4s
680 ; CHECK-NEXT: fcvtn2 v18.4s, v7.2d
681 ; CHECK-NEXT: add v7.4s, v3.4s, v2.4s
682 ; CHECK-NEXT: orr v3.4s, #64, lsl #16
683 ; CHECK-NEXT: add v5.4s, v24.4s, v5.4s
685 ; CHECK-NEXT: ushr v25.4s, v4.4s, #16
686 ; CHECK-NEXT: fcvtn2 v22.4s, v19.2d
687 ; CHECK-NEXT: add v19.4s, v23.4s, v26.4s
688 ; CHECK-NEXT: ushr v26.4s, v6.4s, #16
689 ; CHECK-NEXT: fcvtn2 v17.4s, v21.2d
690 ; CHECK-NEXT: fcmeq v21.4s, v1.4s, v1.4s
691 ; CHECK-NEXT: orr v1.4s, #64, lsl #16
693 ; CHECK-NEXT: add v25.4s, v4.4s, v2.4s
694 ; CHECK-NEXT: add v7.4s, v24.4s, v7.4s
695 ; CHECK-NEXT: ushr v24.4s, v18.4s, #16
696 ; CHECK-NEXT: add v30.4s, v18.4s, v2.4s
698 ; CHECK-NEXT: ushr v28.4s, v22.4s, #16
699 ; CHECK-NEXT: add v31.4s, v22.4s, v2.4s
700 ; CHECK-NEXT: add v23.4s, v23.4s, v25.4s
702 ; CHECK-NEXT: add v26.4s, v6.4s, v2.4s
703 ; CHECK-NEXT: ushr v29.4s, v17.4s, #16
705 ; CHECK-NEXT: add v2.4s, v17.4s, v2.4s
709 ; CHECK-NEXT: add v25.4s, v25.4s, v26.4s
710 ; CHECK-NEXT: fcmeq v26.4s, v6.4s, v6.4s
711 ; CHECK-NEXT: orr v6.4s, #64, lsl #16
713 ; CHECK-NEXT: add v24.4s, v24.4s, v30.4s
714 ; CHECK-NEXT: fcmeq v30.4s, v18.4s, v18.4s
715 ; CHECK-NEXT: add v28.4s, v28.4s, v31.4s
716 ; CHECK-NEXT: fcmeq v31.4s, v22.4s, v22.4s
717 ; CHECK-NEXT: fcmeq v29.4s, v4.4s, v4.4s
718 ; CHECK-NEXT: orr v4.4s, #64, lsl #16
719 ; CHECK-NEXT: orr v18.4s, #64, lsl #16
720 ; CHECK-NEXT: orr v22.4s, #64, lsl #16
722 ; CHECK-NEXT: add v2.4s, v16.4s, v2.4s
723 ; CHECK-NEXT: fcmeq v16.4s, v17.4s, v17.4s
724 ; CHECK-NEXT: orr v17.4s, #64, lsl #16
754 ; CHECK-NEXT: movi v16.4s, #1
762 ; CHECK-NEXT: movi v2.4s, #127, msl #8
764 ; CHECK-NEXT: fcvtn2 v0.4s, v19.2d
766 ; CHECK-NEXT: fcvtn2 v1.4s, v17.2d
767 ; CHECK-NEXT: fcvtn2 v3.4s, v6.2d
771 ; CHECK-NEXT: fcvtn2 v4.4s, v5.2d
775 ; CHECK-NEXT: ushr v24.4s, v0.4s, #16
776 ; CHECK-NEXT: add v5.4s, v0.4s, v2.4s
778 ; CHECK-NEXT: ushr v23.4s, v1.4s, #16
779 ; CHECK-NEXT: ushr v25.4s, v3.4s, #16
781 ; CHECK-NEXT: fcvtn2 v6.4s, v20.2d
782 ; CHECK-NEXT: add v26.4s, v1.4s, v2.4s
786 ; CHECK-NEXT: fcmeq v20.4s, v0.4s, v0.4s
788 ; CHECK-NEXT: orr v0.4s, #64, lsl #16
789 ; CHECK-NEXT: fcmeq v27.4s, v3.4s, v3.4s
790 ; CHECK-NEXT: fcvtn2 v18.4s, v7.2d
791 ; CHECK-NEXT: add v7.4s, v3.4s, v2.4s
792 ; CHECK-NEXT: orr v3.4s, #64, lsl #16
793 ; CHECK-NEXT: add v5.4s, v24.4s, v5.4s
795 ; CHECK-NEXT: ushr v25.4s, v4.4s, #16
796 ; CHECK-NEXT: fcvtn2 v22.4s, v19.2d
797 ; CHECK-NEXT: add v19.4s, v23.4s, v26.4s
798 ; CHECK-NEXT: ushr v26.4s, v6.4s, #16
799 ; CHECK-NEXT: fcvtn2 v17.4s, v21.2d
800 ; CHECK-NEXT: fcmeq v21.4s, v1.4s, v1.4s
801 ; CHECK-NEXT: orr v1.4s, #64, lsl #16
803 ; CHECK-NEXT: add v25.4s, v4.4s, v2.4s
804 ; CHECK-NEXT: add v7.4s, v24.4s, v7.4s
805 ; CHECK-NEXT: ushr v24.4s, v18.4s, #16
806 ; CHECK-NEXT: add v30.4s, v18.4s, v2.4s
808 ; CHECK-NEXT: ushr v28.4s, v22.4s, #16
809 ; CHECK-NEXT: add v31.4s, v22.4s, v2.4s
810 ; CHECK-NEXT: add v23.4s, v23.4s, v25.4s
812 ; CHECK-NEXT: add v26.4s, v6.4s, v2.4s
813 ; CHECK-NEXT: ushr v29.4s, v17.4s, #16
815 ; CHECK-NEXT: add v2.4s, v17.4s, v2.4s
819 ; CHECK-NEXT: add v25.4s, v25.4s, v26.4s
820 ; CHECK-NEXT: fcmeq v26.4s, v6.4s, v6.4s
821 ; CHECK-NEXT: orr v6.4s, #64, lsl #16
823 ; CHECK-NEXT: add v24.4s, v24.4s, v30.4s
824 ; CHECK-NEXT: fcmeq v30.4s, v18.4s, v18.4s
825 ; CHECK-NEXT: add v28.4s, v28.4s, v31.4s
826 ; CHECK-NEXT: fcmeq v31.4s, v22.4s, v22.4s
827 ; CHECK-NEXT: fcmeq v29.4s, v4.4s, v4.4s
828 ; CHECK-NEXT: orr v4.4s, #64, lsl #16
829 ; CHECK-NEXT: orr v18.4s, #64, lsl #16
830 ; CHECK-NEXT: orr v22.4s, #64, lsl #16
832 ; CHECK-NEXT: add v2.4s, v16.4s, v2.4s
833 ; CHECK-NEXT: fcmeq v16.4s, v17.4s, v17.4s
834 ; CHECK-NEXT: orr v17.4s, #64, lsl #16
856 ; CHECK-NEXT: movi v1.4s, #1
857 ; CHECK-NEXT: scvtf v0.4s, v0.4s
858 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
860 ; CHECK-NEXT: movi v2.4s, #127, msl #8
861 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
862 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
873 ; CHECK-NEXT: movi v1.4s, #1
874 ; CHECK-NEXT: ucvtf v0.4s, v0.4s
875 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
877 ; CHECK-NEXT: movi v2.4s, #127, msl #8
878 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
879 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
889 ; CHECK-NEXT: scvtf v0.4s, v0.4s
890 ; CHECK-NEXT: movi v1.4s, #1
891 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
893 ; CHECK-NEXT: movi v2.4s, #127, msl #8
894 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
895 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
905 ; CHECK-NEXT: ucvtf v0.4s, v0.4s
906 ; CHECK-NEXT: movi v1.4s, #1
907 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
909 ; CHECK-NEXT: movi v2.4s, #127, msl #8
910 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
911 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
918 define <4 x bfloat> @stofp_v4i32_v4bf16(<4 x i32> %a) {
921 ; CHECK-NEXT: scvtf v0.4s, v0.4s
922 ; CHECK-NEXT: movi v1.4s, #1
923 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
925 ; CHECK-NEXT: movi v2.4s, #127, msl #8
926 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
927 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
930 %c = sitofp <4 x i32> %a to <4 x bfloat>
931 ret <4 x bfloat> %c
934 define <4 x bfloat> @utofp_v4i32_v4bf16(<4 x i32> %a) {
937 ; CHECK-NEXT: ucvtf v0.4s, v0.4s
938 ; CHECK-NEXT: movi v1.4s, #1
939 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
941 ; CHECK-NEXT: movi v2.4s, #127, msl #8
942 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
943 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
946 %c = uitofp <4 x i32> %a to <4 x bfloat>
947 ret <4 x bfloat> %c
953 ; CHECK-NEXT: scvtf v0.4s, v0.4s
954 ; CHECK-NEXT: movi v2.4s, #1
955 ; CHECK-NEXT: scvtf v1.4s, v1.4s
956 ; CHECK-NEXT: movi v5.4s, #127, msl #8
957 ; CHECK-NEXT: ushr v3.4s, v0.4s, #16
958 ; CHECK-NEXT: ushr v4.4s, v1.4s, #16
961 ; CHECK-NEXT: add v0.4s, v3.4s, v0.4s
962 ; CHECK-NEXT: add v1.4s, v2.4s, v1.4s
963 ; CHECK-NEXT: addhn v0.4h, v0.4s, v5.4s
964 ; CHECK-NEXT: addhn2 v0.8h, v1.4s, v5.4s
974 ; CHECK-NEXT: ucvtf v0.4s, v0.4s
975 ; CHECK-NEXT: movi v2.4s, #1
976 ; CHECK-NEXT: ucvtf v1.4s, v1.4s
977 ; CHECK-NEXT: movi v5.4s, #127, msl #8
978 ; CHECK-NEXT: ushr v3.4s, v0.4s, #16
979 ; CHECK-NEXT: ushr v4.4s, v1.4s, #16
982 ; CHECK-NEXT: add v0.4s, v3.4s, v0.4s
983 ; CHECK-NEXT: add v1.4s, v2.4s, v1.4s
984 ; CHECK-NEXT: addhn v0.4h, v0.4s, v5.4s
985 ; CHECK-NEXT: addhn2 v0.8h, v1.4s, v5.4s
995 ; CHECK-NEXT: scvtf v2.4s, v2.4s
996 ; CHECK-NEXT: scvtf v0.4s, v0.4s
997 ; CHECK-NEXT: scvtf v4.4s, v1.4s
998 ; CHECK-NEXT: movi v1.4s, #1
999 ; CHECK-NEXT: scvtf v3.4s, v3.4s
1000 ; CHECK-NEXT: movi v17.4s, #127, msl #8
1001 ; CHECK-NEXT: ushr v5.4s, v0.4s, #16
1002 ; CHECK-NEXT: ushr v6.4s, v2.4s, #16
1003 ; CHECK-NEXT: ushr v7.4s, v4.4s, #16
1004 ; CHECK-NEXT: ushr v16.4s, v3.4s, #16
1007 ; CHECK-NEXT: add v0.4s, v5.4s, v0.4s
1008 ; CHECK-NEXT: add v2.4s, v6.4s, v2.4s
1011 ; CHECK-NEXT: addhn v0.4h, v0.4s, v17.4s
1012 ; CHECK-NEXT: addhn v1.4h, v2.4s, v17.4s
1013 ; CHECK-NEXT: add v2.4s, v5.4s, v4.4s
1014 ; CHECK-NEXT: add v3.4s, v6.4s, v3.4s
1015 ; CHECK-NEXT: addhn2 v0.8h, v2.4s, v17.4s
1016 ; CHECK-NEXT: addhn2 v1.8h, v3.4s, v17.4s
1026 ; CHECK-NEXT: ucvtf v2.4s, v2.4s
1027 ; CHECK-NEXT: ucvtf v0.4s, v0.4s
1028 ; CHECK-NEXT: ucvtf v4.4s, v1.4s
1029 ; CHECK-NEXT: movi v1.4s, #1
1030 ; CHECK-NEXT: ucvtf v3.4s, v3.4s
1031 ; CHECK-NEXT: movi v17.4s, #127, msl #8
1032 ; CHECK-NEXT: ushr v5.4s, v0.4s, #16
1033 ; CHECK-NEXT: ushr v6.4s, v2.4s, #16
1034 ; CHECK-NEXT: ushr v7.4s, v4.4s, #16
1035 ; CHECK-NEXT: ushr v16.4s, v3.4s, #16
1038 ; CHECK-NEXT: add v0.4s, v5.4s, v0.4s
1039 ; CHECK-NEXT: add v2.4s, v6.4s, v2.4s
1042 ; CHECK-NEXT: addhn v0.4h, v0.4s, v17.4s
1043 ; CHECK-NEXT: addhn v1.4h, v2.4s, v17.4s
1044 ; CHECK-NEXT: add v2.4s, v5.4s, v4.4s
1045 ; CHECK-NEXT: add v3.4s, v6.4s, v3.4s
1046 ; CHECK-NEXT: addhn2 v0.8h, v2.4s, v17.4s
1047 ; CHECK-NEXT: addhn2 v1.8h, v3.4s, v17.4s
1057 ; CHECK-NEXT: scvtf v0.4s, v0.4s
1058 ; CHECK-NEXT: scvtf v2.4s, v2.4s
1059 ; CHECK-NEXT: scvtf v4.4s, v4.4s
1060 ; CHECK-NEXT: scvtf v6.4s, v6.4s
1061 ; CHECK-NEXT: movi v16.4s, #1
1062 ; CHECK-NEXT: scvtf v1.4s, v1.4s
1063 ; CHECK-NEXT: scvtf v17.4s, v3.4s
1064 ; CHECK-NEXT: scvtf v5.4s, v5.4s
1065 ; CHECK-NEXT: scvtf v7.4s, v7.4s
1066 ; CHECK-NEXT: movi v21.4s, #127, msl #8
1067 ; CHECK-NEXT: ushr v3.4s, v0.4s, #16
1068 ; CHECK-NEXT: ushr v18.4s, v2.4s, #16
1069 ; CHECK-NEXT: ushr v19.4s, v4.4s, #16
1070 ; CHECK-NEXT: ushr v20.4s, v6.4s, #16
1071 ; CHECK-NEXT: ushr v22.4s, v1.4s, #16
1072 ; CHECK-NEXT: ushr v23.4s, v17.4s, #16
1073 ; CHECK-NEXT: ushr v24.4s, v5.4s, #16
1074 ; CHECK-NEXT: ushr v25.4s, v7.4s, #16
1079 ; CHECK-NEXT: add v0.4s, v3.4s, v0.4s
1081 ; CHECK-NEXT: add v2.4s, v18.4s, v2.4s
1082 ; CHECK-NEXT: add v4.4s, v19.4s, v4.4s
1083 ; CHECK-NEXT: add v6.4s, v20.4s, v6.4s
1087 ; CHECK-NEXT: add v20.4s, v3.4s, v1.4s
1088 ; CHECK-NEXT: addhn v0.4h, v0.4s, v21.4s
1089 ; CHECK-NEXT: addhn v1.4h, v2.4s, v21.4s
1090 ; CHECK-NEXT: addhn v2.4h, v4.4s, v21.4s
1091 ; CHECK-NEXT: addhn v3.4h, v6.4s, v21.4s
1092 ; CHECK-NEXT: add v4.4s, v18.4s, v17.4s
1093 ; CHECK-NEXT: add v5.4s, v19.4s, v5.4s
1094 ; CHECK-NEXT: add v6.4s, v16.4s, v7.4s
1095 ; CHECK-NEXT: addhn2 v0.8h, v20.4s, v21.4s
1096 ; CHECK-NEXT: addhn2 v1.8h, v4.4s, v21.4s
1097 ; CHECK-NEXT: addhn2 v2.8h, v5.4s, v21.4s
1098 ; CHECK-NEXT: addhn2 v3.8h, v6.4s, v21.4s
1108 ; CHECK-NEXT: ucvtf v0.4s, v0.4s
1109 ; CHECK-NEXT: ucvtf v2.4s, v2.4s
1110 ; CHECK-NEXT: ucvtf v4.4s, v4.4s
1111 ; CHECK-NEXT: ucvtf v6.4s, v6.4s
1112 ; CHECK-NEXT: movi v16.4s, #1
1113 ; CHECK-NEXT: ucvtf v1.4s, v1.4s
1114 ; CHECK-NEXT: ucvtf v17.4s, v3.4s
1115 ; CHECK-NEXT: ucvtf v5.4s, v5.4s
1116 ; CHECK-NEXT: ucvtf v7.4s, v7.4s
1117 ; CHECK-NEXT: movi v21.4s, #127, msl #8
1118 ; CHECK-NEXT: ushr v3.4s, v0.4s, #16
1119 ; CHECK-NEXT: ushr v18.4s, v2.4s, #16
1120 ; CHECK-NEXT: ushr v19.4s, v4.4s, #16
1121 ; CHECK-NEXT: ushr v20.4s, v6.4s, #16
1122 ; CHECK-NEXT: ushr v22.4s, v1.4s, #16
1123 ; CHECK-NEXT: ushr v23.4s, v17.4s, #16
1124 ; CHECK-NEXT: ushr v24.4s, v5.4s, #16
1125 ; CHECK-NEXT: ushr v25.4s, v7.4s, #16
1130 ; CHECK-NEXT: add v0.4s, v3.4s, v0.4s
1132 ; CHECK-NEXT: add v2.4s, v18.4s, v2.4s
1133 ; CHECK-NEXT: add v4.4s, v19.4s, v4.4s
1134 ; CHECK-NEXT: add v6.4s, v20.4s, v6.4s
1138 ; CHECK-NEXT: add v20.4s, v3.4s, v1.4s
1139 ; CHECK-NEXT: addhn v0.4h, v0.4s, v21.4s
1140 ; CHECK-NEXT: addhn v1.4h, v2.4s, v21.4s
1141 ; CHECK-NEXT: addhn v2.4h, v4.4s, v21.4s
1142 ; CHECK-NEXT: addhn v3.4h, v6.4s, v21.4s
1143 ; CHECK-NEXT: add v4.4s, v18.4s, v17.4s
1144 ; CHECK-NEXT: add v5.4s, v19.4s, v5.4s
1145 ; CHECK-NEXT: add v6.4s, v16.4s, v7.4s
1146 ; CHECK-NEXT: addhn2 v0.8h, v20.4s, v21.4s
1147 ; CHECK-NEXT: addhn2 v1.8h, v4.4s, v21.4s
1148 ; CHECK-NEXT: addhn2 v2.8h, v5.4s, v21.4s
1149 ; CHECK-NEXT: addhn2 v3.8h, v6.4s, v21.4s
1159 ; CHECK-NEXT: uzp1 v0.4h, v0.4h, v0.4h
1160 ; CHECK-NEXT: movi v1.4s, #1
1161 ; CHECK-NEXT: sshll v0.4s, v0.4h, #0
1162 ; CHECK-NEXT: scvtf v0.4s, v0.4s
1163 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
1165 ; CHECK-NEXT: movi v2.4s, #127, msl #8
1166 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
1167 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
1177 ; CHECK-NEXT: uzp1 v0.4h, v0.4h, v0.4h
1178 ; CHECK-NEXT: movi v1.4s, #1
1179 ; CHECK-NEXT: ushll v0.4s, v0.4h, #0
1180 ; CHECK-NEXT: ucvtf v0.4s, v0.4s
1181 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
1183 ; CHECK-NEXT: movi v2.4s, #127, msl #8
1184 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
1185 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
1195 ; CHECK-NEXT: sshll v0.4s, v0.4h, #0
1196 ; CHECK-NEXT: movi v1.4s, #1
1197 ; CHECK-NEXT: scvtf v0.4s, v0.4s
1198 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
1200 ; CHECK-NEXT: movi v2.4s, #127, msl #8
1201 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
1202 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
1212 ; CHECK-NEXT: ushll v0.4s, v0.4h, #0
1213 ; CHECK-NEXT: movi v1.4s, #1
1214 ; CHECK-NEXT: ucvtf v0.4s, v0.4s
1215 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
1217 ; CHECK-NEXT: movi v2.4s, #127, msl #8
1218 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
1219 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
1226 define <4 x bfloat> @stofp_v4i16_v4bf16(<4 x i16> %a) {
1229 ; CHECK-NEXT: sshll v0.4s, v0.4h, #0
1230 ; CHECK-NEXT: movi v1.4s, #1
1231 ; CHECK-NEXT: scvtf v0.4s, v0.4s
1232 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
1234 ; CHECK-NEXT: movi v2.4s, #127, msl #8
1235 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
1236 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
1239 %c = sitofp <4 x i16> %a to <4 x bfloat>
1240 ret <4 x bfloat> %c
1243 define <4 x bfloat> @utofp_v4i16_v4bf16(<4 x i16> %a) {
1246 ; CHECK-NEXT: ushll v0.4s, v0.4h, #0
1247 ; CHECK-NEXT: movi v1.4s, #1
1248 ; CHECK-NEXT: ucvtf v0.4s, v0.4s
1249 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
1251 ; CHECK-NEXT: movi v2.4s, #127, msl #8
1252 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
1253 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
1256 %c = uitofp <4 x i16> %a to <4 x bfloat>
1257 ret <4 x bfloat> %c
1263 ; CHECK-NEXT: sshll v2.4s, v0.4h, #0
1264 ; CHECK-NEXT: sshll2 v0.4s, v0.8h, #0
1265 ; CHECK-NEXT: movi v1.4s, #1
1266 ; CHECK-NEXT: movi v4.4s, #127, msl #8
1267 ; CHECK-NEXT: scvtf v2.4s, v2.4s
1268 ; CHECK-NEXT: scvtf v3.4s, v0.4s
1269 ; CHECK-NEXT: ushr v0.4s, v2.4s, #16
1270 ; CHECK-NEXT: ushr v5.4s, v3.4s, #16
1273 ; CHECK-NEXT: add v0.4s, v0.4s, v4.4s
1274 ; CHECK-NEXT: add v1.4s, v1.4s, v4.4s
1275 ; CHECK-NEXT: addhn v0.4h, v2.4s, v0.4s
1276 ; CHECK-NEXT: addhn2 v0.8h, v3.4s, v1.4s
1286 ; CHECK-NEXT: ushll v2.4s, v0.4h, #0
1287 ; CHECK-NEXT: ushll2 v0.4s, v0.8h, #0
1288 ; CHECK-NEXT: movi v1.4s, #1
1289 ; CHECK-NEXT: movi v4.4s, #127, msl #8
1290 ; CHECK-NEXT: ucvtf v2.4s, v2.4s
1291 ; CHECK-NEXT: ucvtf v3.4s, v0.4s
1292 ; CHECK-NEXT: ushr v0.4s, v2.4s, #16
1293 ; CHECK-NEXT: ushr v5.4s, v3.4s, #16
1296 ; CHECK-NEXT: add v0.4s, v0.4s, v4.4s
1297 ; CHECK-NEXT: add v1.4s, v1.4s, v4.4s
1298 ; CHECK-NEXT: addhn v0.4h, v2.4s, v0.4s
1299 ; CHECK-NEXT: addhn2 v0.8h, v3.4s, v1.4s
1309 ; CHECK-NEXT: sshll v3.4s, v0.4h, #0
1310 ; CHECK-NEXT: sshll v4.4s, v1.4h, #0
1311 ; CHECK-NEXT: sshll2 v0.4s, v0.8h, #0
1312 ; CHECK-NEXT: sshll2 v1.4s, v1.8h, #0
1313 ; CHECK-NEXT: movi v2.4s, #1
1314 ; CHECK-NEXT: movi v7.4s, #127, msl #8
1315 ; CHECK-NEXT: scvtf v3.4s, v3.4s
1316 ; CHECK-NEXT: scvtf v4.4s, v4.4s
1317 ; CHECK-NEXT: scvtf v5.4s, v0.4s
1318 ; CHECK-NEXT: scvtf v6.4s, v1.4s
1319 ; CHECK-NEXT: ushr v0.4s, v3.4s, #16
1320 ; CHECK-NEXT: ushr v1.4s, v4.4s, #16
1321 ; CHECK-NEXT: ushr v16.4s, v5.4s, #16
1322 ; CHECK-NEXT: ushr v17.4s, v6.4s, #16
1327 ; CHECK-NEXT: add v0.4s, v0.4s, v7.4s
1328 ; CHECK-NEXT: add v1.4s, v1.4s, v7.4s
1329 ; CHECK-NEXT: add v2.4s, v2.4s, v7.4s
1330 ; CHECK-NEXT: addhn v0.4h, v3.4s, v0.4s
1331 ; CHECK-NEXT: addhn v1.4h, v4.4s, v1.4s
1332 ; CHECK-NEXT: add v3.4s, v16.4s, v7.4s
1333 ; CHECK-NEXT: addhn2 v0.8h, v5.4s, v3.4s
1334 ; CHECK-NEXT: addhn2 v1.8h, v6.4s, v2.4s
1344 ; CHECK-NEXT: ushll v3.4s, v0.4h, #0
1345 ; CHECK-NEXT: ushll v4.4s, v1.4h, #0
1346 ; CHECK-NEXT: ushll2 v0.4s, v0.8h, #0
1347 ; CHECK-NEXT: ushll2 v1.4s, v1.8h, #0
1348 ; CHECK-NEXT: movi v2.4s, #1
1349 ; CHECK-NEXT: movi v7.4s, #127, msl #8
1350 ; CHECK-NEXT: ucvtf v3.4s, v3.4s
1351 ; CHECK-NEXT: ucvtf v4.4s, v4.4s
1352 ; CHECK-NEXT: ucvtf v5.4s, v0.4s
1353 ; CHECK-NEXT: ucvtf v6.4s, v1.4s
1354 ; CHECK-NEXT: ushr v0.4s, v3.4s, #16
1355 ; CHECK-NEXT: ushr v1.4s, v4.4s, #16
1356 ; CHECK-NEXT: ushr v16.4s, v5.4s, #16
1357 ; CHECK-NEXT: ushr v17.4s, v6.4s, #16
1362 ; CHECK-NEXT: add v0.4s, v0.4s, v7.4s
1363 ; CHECK-NEXT: add v1.4s, v1.4s, v7.4s
1364 ; CHECK-NEXT: add v2.4s, v2.4s, v7.4s
1365 ; CHECK-NEXT: addhn v0.4h, v3.4s, v0.4s
1366 ; CHECK-NEXT: addhn v1.4h, v4.4s, v1.4s
1367 ; CHECK-NEXT: add v3.4s, v16.4s, v7.4s
1368 ; CHECK-NEXT: addhn2 v0.8h, v5.4s, v3.4s
1369 ; CHECK-NEXT: addhn2 v1.8h, v6.4s, v2.4s
1379 ; CHECK-NEXT: sshll v4.4s, v1.4h, #0
1380 ; CHECK-NEXT: sshll v5.4s, v0.4h, #0
1381 ; CHECK-NEXT: sshll v6.4s, v2.4h, #0
1382 ; CHECK-NEXT: sshll v7.4s, v3.4h, #0
1383 ; CHECK-NEXT: sshll2 v0.4s, v0.8h, #0
1384 ; CHECK-NEXT: sshll2 v1.4s, v1.8h, #0
1385 ; CHECK-NEXT: sshll2 v2.4s, v2.8h, #0
1386 ; CHECK-NEXT: sshll2 v3.4s, v3.8h, #0
1387 ; CHECK-NEXT: movi v16.4s, #1
1388 ; CHECK-NEXT: scvtf v5.4s, v5.4s
1389 ; CHECK-NEXT: scvtf v4.4s, v4.4s
1390 ; CHECK-NEXT: scvtf v6.4s, v6.4s
1391 ; CHECK-NEXT: scvtf v7.4s, v7.4s
1392 ; CHECK-NEXT: scvtf v17.4s, v0.4s
1393 ; CHECK-NEXT: scvtf v18.4s, v1.4s
1394 ; CHECK-NEXT: scvtf v19.4s, v2.4s
1395 ; CHECK-NEXT: scvtf v20.4s, v3.4s
1396 ; CHECK-NEXT: movi v21.4s, #127, msl #8
1397 ; CHECK-NEXT: ushr v0.4s, v5.4s, #16
1398 ; CHECK-NEXT: ushr v1.4s, v4.4s, #16
1399 ; CHECK-NEXT: ushr v2.4s, v6.4s, #16
1400 ; CHECK-NEXT: ushr v3.4s, v7.4s, #16
1401 ; CHECK-NEXT: ushr v22.4s, v17.4s, #16
1402 ; CHECK-NEXT: ushr v23.4s, v18.4s, #16
1403 ; CHECK-NEXT: ushr v24.4s, v19.4s, #16
1404 ; CHECK-NEXT: ushr v25.4s, v20.4s, #16
1413 ; CHECK-NEXT: add v0.4s, v0.4s, v21.4s
1414 ; CHECK-NEXT: add v1.4s, v1.4s, v21.4s
1415 ; CHECK-NEXT: add v2.4s, v2.4s, v21.4s
1416 ; CHECK-NEXT: add v3.4s, v3.4s, v21.4s
1417 ; CHECK-NEXT: addhn v0.4h, v5.4s, v0.4s
1418 ; CHECK-NEXT: addhn v1.4h, v4.4s, v1.4s
1419 ; CHECK-NEXT: addhn v2.4h, v6.4s, v2.4s
1420 ; CHECK-NEXT: addhn v3.4h, v7.4s, v3.4s
1421 ; CHECK-NEXT: add v4.4s, v22.4s, v21.4s
1422 ; CHECK-NEXT: add v5.4s, v23.4s, v21.4s
1423 ; CHECK-NEXT: add v6.4s, v24.4s, v21.4s
1424 ; CHECK-NEXT: add v7.4s, v16.4s, v21.4s
1425 ; CHECK-NEXT: addhn2 v0.8h, v17.4s, v4.4s
1426 ; CHECK-NEXT: addhn2 v1.8h, v18.4s, v5.4s
1427 ; CHECK-NEXT: addhn2 v2.8h, v19.4s, v6.4s
1428 ; CHECK-NEXT: addhn2 v3.8h, v20.4s, v7.4s
1438 ; CHECK-NEXT: ushll v4.4s, v1.4h, #0
1439 ; CHECK-NEXT: ushll v5.4s, v0.4h, #0
1440 ; CHECK-NEXT: ushll v6.4s, v2.4h, #0
1441 ; CHECK-NEXT: ushll v7.4s, v3.4h, #0
1442 ; CHECK-NEXT: ushll2 v0.4s, v0.8h, #0
1443 ; CHECK-NEXT: ushll2 v1.4s, v1.8h, #0
1444 ; CHECK-NEXT: ushll2 v2.4s, v2.8h, #0
1445 ; CHECK-NEXT: ushll2 v3.4s, v3.8h, #0
1446 ; CHECK-NEXT: movi v16.4s, #1
1447 ; CHECK-NEXT: ucvtf v5.4s, v5.4s
1448 ; CHECK-NEXT: ucvtf v4.4s, v4.4s
1449 ; CHECK-NEXT: ucvtf v6.4s, v6.4s
1450 ; CHECK-NEXT: ucvtf v7.4s, v7.4s
1451 ; CHECK-NEXT: ucvtf v17.4s, v0.4s
1452 ; CHECK-NEXT: ucvtf v18.4s, v1.4s
1453 ; CHECK-NEXT: ucvtf v19.4s, v2.4s
1454 ; CHECK-NEXT: ucvtf v20.4s, v3.4s
1455 ; CHECK-NEXT: movi v21.4s, #127, msl #8
1456 ; CHECK-NEXT: ushr v0.4s, v5.4s, #16
1457 ; CHECK-NEXT: ushr v1.4s, v4.4s, #16
1458 ; CHECK-NEXT: ushr v2.4s, v6.4s, #16
1459 ; CHECK-NEXT: ushr v3.4s, v7.4s, #16
1460 ; CHECK-NEXT: ushr v22.4s, v17.4s, #16
1461 ; CHECK-NEXT: ushr v23.4s, v18.4s, #16
1462 ; CHECK-NEXT: ushr v24.4s, v19.4s, #16
1463 ; CHECK-NEXT: ushr v25.4s, v20.4s, #16
1472 ; CHECK-NEXT: add v0.4s, v0.4s, v21.4s
1473 ; CHECK-NEXT: add v1.4s, v1.4s, v21.4s
1474 ; CHECK-NEXT: add v2.4s, v2.4s, v21.4s
1475 ; CHECK-NEXT: add v3.4s, v3.4s, v21.4s
1476 ; CHECK-NEXT: addhn v0.4h, v5.4s, v0.4s
1477 ; CHECK-NEXT: addhn v1.4h, v4.4s, v1.4s
1478 ; CHECK-NEXT: addhn v2.4h, v6.4s, v2.4s
1479 ; CHECK-NEXT: addhn v3.4h, v7.4s, v3.4s
1480 ; CHECK-NEXT: add v4.4s, v22.4s, v21.4s
1481 ; CHECK-NEXT: add v5.4s, v23.4s, v21.4s
1482 ; CHECK-NEXT: add v6.4s, v24.4s, v21.4s
1483 ; CHECK-NEXT: add v7.4s, v16.4s, v21.4s
1484 ; CHECK-NEXT: addhn2 v0.8h, v17.4s, v4.4s
1485 ; CHECK-NEXT: addhn2 v1.8h, v18.4s, v5.4s
1486 ; CHECK-NEXT: addhn2 v2.8h, v19.4s, v6.4s
1487 ; CHECK-NEXT: addhn2 v3.8h, v20.4s, v7.4s
1560 ; CHECK-NEXT: movi v1.4s, #1
1563 ; CHECK-NEXT: shl v0.4h, v0.4h, #8
1564 ; CHECK-NEXT: sshr v0.4h, v0.4h, #8
1565 ; CHECK-NEXT: sshll v0.4s, v0.4h, #0
1566 ; CHECK-NEXT: scvtf v0.4s, v0.4s
1567 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
1569 ; CHECK-NEXT: movi v2.4s, #127, msl #8
1570 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
1571 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
1582 ; CHECK-NEXT: movi v1.4s, #1
1585 ; CHECK-NEXT: bic v0.4h, #255, lsl #8
1586 ; CHECK-NEXT: ushll v0.4s, v0.4h, #0
1587 ; CHECK-NEXT: ucvtf v0.4s, v0.4s
1588 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
1590 ; CHECK-NEXT: movi v2.4s, #127, msl #8
1591 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
1592 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
1599 define <4 x bfloat> @stofp_v4i8_v4bf16(<4 x i8> %a) {
1602 ; CHECK-NEXT: shl v0.4h, v0.4h, #8
1603 ; CHECK-NEXT: movi v1.4s, #1
1604 ; CHECK-NEXT: sshr v0.4h, v0.4h, #8
1605 ; CHECK-NEXT: sshll v0.4s, v0.4h, #0
1606 ; CHECK-NEXT: scvtf v0.4s, v0.4s
1607 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
1609 ; CHECK-NEXT: movi v2.4s, #127, msl #8
1610 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
1611 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
1614 %c = sitofp <4 x i8> %a to <4 x bfloat>
1615 ret <4 x bfloat> %c
1618 define <4 x bfloat> @utofp_v4i8_v4bf16(<4 x i8> %a) {
1621 ; CHECK-NEXT: bic v0.4h, #255, lsl #8
1622 ; CHECK-NEXT: movi v1.4s, #1
1623 ; CHECK-NEXT: ushll v0.4s, v0.4h, #0
1624 ; CHECK-NEXT: ucvtf v0.4s, v0.4s
1625 ; CHECK-NEXT: ushr v2.4s, v0.4s, #16
1627 ; CHECK-NEXT: movi v2.4s, #127, msl #8
1628 ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s
1629 ; CHECK-NEXT: addhn v0.4h, v0.4s, v2.4s
1632 %c = uitofp <4 x i8> %a to <4 x bfloat>
1633 ret <4 x bfloat> %c
1640 ; CHECK-NEXT: movi v1.4s, #1
1641 ; CHECK-NEXT: movi v4.4s, #127, msl #8
1642 ; CHECK-NEXT: sshll v2.4s, v0.4h, #0
1643 ; CHECK-NEXT: sshll2 v0.4s, v0.8h, #0
1644 ; CHECK-NEXT: scvtf v2.4s, v2.4s
1645 ; CHECK-NEXT: scvtf v3.4s, v0.4s
1646 ; CHECK-NEXT: ushr v0.4s, v2.4s, #16
1647 ; CHECK-NEXT: ushr v5.4s, v3.4s, #16
1650 ; CHECK-NEXT: add v0.4s, v0.4s, v4.4s
1651 ; CHECK-NEXT: add v1.4s, v1.4s, v4.4s
1652 ; CHECK-NEXT: addhn v0.4h, v2.4s, v0.4s
1653 ; CHECK-NEXT: addhn2 v0.8h, v3.4s, v1.4s
1664 ; CHECK-NEXT: movi v1.4s, #1
1665 ; CHECK-NEXT: movi v4.4s, #127, msl #8
1666 ; CHECK-NEXT: ushll v2.4s, v0.4h, #0
1667 ; CHECK-NEXT: ushll2 v0.4s, v0.8h, #0
1668 ; CHECK-NEXT: ucvtf v2.4s, v2.4s
1669 ; CHECK-NEXT: ucvtf v3.4s, v0.4s
1670 ; CHECK-NEXT: ushr v0.4s, v2.4s, #16
1671 ; CHECK-NEXT: ushr v5.4s, v3.4s, #16
1674 ; CHECK-NEXT: add v0.4s, v0.4s, v4.4s
1675 ; CHECK-NEXT: add v1.4s, v1.4s, v4.4s
1676 ; CHECK-NEXT: addhn v0.4h, v2.4s, v0.4s
1677 ; CHECK-NEXT: addhn2 v0.8h, v3.4s, v1.4s
1689 ; CHECK-NEXT: movi v1.4s, #1
1690 ; CHECK-NEXT: movi v7.4s, #127, msl #8
1691 ; CHECK-NEXT: sshll v3.4s, v2.4h, #0
1692 ; CHECK-NEXT: sshll v4.4s, v0.4h, #0
1693 ; CHECK-NEXT: sshll2 v2.4s, v2.8h, #0
1694 ; CHECK-NEXT: sshll2 v0.4s, v0.8h, #0
1695 ; CHECK-NEXT: scvtf v3.4s, v3.4s
1696 ; CHECK-NEXT: scvtf v4.4s, v4.4s
1697 ; CHECK-NEXT: scvtf v2.4s, v2.4s
1698 ; CHECK-NEXT: scvtf v6.4s, v0.4s
1699 ; CHECK-NEXT: ushr v5.4s, v3.4s, #16
1700 ; CHECK-NEXT: ushr v0.4s, v4.4s, #16
1701 ; CHECK-NEXT: ushr v16.4s, v2.4s, #16
1702 ; CHECK-NEXT: ushr v17.4s, v6.4s, #16
1707 ; CHECK-NEXT: add v5.4s, v5.4s, v7.4s
1708 ; CHECK-NEXT: add v0.4s, v0.4s, v7.4s
1709 ; CHECK-NEXT: addhn v1.4h, v3.4s, v5.4s
1710 ; CHECK-NEXT: addhn v0.4h, v4.4s, v0.4s
1711 ; CHECK-NEXT: add v3.4s, v16.4s, v7.4s
1712 ; CHECK-NEXT: add v4.4s, v17.4s, v7.4s
1713 ; CHECK-NEXT: addhn2 v1.8h, v2.4s, v3.4s
1714 ; CHECK-NEXT: addhn2 v0.8h, v6.4s, v4.4s
1726 ; CHECK-NEXT: movi v1.4s, #1
1727 ; CHECK-NEXT: movi v7.4s, #127, msl #8
1728 ; CHECK-NEXT: ushll v3.4s, v2.4h, #0
1729 ; CHECK-NEXT: ushll v4.4s, v0.4h, #0
1730 ; CHECK-NEXT: ushll2 v2.4s, v2.8h, #0
1731 ; CHECK-NEXT: ushll2 v0.4s, v0.8h, #0
1732 ; CHECK-NEXT: ucvtf v3.4s, v3.4s
1733 ; CHECK-NEXT: ucvtf v4.4s, v4.4s
1734 ; CHECK-NEXT: ucvtf v2.4s, v2.4s
1735 ; CHECK-NEXT: ucvtf v6.4s, v0.4s
1736 ; CHECK-NEXT: ushr v5.4s, v3.4s, #16
1737 ; CHECK-NEXT: ushr v0.4s, v4.4s, #16
1738 ; CHECK-NEXT: ushr v16.4s, v2.4s, #16
1739 ; CHECK-NEXT: ushr v17.4s, v6.4s, #16
1744 ; CHECK-NEXT: add v5.4s, v5.4s, v7.4s
1745 ; CHECK-NEXT: add v0.4s, v0.4s, v7.4s
1746 ; CHECK-NEXT: addhn v1.4h, v3.4s, v5.4s
1747 ; CHECK-NEXT: addhn v0.4h, v4.4s, v0.4s
1748 ; CHECK-NEXT: add v3.4s, v16.4s, v7.4s
1749 ; CHECK-NEXT: add v4.4s, v17.4s, v7.4s
1750 ; CHECK-NEXT: addhn2 v1.8h, v2.4s, v3.4s
1751 ; CHECK-NEXT: addhn2 v0.8h, v6.4s, v4.4s
1765 ; CHECK-NEXT: movi v2.4s, #1
1766 ; CHECK-NEXT: movi v21.4s, #127, msl #8
1767 ; CHECK-NEXT: sshll v5.4s, v3.4h, #0
1768 ; CHECK-NEXT: sshll v6.4s, v0.4h, #0
1769 ; CHECK-NEXT: sshll v7.4s, v4.4h, #0
1770 ; CHECK-NEXT: sshll v16.4s, v1.4h, #0
1771 ; CHECK-NEXT: sshll2 v3.4s, v3.8h, #0
1772 ; CHECK-NEXT: sshll2 v4.4s, v4.8h, #0
1773 ; CHECK-NEXT: sshll2 v0.4s, v0.8h, #0
1774 ; CHECK-NEXT: sshll2 v1.4s, v1.8h, #0
1775 ; CHECK-NEXT: scvtf v5.4s, v5.4s
1776 ; CHECK-NEXT: scvtf v6.4s, v6.4s
1777 ; CHECK-NEXT: scvtf v7.4s, v7.4s
1778 ; CHECK-NEXT: scvtf v16.4s, v16.4s
1779 ; CHECK-NEXT: scvtf v17.4s, v3.4s
1780 ; CHECK-NEXT: scvtf v4.4s, v4.4s
1781 ; CHECK-NEXT: scvtf v18.4s, v0.4s
1782 ; CHECK-NEXT: scvtf v19.4s, v1.4s
1783 ; CHECK-NEXT: ushr v0.4s, v5.4s, #16
1784 ; CHECK-NEXT: ushr v3.4s, v6.4s, #16
1785 ; CHECK-NEXT: ushr v1.4s, v7.4s, #16
1786 ; CHECK-NEXT: ushr v20.4s, v16.4s, #16
1787 ; CHECK-NEXT: ushr v23.4s, v17.4s, #16
1788 ; CHECK-NEXT: ushr v24.4s, v4.4s, #16
1789 ; CHECK-NEXT: ushr v22.4s, v18.4s, #16
1790 ; CHECK-NEXT: ushr v25.4s, v19.4s, #16
1799 ; CHECK-NEXT: add v0.4s, v0.4s, v21.4s
1800 ; CHECK-NEXT: add v3.4s, v3.4s, v21.4s
1801 ; CHECK-NEXT: add v26.4s, v1.4s, v21.4s
1802 ; CHECK-NEXT: add v20.4s, v20.4s, v21.4s
1803 ; CHECK-NEXT: addhn v1.4h, v5.4s, v0.4s
1804 ; CHECK-NEXT: addhn v0.4h, v6.4s, v3.4s
1805 ; CHECK-NEXT: addhn v3.4h, v7.4s, v26.4s
1806 ; CHECK-NEXT: addhn v2.4h, v16.4s, v20.4s
1807 ; CHECK-NEXT: add v5.4s, v22.4s, v21.4s
1808 ; CHECK-NEXT: add v6.4s, v23.4s, v21.4s
1809 ; CHECK-NEXT: add v7.4s, v24.4s, v21.4s
1810 ; CHECK-NEXT: add v16.4s, v25.4s, v21.4s
1811 ; CHECK-NEXT: addhn2 v0.8h, v18.4s, v5.4s
1812 ; CHECK-NEXT: addhn2 v1.8h, v17.4s, v6.4s
1813 ; CHECK-NEXT: addhn2 v3.8h, v4.4s, v7.4s
1814 ; CHECK-NEXT: addhn2 v2.8h, v19.4s, v16.4s
1828 ; CHECK-NEXT: movi v2.4s, #1
1829 ; CHECK-NEXT: movi v21.4s, #127, msl #8
1830 ; CHECK-NEXT: ushll v5.4s, v3.4h, #0
1831 ; CHECK-NEXT: ushll v6.4s, v0.4h, #0
1832 ; CHECK-NEXT: ushll v7.4s, v4.4h, #0
1833 ; CHECK-NEXT: ushll v16.4s, v1.4h, #0
1834 ; CHECK-NEXT: ushll2 v3.4s, v3.8h, #0
1835 ; CHECK-NEXT: ushll2 v4.4s, v4.8h, #0
1836 ; CHECK-NEXT: ushll2 v0.4s, v0.8h, #0
1837 ; CHECK-NEXT: ushll2 v1.4s, v1.8h, #0
1838 ; CHECK-NEXT: ucvtf v5.4s, v5.4s
1839 ; CHECK-NEXT: ucvtf v6.4s, v6.4s
1840 ; CHECK-NEXT: ucvtf v7.4s, v7.4s
1841 ; CHECK-NEXT: ucvtf v16.4s, v16.4s
1842 ; CHECK-NEXT: ucvtf v17.4s, v3.4s
1843 ; CHECK-NEXT: ucvtf v4.4s, v4.4s
1844 ; CHECK-NEXT: ucvtf v18.4s, v0.4s
1845 ; CHECK-NEXT: ucvtf v19.4s, v1.4s
1846 ; CHECK-NEXT: ushr v0.4s, v5.4s, #16
1847 ; CHECK-NEXT: ushr v3.4s, v6.4s, #16
1848 ; CHECK-NEXT: ushr v1.4s, v7.4s, #16
1849 ; CHECK-NEXT: ushr v20.4s, v16.4s, #16
1850 ; CHECK-NEXT: ushr v23.4s, v17.4s, #16
1851 ; CHECK-NEXT: ushr v24.4s, v4.4s, #16
1852 ; CHECK-NEXT: ushr v22.4s, v18.4s, #16
1853 ; CHECK-NEXT: ushr v25.4s, v19.4s, #16
1862 ; CHECK-NEXT: add v0.4s, v0.4s, v21.4s
1863 ; CHECK-NEXT: add v3.4s, v3.4s, v21.4s
1864 ; CHECK-NEXT: add v26.4s, v1.4s, v21.4s
1865 ; CHECK-NEXT: add v20.4s, v20.4s, v21.4s
1866 ; CHECK-NEXT: addhn v1.4h, v5.4s, v0.4s
1867 ; CHECK-NEXT: addhn v0.4h, v6.4s, v3.4s
1868 ; CHECK-NEXT: addhn v3.4h, v7.4s, v26.4s
1869 ; CHECK-NEXT: addhn v2.4h, v16.4s, v20.4s
1870 ; CHECK-NEXT: add v5.4s, v22.4s, v21.4s
1871 ; CHECK-NEXT: add v6.4s, v23.4s, v21.4s
1872 ; CHECK-NEXT: add v7.4s, v24.4s, v21.4s
1873 ; CHECK-NEXT: add v16.4s, v25.4s, v21.4s
1874 ; CHECK-NEXT: addhn2 v0.8h, v18.4s, v5.4s
1875 ; CHECK-NEXT: addhn2 v1.8h, v17.4s, v6.4s
1876 ; CHECK-NEXT: addhn2 v3.8h, v4.4s, v7.4s
1877 ; CHECK-NEXT: addhn2 v2.8h, v19.4s, v16.4s