Lines Matching full:node

242 // Node definitions
475 def z_loadbswap16 : PatFrag<(ops node:$addr), (z_loadbswap node:$addr), [{
478 def z_loadbswap32 : PatFrag<(ops node:$addr), (z_loadbswap node:$addr), [{
481 def z_loadbswap64 : PatFrag<(ops node:$addr), (z_loadbswap node:$addr), [{
485 def z_storebswap16 : PatFrag<(ops node:$src, node:$addr),
486 (z_storebswap node:$src, node:$addr), [{
489 def z_storebswap32 : PatFrag<(ops node:$src, node:$addr),
490 (z_storebswap node:$src, node:$addr), [{
493 def z_storebswap64 : PatFrag<(ops node:$src, node:$addr),
494 (z_storebswap node:$src, node:$addr), [{
500 : PatFrag<(ops node:$valid, node:$mask, node:$bb),
501 (z_br_ccmask_1 node:$valid, node:$mask, node:$bb, CC)>;
503 : PatFrag<(ops node:$true, node:$false, node:$valid, node:$mask),
504 (z_select_ccmask_1 node:$true, node:$false,
505 node:$valid, node:$mask, CC)>;
507 def z_addcarry : PatFrag<(ops node:$lhs, node:$rhs),
508 (z_addcarry_1 node:$lhs, node:$rhs, CC)>;
509 def z_subcarry : PatFrag<(ops node:$lhs, node:$rhs),
510 (z_subcarry_1 node:$lhs, node:$rhs, CC)>;
513 def z_scmp : PatFrag<(ops node:$a, node:$b), (z_icmp node:$a, node:$b, timm), [{
517 def z_ucmp : PatFrag<(ops node:$a, node:$b), (z_icmp node:$a, node:$b, timm), [{
523 def z_tm_reg : PatFrag<(ops node:$a, node:$b), (z_tm node:$a, node:$b, timm)>;
524 def z_tm_mem : PatFrag<(ops node:$a, node:$b), (z_tm node:$a, node:$b, 0)>;
527 def sext8 : PatFrag<(ops node:$src), (sext_inreg node:$src, i8)>;
528 def sext16 : PatFrag<(ops node:$src), (sext_inreg node:$src, i16)>;
529 def sext32 : PatFrag<(ops node:$src), (sext (i32 node:$src))>;
533 def sext8dbl : PatFrag<(ops node:$src), (sext8 (anyext node:$src))>;
534 def sext16dbl : PatFrag<(ops node:$src), (sext16 (anyext node:$src))>;
537 def zext8 : PatFrag<(ops node:$src), (and node:$src, 0xff)>;
538 def zext16 : PatFrag<(ops node:$src), (and node:$src, 0xffff)>;
539 def zext32 : PatFrag<(ops node:$src), (zext (i32 node:$src))>;
542 def z_load : PatFrags<(ops node:$ptr),
543 [(load node:$ptr),
544 (atomic_load node:$ptr)], [{
552 def z_sextload : PatFrags<(ops node:$ptr),
553 [(unindexedload node:$ptr),
554 (atomic_load node:$ptr)], [{
557 def z_sextloadi8 : PatFrag<(ops node:$ptr), (z_sextload node:$ptr), [{
560 def z_sextloadi16 : PatFrag<(ops node:$ptr), (z_sextload node:$ptr), [{
563 def z_sextloadi32 : PatFrag<(ops node:$ptr), (z_sextload node:$ptr), [{
566 def z_sextloadi64 : PatFrag<(ops node:$ptr), (z_sextload node:$ptr), [{
571 def z_zextload : PatFrags<(ops node:$ptr),
572 [(unindexedload node:$ptr),
573 (atomic_load node:$ptr)], [{
576 def z_zextloadi8 : PatFrag<(ops node:$ptr), (z_zextload node:$ptr), [{
579 def z_zextloadi16 : PatFrag<(ops node:$ptr), (z_zextload node:$ptr), [{
582 def z_zextloadi32 : PatFrag<(ops node:$ptr), (z_zextload node:$ptr), [{
585 def z_zextloadi64 : PatFrag<(ops node:$ptr), (z_zextload node:$ptr), [{
590 def z_asextload : PatFrags<(ops node:$ptr),
591 [(unindexedload node:$ptr),
592 (atomic_load node:$ptr)], [{
596 def z_asextloadi8 : PatFrag<(ops node:$ptr), (z_asextload node:$ptr), [{
599 def z_asextloadi16 : PatFrag<(ops node:$ptr), (z_asextload node:$ptr), [{
602 def z_asextloadi32 : PatFrag<(ops node:$ptr), (z_asextload node:$ptr), [{
607 def z_azextload : PatFrags<(ops node:$ptr),
608 [(unindexedload node:$ptr),
609 (atomic_load node:$ptr)], [{
613 def z_azextloadi8 : PatFrag<(ops node:$ptr), (z_azextload node:$ptr), [{
616 def z_azextloadi16 : PatFrag<(ops node:$ptr), (z_azextload node:$ptr), [{
619 def z_azextloadi32 : PatFrag<(ops node:$ptr), (z_azextload node:$ptr), [{
624 def z_anyextload : PatFrags<(ops node:$ptr),
625 [(unindexedload node:$ptr),
626 (atomic_load node:$ptr)], [{
629 def z_anyextloadi8 : PatFrag<(ops node:$ptr), (z_anyextload node:$ptr), [{
632 def z_anyextloadi16 : PatFrag<(ops node:$ptr), (z_anyextload node:$ptr), [{
635 def z_anyextloadi32 : PatFrag<(ops node:$ptr), (z_anyextload node:$ptr), [{
638 def z_anyextloadi64 : PatFrag<(ops node:$ptr), (z_anyextload node:$ptr), [{
643 def anyextload : PatFrag<(ops node:$ptr), (unindexedload node:$ptr), [{
646 def anyextloadi8 : PatFrag<(ops node:$ptr), (anyextload node:$ptr), [{
649 def anyextloadi16 : PatFrag<(ops node:$ptr), (anyextload node:$ptr), [{
652 def anyextloadi32 : PatFrag<(ops node:$ptr), (anyextload node:$ptr), [{
657 def z_extload : PatFrags<(ops node:$ptr),
658 [(extload node:$ptr),
659 (atomic_load node:$ptr)], [{
662 def z_extloadi8 : PatFrag<(ops node:$ptr), (z_extload node:$ptr), [{
665 def z_extloadi16 : PatFrag<(ops node:$ptr), (z_extload node:$ptr), [{
668 def z_extloadi32 : PatFrag<(ops node:$ptr), (z_extload node:$ptr), [{
671 def z_extloadi64 : PatFrag<(ops node:$ptr), (z_extload node:$ptr), [{
676 def z_any_extloadf32 : PatFrags<(ops node:$ptr),
677 [(any_extloadf32 node:$ptr),
678 (any_fpextend (f32 (atomic_load node:$ptr)))]>;
679 def z_any_extloadf64 : PatFrags<(ops node:$ptr),
680 [(any_extloadf64 node:$ptr),
681 (any_fpextend (f64 (atomic_load node:$ptr)))]>;
685 : PatFrag<(ops node:$addr), (load node:$addr),
695 : PatFrag<(ops node:$src, node:$addr), (store node:$src, node:$addr),
704 : PatFrag<(ops node:$addr), (load node:$addr), [{
714 : PatFrag<(ops node:$src, node:$addr), (store node:$src, node:$addr), [{
723 def mvc_store : PatFrag<(ops node:$value, node:$addr),
724 (unindexedstore node:$value, node:$addr),
732 def "1" : PatFrag<(ops node:$value, node:$addr),
733 (unindexedstore (operator node:$value,
734 (unindexedload node:$addr)),
735 node:$addr),
737 def "2" : PatFrag<(ops node:$value, node:$addr),
738 (unindexedstore (operator (unindexedload node:$addr),
739 node:$value),
740 node:$addr),
748 def inserti8 : PatFrag<(ops node:$src1, node:$src2),
749 (or (and node:$src1, -256), node:$src2)>;
750 def insertll : PatFrag<(ops node:$src1, node:$src2),
751 (or (and node:$src1, 0xffffffffffff0000), node:$src2)>;
752 def insertlh : PatFrag<(ops node:$src1, node:$src2),
753 (or (and node:$src1, 0xffffffff0000ffff), node:$src2)>;
754 def inserthl : PatFrag<(ops node:$src1, node:$src2),
755 (or (and node:$src1, 0xffff0000ffffffff), node:$src2)>;
756 def inserthh : PatFrag<(ops node:$src1, node:$src2),
757 (or (and node:$src1, 0x0000ffffffffffff), node:$src2)>;
758 def insertlf : PatFrag<(ops node:$src1, node:$src2),
759 (or (and node:$src1, 0xffffffff00000000), node:$src2)>;
760 def inserthf : PatFrag<(ops node:$src1, node:$src2),
761 (or (and node:$src1, 0x00000000ffffffff), node:$src2)>;
764 def or_as_inserti8 : PatFrag<(ops node:$src1, node:$src2),
765 (or node:$src1, node:$src2), [{
772 def or_as_revinserti8 : PatFrag<(ops node:$src1, node:$src2),
773 (or node:$src1, node:$src2), [{
780 def z_inegabs : PatFrag<(ops node:$src), (ineg (abs node:$src))>;
783 def z_muladd : PatFrag<(ops node:$src1, node:$src2, node:$src3),
784 (add (mul node:$src1, node:$src2), node:$src3)>;
787 def z_sadd : PatFrags<(ops node:$src1, node:$src2),
788 [(z_saddo node:$src1, node:$src2),
789 (add node:$src1, node:$src2)]>;
790 def z_uadd : PatFrags<(ops node:$src1, node:$src2),
791 [(z_uaddo node:$src1, node:$src2),
792 (add node:$src1, node:$src2)]>;
793 def z_ssub : PatFrags<(ops node:$src1, node:$src2),
794 [(z_ssubo node:$src1, node:$src2),
795 (sub node:$src1, node:$src2)]>;
796 def z_usub : PatFrags<(ops node:$src1, node:$src2),
797 [(z_usubo node:$src1, node:$src2),
798 (sub node:$src1, node:$src2)]>;
801 def andc : PatFrag<(ops node:$src1, node:$src2),
802 (and node:$src1, (not node:$src2))>;
803 def orc : PatFrag<(ops node:$src1, node:$src2),
804 (or node:$src1, (not node:$src2))>;
805 def nand : PatFrag<(ops node:$src1, node:$src2),
806 (not (and node:$src1, node:$src2))>;
807 def nor : PatFrag<(ops node:$src1, node:$src2),
808 (not (or node:$src1, node:$src2))>;
809 def nxor : PatFrag<(ops node:$src1, node:$src2),
810 (not (xor node:$src1, node:$src2))>;
813 def any_fms : PatFrag<(ops node:$src1, node:$src2, node:$src3),
814 (any_fma node:$src1, node:$src2, (fneg node:$src3))>;
818 def z_any_fma : PatFrag<(ops node:$src1, node:$src2, node:$src3),
819 (any_fma node:$src2, node:$src3, node:$src1)>;
820 def z_any_fms : PatFrag<(ops node:$src1, node:$src2, node:$src3),
821 (any_fma node:$src2, node:$src3, (fneg node:$src1))>;
824 def any_fnma : PatFrag<(ops node:$src1, node:$src2, node:$src3),
825 (fneg (any_fma node:$src1, node:$src2, node:$src3))>;
826 def any_fnms : PatFrag<(ops node:$src1, node:$src2, node:$src3),
827 (fneg (any_fms node:$src1, node:$src2, node:$src3))>;
830 def fnabs : PatFrag<(ops node:$ptr), (fneg (fabs node:$ptr))>;
834 def z_any_fadd_noreassoc : PatFrag<(ops node:$src1, node:$src2),
835 (any_fadd node:$src1, node:$src2),
837 def z_any_fsub_noreassoc : PatFrag<(ops node:$src1, node:$src2),
838 (any_fsub node:$src1, node:$src2),
840 def z_any_fmul_noreassoc : PatFrag<(ops node:$src1, node:$src2),
841 (any_fmul node:$src1, node:$src2),
845 def z_any_fcmp : PatFrags<(ops node:$lhs, node:$rhs),
846 [(z_strict_fcmp node:$lhs, node:$rhs),
847 (z_fcmp node:$lhs, node:$rhs)]>;
848 def z_any_vfcmpe : PatFrags<(ops node:$lhs, node:$rhs),
849 [(z_strict_vfcmpe node:$lhs, node:$rhs),
850 (z_vfcmpe node:$lhs, node:$rhs)]>;
851 def z_any_vfcmph : PatFrags<(ops node:$lhs, node:$rhs),
852 [(z_strict_vfcmph node:$lhs, node:$rhs),
853 (z_vfcmph node:$lhs, node:$rhs)]>;
854 def z_any_vfcmphe : PatFrags<(ops node:$lhs, node:$rhs),
855 [(z_strict_vfcmphe node:$lhs, node:$rhs),
856 (z_vfcmphe node:$lhs, node:$rhs)]>;
857 def z_any_vextend : PatFrags<(ops node:$src),
858 [(z_strict_vextend node:$src),
859 (z_vextend node:$src)]>;
860 def z_any_vround : PatFrags<(ops node:$src),
861 [(z_strict_vround node:$src),
862 (z_vround node:$src)]>;
867 : PatFrag<(ops node:$addr), (operator (load node:$addr))>;
872 : PatFrag<(ops node:$value, node:$addr),
873 (store (operator node:$value), node:$addr)>;
878 : PatFrag<(ops node:$addr),
879 (store (operator), node:$addr)>;
887 : PatFrags<(ops node:$val, node:$count),
888 [(operator node:$val, node:$count),
889 (operator node:$val, (and node:$count, imm32bottom6set))]>;
897 : PatFrags<(ops node:$val, node:$count),
898 [(operator node:$val, node:$count),
899 (operator node:$val, (and node:$count, imm32bottom7set))]>;
914 : PatFrag<(ops node:$addr),
915 (z_replicate (scalartype (load node:$addr)))>;
929 : PatFrag<(ops node:$vec, node:$addr, node:$index),
930 (z_vector_insert node:$vec, (scalartype (load node:$addr)),
931 node:$index)>;
946 : PatFrag<(ops node:$addr),
948 (scalartype (load node:$addr)), (i32 index))>;
952 def z_vllezi64 : PatFrags<(ops node:$addr),
954 (i64 (z_load node:$addr)), (i32 0)),
955 (z_join_dwords (i64 (z_load node:$addr)), (i64 0))]>;
958 def z_vllezf32 : PatFrag<(ops node:$addr),
965 (f32 (z_load node:$addr)))))))),
968 def z_vllezf64 : PatFrag<(ops node:$addr),
970 (v2f64 (scalar_to_vector (f64 (z_load node:$addr)))),
975 def z_vllezlf32 : PatFrag<(ops node:$addr),
981 (f32 (z_load node:$addr)))),
990 def z_vllebrzi64 : PatFrags<(ops node:$addr),
992 (i64 (z_loadbswap64 node:$addr)),
994 (z_join_dwords (i64 (z_loadbswap64 node:$addr)),
1000 : PatFrag<(ops node:$vec, node:$addr, node:$index),
1001 (store (scalartype (z_vector_extract node:$vec, node:$index)),
1002 node:$addr)>;
1015 def z_vneg : PatFrag<(ops node:$x), (sub immAllZerosV, node:$x)>;
1018 def z_vnot : PatFrag<(ops node:$x), (xor node:$x, immAllOnesV)>;
1021 def z_vicmph_zero : PatFrag<(ops node:$x), (z_vicmph node:$x, immAllZerosV)>;
1024 def z_vicmpl_zero : PatFrag<(ops node:$x), (z_vicmph immAllZerosV, node:$x)>;
1028 : PatFrag<(ops node:$src),
1029 (z_vsra_by_scalar (z_vshl_by_scalar node:$src, shift), shift)>;
1036 : PatFrag<(ops node:$src),
1038 (operator (z_vector_extract node:$src, index1)),
1039 (operator (z_vector_extract node:$src, index2)))>;