Lines Matching refs:node

28 def load_mmx : PatFrag<(ops node:$ptr), (x86mmx (load node:$ptr))>;
141 def X86any_vfpext : PatFrags<(ops node:$src),
142 [(X86strict_vfpext node:$src),
143 (X86vfpext node:$src)]>;
156 def X86any_vfpround : PatFrags<(ops node:$src),
157 [(X86strict_vfpround node:$src),
158 (X86vfpround node:$src)]>;
201 def X86any_cmpp : PatFrags<(ops node:$src1, node:$src2, node:$src3),
202 [(X86strict_cmpp node:$src1, node:$src2, node:$src3),
203 (X86cmpp node:$src1, node:$src2, node:$src3)]>;
220 def X86any_cmpm : PatFrags<(ops node:$src1, node:$src2, node:$src3),
221 [(X86strict_cmpm node:$src1, node:$src2, node:$src3),
222 (X86cmpm node:$src1, node:$src2, node:$src3)]>;
483 def X86any_VRndScale : PatFrags<(ops node:$src1, node:$src2),
484 [(X86strict_VRndScale node:$src1, node:$src2),
485 (X86VRndScale node:$src1, node:$src2)]>;
542 def X86any_Fnmadd : PatFrags<(ops node:$src1, node:$src2, node:$src3),
543 [(X86strict_Fnmadd node:$src1, node:$src2, node:$src3),
544 (X86Fnmadd node:$src1, node:$src2, node:$src3)]>;
547 def X86any_Fmsub : PatFrags<(ops node:$src1, node:$src2, node:$src3),
548 [(X86strict_Fmsub node:$src1, node:$src2, node:$src3),
549 (X86Fmsub node:$src1, node:$src2, node:$src3)]>;
552 def X86any_Fnmsub : PatFrags<(ops node:$src1, node:$src2, node:$src3),
553 [(X86strict_Fnmsub node:$src1, node:$src2, node:$src3),
554 (X86Fnmsub node:$src1, node:$src2, node:$src3)]>;
699 def X86any_cvttp2si : PatFrags<(ops node:$src),
700 [(X86strict_cvttp2si node:$src),
701 (X86cvttp2si node:$src)]>;
702 def X86any_cvttp2ui : PatFrags<(ops node:$src),
703 [(X86strict_cvttp2ui node:$src),
704 (X86cvttp2ui node:$src)]>;
710 def X86any_VSintToFP : PatFrags<(ops node:$src),
711 [(X86strict_VSintToFP node:$src),
712 (X86VSintToFP node:$src)]>;
713 def X86any_VUintToFP : PatFrags<(ops node:$src),
714 [(X86strict_VUintToFP node:$src),
715 (X86VUintToFP node:$src)]>;
749 def X86any_cvtph2ps : PatFrags<(ops node:$src),
750 [(X86strict_cvtph2ps node:$src),
751 (X86cvtph2ps node:$src)]>;
761 def X86any_cvtps2ph : PatFrags<(ops node:$src1, node:$src2),
762 [(X86strict_cvtps2ph node:$src1, node:$src2),
763 (X86cvtps2ph node:$src1, node:$src2)]>;
828 def loadv8f16 : PatFrag<(ops node:$ptr), (v8f16 (load node:$ptr))>;
829 def loadv8bf16 : PatFrag<(ops node:$ptr), (v8bf16 (load node:$ptr))>;
830 def loadv4f32 : PatFrag<(ops node:$ptr), (v4f32 (load node:$ptr))>;
831 def loadv2f64 : PatFrag<(ops node:$ptr), (v2f64 (load node:$ptr))>;
832 def loadv2i64 : PatFrag<(ops node:$ptr), (v2i64 (load node:$ptr))>;
833 def loadv4i32 : PatFrag<(ops node:$ptr), (v4i32 (load node:$ptr))>;
834 def loadv8i16 : PatFrag<(ops node:$ptr), (v8i16 (load node:$ptr))>;
835 def loadv16i8 : PatFrag<(ops node:$ptr), (v16i8 (load node:$ptr))>;
838 def loadv16f16 : PatFrag<(ops node:$ptr), (v16f16 (load node:$ptr))>;
839 def loadv16bf16 : PatFrag<(ops node:$ptr), (v16bf16 (load node:$ptr))>;
840 def loadv8f32 : PatFrag<(ops node:$ptr), (v8f32 (load node:$ptr))>;
841 def loadv4f64 : PatFrag<(ops node:$ptr), (v4f64 (load node:$ptr))>;
842 def loadv4i64 : PatFrag<(ops node:$ptr), (v4i64 (load node:$ptr))>;
843 def loadv8i32 : PatFrag<(ops node:$ptr), (v8i32 (load node:$ptr))>;
844 def loadv16i16 : PatFrag<(ops node:$ptr), (v16i16 (load node:$ptr))>;
845 def loadv32i8 : PatFrag<(ops node:$ptr), (v32i8 (load node:$ptr))>;
848 def loadv32f16 : PatFrag<(ops node:$ptr), (v32f16 (load node:$ptr))>;
849 def loadv32bf16 : PatFrag<(ops node:$ptr), (v32bf16 (load node:$ptr))>;
850 def loadv16f32 : PatFrag<(ops node:$ptr), (v16f32 (load node:$ptr))>;
851 def loadv8f64 : PatFrag<(ops node:$ptr), (v8f64 (load node:$ptr))>;
852 def loadv8i64 : PatFrag<(ops node:$ptr), (v8i64 (load node:$ptr))>;
853 def loadv16i32 : PatFrag<(ops node:$ptr), (v16i32 (load node:$ptr))>;
854 def loadv32i16 : PatFrag<(ops node:$ptr), (v32i16 (load node:$ptr))>;
855 def loadv64i8 : PatFrag<(ops node:$ptr), (v64i8 (load node:$ptr))>;
858 def extloadv2f32 : PatFrag<(ops node:$ptr), (extloadvf32 node:$ptr)>;
859 def extloadv4f32 : PatFrag<(ops node:$ptr), (extloadvf32 node:$ptr)>;
860 def extloadv8f32 : PatFrag<(ops node:$ptr), (extloadvf32 node:$ptr)>;
861 def extloadv2f16 : PatFrag<(ops node:$ptr), (extloadvf16 node:$ptr)>;
862 def extloadv4f16 : PatFrag<(ops node:$ptr), (extloadvf16 node:$ptr)>;
863 def extloadv8f16 : PatFrag<(ops node:$ptr), (extloadvf16 node:$ptr)>;
864 def extloadv16f16 : PatFrag<(ops node:$ptr), (extloadvf16 node:$ptr)>;
867 def alignedstore : PatFrag<(ops node:$val, node:$ptr),
868 (store node:$val, node:$ptr), [{
874 def alignedload : PatFrag<(ops node:$ptr), (load node:$ptr), [{
881 def alignedloadv8f16 : PatFrag<(ops node:$ptr),
882 (v8f16 (alignedload node:$ptr))>;
883 def alignedloadv8bf16 : PatFrag<(ops node:$ptr),
884 (v8bf16 (alignedload node:$ptr))>;
885 def alignedloadv4f32 : PatFrag<(ops node:$ptr),
886 (v4f32 (alignedload node:$ptr))>;
887 def alignedloadv2f64 : PatFrag<(ops node:$ptr),
888 (v2f64 (alignedload node:$ptr))>;
889 def alignedloadv2i64 : PatFrag<(ops node:$ptr),
890 (v2i64 (alignedload node:$ptr))>;
891 def alignedloadv4i32 : PatFrag<(ops node:$ptr),
892 (v4i32 (alignedload node:$ptr))>;
893 def alignedloadv8i16 : PatFrag<(ops node:$ptr),
894 (v8i16 (alignedload node:$ptr))>;
895 def alignedloadv16i8 : PatFrag<(ops node:$ptr),
896 (v16i8 (alignedload node:$ptr))>;
900 def alignedloadv16f16 : PatFrag<(ops node:$ptr),
901 (v16f16 (alignedload node:$ptr))>;
902 def alignedloadv16bf16 : PatFrag<(ops node:$ptr),
903 (v16bf16 (alignedload node:$ptr))>;
904 def alignedloadv8f32 : PatFrag<(ops node:$ptr),
905 (v8f32 (alignedload node:$ptr))>;
906 def alignedloadv4f64 : PatFrag<(ops node:$ptr),
907 (v4f64 (alignedload node:$ptr))>;
908 def alignedloadv4i64 : PatFrag<(ops node:$ptr),
909 (v4i64 (alignedload node:$ptr))>;
910 def alignedloadv8i32 : PatFrag<(ops node:$ptr),
911 (v8i32 (alignedload node:$ptr))>;
912 def alignedloadv16i16 : PatFrag<(ops node:$ptr),
913 (v16i16 (alignedload node:$ptr))>;
914 def alignedloadv32i8 : PatFrag<(ops node:$ptr),
915 (v32i8 (alignedload node:$ptr))>;
918 def alignedloadv32f16 : PatFrag<(ops node:$ptr),
919 (v32f16 (alignedload node:$ptr))>;
920 def alignedloadv32bf16 : PatFrag<(ops node:$ptr),
921 (v32bf16 (alignedload node:$ptr))>;
922 def alignedloadv16f32 : PatFrag<(ops node:$ptr),
923 (v16f32 (alignedload node:$ptr))>;
924 def alignedloadv8f64 : PatFrag<(ops node:$ptr),
925 (v8f64 (alignedload node:$ptr))>;
926 def alignedloadv8i64 : PatFrag<(ops node:$ptr),
927 (v8i64 (alignedload node:$ptr))>;
928 def alignedloadv16i32 : PatFrag<(ops node:$ptr),
929 (v16i32 (alignedload node:$ptr))>;
930 def alignedloadv32i16 : PatFrag<(ops node:$ptr),
931 (v32i16 (alignedload node:$ptr))>;
932 def alignedloadv64i8 : PatFrag<(ops node:$ptr),
933 (v64i8 (alignedload node:$ptr))>;
941 def memop : PatFrag<(ops node:$ptr), (load node:$ptr), [{
949 def memopv4f32 : PatFrag<(ops node:$ptr), (v4f32 (memop node:$ptr))>;
950 def memopv2f64 : PatFrag<(ops node:$ptr), (v2f64 (memop node:$ptr))>;
951 def memopv2i64 : PatFrag<(ops node:$ptr), (v2i64 (memop node:$ptr))>;
952 def memopv4i32 : PatFrag<(ops node:$ptr), (v4i32 (memop node:$ptr))>;
953 def memopv8i16 : PatFrag<(ops node:$ptr), (v8i16 (memop node:$ptr))>;
954 def memopv16i8 : PatFrag<(ops node:$ptr), (v16i8 (memop node:$ptr))>;
957 def bc_v4f32 : PatFrag<(ops node:$in), (v4f32 (bitconvert node:$in))>;
958 def bc_v2f64 : PatFrag<(ops node:$in), (v2f64 (bitconvert node:$in))>;
959 def bc_v16i8 : PatFrag<(ops node:$in), (v16i8 (bitconvert node:$in))>;
960 def bc_v8i16 : PatFrag<(ops node:$in), (v8i16 (bitconvert node:$in))>;
961 def bc_v4i32 : PatFrag<(ops node:$in), (v4i32 (bitconvert node:$in))>;
962 def bc_v2i64 : PatFrag<(ops node:$in), (v2i64 (bitconvert node:$in))>;
965 def bc_v32i8 : PatFrag<(ops node:$in), (v32i8 (bitconvert node:$in))>;
966 def bc_v16i16 : PatFrag<(ops node:$in), (v16i16 (bitconvert node:$in))>;
967 def bc_v8i32 : PatFrag<(ops node:$in), (v8i32 (bitconvert node:$in))>;
968 def bc_v4i64 : PatFrag<(ops node:$in), (v4i64 (bitconvert node:$in))>;
969 def bc_v8f32 : PatFrag<(ops node:$in), (v8f32 (bitconvert node:$in))>;
970 def bc_v4f64 : PatFrag<(ops node:$in), (v4f64 (bitconvert node:$in))>;
973 def bc_v64i8 : PatFrag<(ops node:$in), (v64i8 (bitconvert node:$in))>;
974 def bc_v32i16 : PatFrag<(ops node:$in), (v32i16 (bitconvert node:$in))>;
975 def bc_v16i32 : PatFrag<(ops node:$in), (v16i32 (bitconvert node:$in))>;
976 def bc_v8i64 : PatFrag<(ops node:$in), (v8i64 (bitconvert node:$in))>;
977 def bc_v8f64 : PatFrag<(ops node:$in), (v8f64 (bitconvert node:$in))>;
978 def bc_v16f32 : PatFrag<(ops node:$in), (v16f32 (bitconvert node:$in))>;
980 def X86vzload16 : PatFrag<(ops node:$src),
981 (X86vzld node:$src), [{
985 def X86vzload32 : PatFrag<(ops node:$src),
986 (X86vzld node:$src), [{
990 def X86vzload64 : PatFrag<(ops node:$src),
991 (X86vzld node:$src), [{
995 def X86vextractstore64 : PatFrag<(ops node:$val, node:$ptr),
996 (X86vextractst node:$val, node:$ptr), [{
1000 def X86VBroadcastld8 : PatFrag<(ops node:$src),
1001 (X86VBroadcastld node:$src), [{
1005 def X86VBroadcastld16 : PatFrag<(ops node:$src),
1006 (X86VBroadcastld node:$src), [{
1010 def X86VBroadcastld32 : PatFrag<(ops node:$src),
1011 (X86VBroadcastld node:$src), [{
1015 def X86VBroadcastld64 : PatFrag<(ops node:$src),
1016 (X86VBroadcastld node:$src), [{
1020 def X86SubVBroadcastld128 : PatFrag<(ops node:$src),
1021 (X86SubVBroadcastld node:$src), [{
1025 def X86SubVBroadcastld256 : PatFrag<(ops node:$src),
1026 (X86SubVBroadcastld node:$src), [{
1035 def sse_load_f16 : PatFrags<(ops node:$ptr),
1036 [(v8f16 (simple_load node:$ptr)),
1037 (v8f16 (X86vzload16 node:$ptr)),
1038 (v8f16 (scalar_to_vector (loadf16 node:$ptr)))]>;
1039 def sse_load_f32 : PatFrags<(ops node:$ptr),
1040 [(v4f32 (simple_load node:$ptr)),
1041 (v4f32 (X86vzload32 node:$ptr)),
1042 (v4f32 (scalar_to_vector (loadf32 node:$ptr)))]>;
1043 def sse_load_f64 : PatFrags<(ops node:$ptr),
1044 [(v2f64 (simple_load node:$ptr)),
1045 (v2f64 (X86vzload64 node:$ptr)),
1046 (v2f64 (scalar_to_vector (loadf64 node:$ptr)))]>;
1098 def vextract128_extract : PatFrag<(ops node:$bigvec, node:$index),
1099 (extract_subvector node:$bigvec,
1100 node:$index), [{
1105 def vinsert128_insert : PatFrag<(ops node:$bigvec, node:$smallvec,
1106 node:$index),
1107 (insert_subvector node:$bigvec, node:$smallvec,
1108 node:$index), [{}],
1111 def vextract256_extract : PatFrag<(ops node:$bigvec, node:$index),
1112 (extract_subvector node:$bigvec,
1113 node:$index), [{
1118 def vinsert256_insert : PatFrag<(ops node:$bigvec, node:$smallvec,
1119 node:$index),
1120 (insert_subvector node:$bigvec, node:$smallvec,
1121 node:$index), [{}],
1124 def masked_load : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1125 (masked_ld node:$src1, undef, node:$src2, node:$src3), [{
1131 def masked_load_aligned : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1132 (masked_load node:$src1, node:$src2, node:$src3), [{
1133 // Use the node type to determine the size the alignment needs to match.
1134 // We can't use memory VT because type widening changes the node VT, but
1140 def X86mExpandingLoad : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1141 (masked_ld node:$src1, undef, node:$src2, node:$src3), [{
1149 def masked_store : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1150 (masked_st node:$src1, node:$src2, undef, node:$src3), [{
1156 def masked_store_aligned : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1157 (masked_store node:$src1, node:$src2, node:$src3), [{
1158 // Use the node type to determine the size the alignment needs to match.
1159 // We can't use memory VT because type widening changes the node VT, but
1165 def X86mCompressingStore : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1166 (masked_st node:$src1, node:$src2, undef, node:$src3), [{
1174 def X86mtruncstore : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1175 (masked_st node:$src1, node:$src2, undef, node:$src3), [{
1180 PatFrag<(ops node:$src1, node:$src2, node:$src3),
1181 (X86mtruncstore node:$src1, node:$src2, node:$src3), [{
1185 PatFrag<(ops node:$src1, node:$src2, node:$src3),
1186 (X86mtruncstore node:$src1, node:$src2, node:$src3), [{
1190 PatFrag<(ops node:$src1, node:$src2, node:$src3),
1191 (X86mtruncstore node:$src1, node:$src2, node:$src3), [{
1207 def truncstore_s_vi8 : PatFrag<(ops node:$val, node:$ptr),
1208 (X86TruncSStore node:$val, node:$ptr), [{
1212 def truncstore_us_vi8 : PatFrag<(ops node:$val, node:$ptr),
1213 (X86TruncUSStore node:$val, node:$ptr), [{
1217 def truncstore_s_vi16 : PatFrag<(ops node:$val, node:$ptr),
1218 (X86TruncSStore node:$val, node:$ptr), [{
1222 def truncstore_us_vi16 : PatFrag<(ops node:$val, node:$ptr),
1223 (X86TruncUSStore node:$val, node:$ptr), [{
1227 def truncstore_s_vi32 : PatFrag<(ops node:$val, node:$ptr),
1228 (X86TruncSStore node:$val, node:$ptr), [{
1232 def truncstore_us_vi32 : PatFrag<(ops node:$val, node:$ptr),
1233 (X86TruncUSStore node:$val, node:$ptr), [{
1237 def masked_truncstore_s_vi8 : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1238 (X86MTruncSStore node:$src1, node:$src2, node:$src3), [{
1242 def masked_truncstore_us_vi8 : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1243 (X86MTruncUSStore node:$src1, node:$src2, node:$src3), [{
1247 def masked_truncstore_s_vi16 : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1248 (X86MTruncSStore node:$src1, node:$src2, node:$src3), [{
1252 def masked_truncstore_us_vi16 : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1253 (X86MTruncUSStore node:$src1, node:$src2, node:$src3), [{
1257 def masked_truncstore_s_vi32 : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1258 (X86MTruncSStore node:$src1, node:$src2, node:$src3), [{
1262 def masked_truncstore_us_vi32 : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1263 (X86MTruncUSStore node:$src1, node:$src2, node:$src3), [{