Lines Matching full: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)]>;
688 def X86any_cvttp2si : PatFrags<(ops node:$src),
689 [(X86strict_cvttp2si node:$src),
690 (X86cvttp2si node:$src)]>;
691 def X86any_cvttp2ui : PatFrags<(ops node:$src),
692 [(X86strict_cvttp2ui node:$src),
693 (X86cvttp2ui node:$src)]>;
699 def X86any_VSintToFP : PatFrags<(ops node:$src),
700 [(X86strict_VSintToFP node:$src),
701 (X86VSintToFP node:$src)]>;
702 def X86any_VUintToFP : PatFrags<(ops node:$src),
703 [(X86strict_VUintToFP node:$src),
704 (X86VUintToFP node:$src)]>;
738 def X86any_cvtph2ps : PatFrags<(ops node:$src),
739 [(X86strict_cvtph2ps node:$src),
740 (X86cvtph2ps node:$src)]>;
750 def X86any_cvtps2ph : PatFrags<(ops node:$src1, node:$src2),
751 [(X86strict_cvtps2ph node:$src1, node:$src2),
752 (X86cvtps2ph node:$src1, node:$src2)]>;
817 def loadv8f16 : PatFrag<(ops node:$ptr), (v8f16 (load node:$ptr))>;
818 def loadv8bf16 : PatFrag<(ops node:$ptr), (v8bf16 (load node:$ptr))>;
819 def loadv4f32 : PatFrag<(ops node:$ptr), (v4f32 (load node:$ptr))>;
820 def loadv2f64 : PatFrag<(ops node:$ptr), (v2f64 (load node:$ptr))>;
821 def loadv2i64 : PatFrag<(ops node:$ptr), (v2i64 (load node:$ptr))>;
822 def loadv4i32 : PatFrag<(ops node:$ptr), (v4i32 (load node:$ptr))>;
823 def loadv8i16 : PatFrag<(ops node:$ptr), (v8i16 (load node:$ptr))>;
824 def loadv16i8 : PatFrag<(ops node:$ptr), (v16i8 (load node:$ptr))>;
827 def loadv16f16 : PatFrag<(ops node:$ptr), (v16f16 (load node:$ptr))>;
828 def loadv16bf16 : PatFrag<(ops node:$ptr), (v16bf16 (load node:$ptr))>;
829 def loadv8f32 : PatFrag<(ops node:$ptr), (v8f32 (load node:$ptr))>;
830 def loadv4f64 : PatFrag<(ops node:$ptr), (v4f64 (load node:$ptr))>;
831 def loadv4i64 : PatFrag<(ops node:$ptr), (v4i64 (load node:$ptr))>;
832 def loadv8i32 : PatFrag<(ops node:$ptr), (v8i32 (load node:$ptr))>;
833 def loadv16i16 : PatFrag<(ops node:$ptr), (v16i16 (load node:$ptr))>;
834 def loadv32i8 : PatFrag<(ops node:$ptr), (v32i8 (load node:$ptr))>;
837 def loadv32f16 : PatFrag<(ops node:$ptr), (v32f16 (load node:$ptr))>;
838 def loadv32bf16 : PatFrag<(ops node:$ptr), (v32bf16 (load node:$ptr))>;
839 def loadv16f32 : PatFrag<(ops node:$ptr), (v16f32 (load node:$ptr))>;
840 def loadv8f64 : PatFrag<(ops node:$ptr), (v8f64 (load node:$ptr))>;
841 def loadv8i64 : PatFrag<(ops node:$ptr), (v8i64 (load node:$ptr))>;
842 def loadv16i32 : PatFrag<(ops node:$ptr), (v16i32 (load node:$ptr))>;
843 def loadv32i16 : PatFrag<(ops node:$ptr), (v32i16 (load node:$ptr))>;
844 def loadv64i8 : PatFrag<(ops node:$ptr), (v64i8 (load node:$ptr))>;
847 def extloadv2f32 : PatFrag<(ops node:$ptr), (extloadvf32 node:$ptr)>;
848 def extloadv4f32 : PatFrag<(ops node:$ptr), (extloadvf32 node:$ptr)>;
849 def extloadv8f32 : PatFrag<(ops node:$ptr), (extloadvf32 node:$ptr)>;
850 def extloadv2f16 : PatFrag<(ops node:$ptr), (extloadvf16 node:$ptr)>;
851 def extloadv4f16 : PatFrag<(ops node:$ptr), (extloadvf16 node:$ptr)>;
852 def extloadv8f16 : PatFrag<(ops node:$ptr), (extloadvf16 node:$ptr)>;
853 def extloadv16f16 : PatFrag<(ops node:$ptr), (extloadvf16 node:$ptr)>;
856 def alignedstore : PatFrag<(ops node:$val, node:$ptr),
857 (store node:$val, node:$ptr), [{
863 def alignedload : PatFrag<(ops node:$ptr), (load node:$ptr), [{
870 def alignedloadv8f16 : PatFrag<(ops node:$ptr),
871 (v8f16 (alignedload node:$ptr))>;
872 def alignedloadv8bf16 : PatFrag<(ops node:$ptr),
873 (v8bf16 (alignedload node:$ptr))>;
874 def alignedloadv4f32 : PatFrag<(ops node:$ptr),
875 (v4f32 (alignedload node:$ptr))>;
876 def alignedloadv2f64 : PatFrag<(ops node:$ptr),
877 (v2f64 (alignedload node:$ptr))>;
878 def alignedloadv2i64 : PatFrag<(ops node:$ptr),
879 (v2i64 (alignedload node:$ptr))>;
880 def alignedloadv4i32 : PatFrag<(ops node:$ptr),
881 (v4i32 (alignedload node:$ptr))>;
882 def alignedloadv8i16 : PatFrag<(ops node:$ptr),
883 (v8i16 (alignedload node:$ptr))>;
884 def alignedloadv16i8 : PatFrag<(ops node:$ptr),
885 (v16i8 (alignedload node:$ptr))>;
889 def alignedloadv16f16 : PatFrag<(ops node:$ptr),
890 (v16f16 (alignedload node:$ptr))>;
891 def alignedloadv16bf16 : PatFrag<(ops node:$ptr),
892 (v16bf16 (alignedload node:$ptr))>;
893 def alignedloadv8f32 : PatFrag<(ops node:$ptr),
894 (v8f32 (alignedload node:$ptr))>;
895 def alignedloadv4f64 : PatFrag<(ops node:$ptr),
896 (v4f64 (alignedload node:$ptr))>;
897 def alignedloadv4i64 : PatFrag<(ops node:$ptr),
898 (v4i64 (alignedload node:$ptr))>;
899 def alignedloadv8i32 : PatFrag<(ops node:$ptr),
900 (v8i32 (alignedload node:$ptr))>;
901 def alignedloadv16i16 : PatFrag<(ops node:$ptr),
902 (v16i16 (alignedload node:$ptr))>;
903 def alignedloadv32i8 : PatFrag<(ops node:$ptr),
904 (v32i8 (alignedload node:$ptr))>;
907 def alignedloadv32f16 : PatFrag<(ops node:$ptr),
908 (v32f16 (alignedload node:$ptr))>;
909 def alignedloadv32bf16 : PatFrag<(ops node:$ptr),
910 (v32bf16 (alignedload node:$ptr))>;
911 def alignedloadv16f32 : PatFrag<(ops node:$ptr),
912 (v16f32 (alignedload node:$ptr))>;
913 def alignedloadv8f64 : PatFrag<(ops node:$ptr),
914 (v8f64 (alignedload node:$ptr))>;
915 def alignedloadv8i64 : PatFrag<(ops node:$ptr),
916 (v8i64 (alignedload node:$ptr))>;
917 def alignedloadv16i32 : PatFrag<(ops node:$ptr),
918 (v16i32 (alignedload node:$ptr))>;
919 def alignedloadv32i16 : PatFrag<(ops node:$ptr),
920 (v32i16 (alignedload node:$ptr))>;
921 def alignedloadv64i8 : PatFrag<(ops node:$ptr),
922 (v64i8 (alignedload node:$ptr))>;
930 def memop : PatFrag<(ops node:$ptr), (load node:$ptr), [{
938 def memopv4f32 : PatFrag<(ops node:$ptr), (v4f32 (memop node:$ptr))>;
939 def memopv2f64 : PatFrag<(ops node:$ptr), (v2f64 (memop node:$ptr))>;
940 def memopv2i64 : PatFrag<(ops node:$ptr), (v2i64 (memop node:$ptr))>;
941 def memopv4i32 : PatFrag<(ops node:$ptr), (v4i32 (memop node:$ptr))>;
942 def memopv8i16 : PatFrag<(ops node:$ptr), (v8i16 (memop node:$ptr))>;
943 def memopv16i8 : PatFrag<(ops node:$ptr), (v16i8 (memop node:$ptr))>;
946 def bc_v4f32 : PatFrag<(ops node:$in), (v4f32 (bitconvert node:$in))>;
947 def bc_v2f64 : PatFrag<(ops node:$in), (v2f64 (bitconvert node:$in))>;
948 def bc_v16i8 : PatFrag<(ops node:$in), (v16i8 (bitconvert node:$in))>;
949 def bc_v8i16 : PatFrag<(ops node:$in), (v8i16 (bitconvert node:$in))>;
950 def bc_v4i32 : PatFrag<(ops node:$in), (v4i32 (bitconvert node:$in))>;
951 def bc_v2i64 : PatFrag<(ops node:$in), (v2i64 (bitconvert node:$in))>;
954 def bc_v32i8 : PatFrag<(ops node:$in), (v32i8 (bitconvert node:$in))>;
955 def bc_v16i16 : PatFrag<(ops node:$in), (v16i16 (bitconvert node:$in))>;
956 def bc_v8i32 : PatFrag<(ops node:$in), (v8i32 (bitconvert node:$in))>;
957 def bc_v4i64 : PatFrag<(ops node:$in), (v4i64 (bitconvert node:$in))>;
958 def bc_v8f32 : PatFrag<(ops node:$in), (v8f32 (bitconvert node:$in))>;
959 def bc_v4f64 : PatFrag<(ops node:$in), (v4f64 (bitconvert node:$in))>;
962 def bc_v64i8 : PatFrag<(ops node:$in), (v64i8 (bitconvert node:$in))>;
963 def bc_v32i16 : PatFrag<(ops node:$in), (v32i16 (bitconvert node:$in))>;
964 def bc_v16i32 : PatFrag<(ops node:$in), (v16i32 (bitconvert node:$in))>;
965 def bc_v8i64 : PatFrag<(ops node:$in), (v8i64 (bitconvert node:$in))>;
966 def bc_v8f64 : PatFrag<(ops node:$in), (v8f64 (bitconvert node:$in))>;
967 def bc_v16f32 : PatFrag<(ops node:$in), (v16f32 (bitconvert node:$in))>;
969 def X86vzload16 : PatFrag<(ops node:$src),
970 (X86vzld node:$src), [{
974 def X86vzload32 : PatFrag<(ops node:$src),
975 (X86vzld node:$src), [{
979 def X86vzload64 : PatFrag<(ops node:$src),
980 (X86vzld node:$src), [{
984 def X86vextractstore64 : PatFrag<(ops node:$val, node:$ptr),
985 (X86vextractst node:$val, node:$ptr), [{
989 def X86VBroadcastld8 : PatFrag<(ops node:$src),
990 (X86VBroadcastld node:$src), [{
994 def X86VBroadcastld16 : PatFrag<(ops node:$src),
995 (X86VBroadcastld node:$src), [{
999 def X86VBroadcastld32 : PatFrag<(ops node:$src),
1000 (X86VBroadcastld node:$src), [{
1004 def X86VBroadcastld64 : PatFrag<(ops node:$src),
1005 (X86VBroadcastld node:$src), [{
1009 def X86SubVBroadcastld128 : PatFrag<(ops node:$src),
1010 (X86SubVBroadcastld node:$src), [{
1014 def X86SubVBroadcastld256 : PatFrag<(ops node:$src),
1015 (X86SubVBroadcastld node:$src), [{
1024 def sse_load_f16 : PatFrags<(ops node:$ptr),
1025 [(v8f16 (simple_load node:$ptr)),
1026 (v8f16 (X86vzload16 node:$ptr)),
1027 (v8f16 (scalar_to_vector (loadf16 node:$ptr)))]>;
1028 def sse_load_f32 : PatFrags<(ops node:$ptr),
1029 [(v4f32 (simple_load node:$ptr)),
1030 (v4f32 (X86vzload32 node:$ptr)),
1031 (v4f32 (scalar_to_vector (loadf32 node:$ptr)))]>;
1032 def sse_load_f64 : PatFrags<(ops node:$ptr),
1033 [(v2f64 (simple_load node:$ptr)),
1034 (v2f64 (X86vzload64 node:$ptr)),
1035 (v2f64 (scalar_to_vector (loadf64 node:$ptr)))]>;
1083 def vextract128_extract : PatFrag<(ops node:$bigvec, node:$index),
1084 (extract_subvector node:$bigvec,
1085 node:$index), [{
1090 def vinsert128_insert : PatFrag<(ops node:$bigvec, node:$smallvec,
1091 node:$index),
1092 (insert_subvector node:$bigvec, node:$smallvec,
1093 node:$index), [{}],
1096 def vextract256_extract : PatFrag<(ops node:$bigvec, node:$index),
1097 (extract_subvector node:$bigvec,
1098 node:$index), [{
1103 def vinsert256_insert : PatFrag<(ops node:$bigvec, node:$smallvec,
1104 node:$index),
1105 (insert_subvector node:$bigvec, node:$smallvec,
1106 node:$index), [{}],
1109 def masked_load : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1110 (masked_ld node:$src1, undef, node:$src2, node:$src3), [{
1116 def masked_load_aligned : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1117 (masked_load node:$src1, node:$src2, node:$src3), [{
1118 // Use the node type to determine the size the alignment needs to match.
1119 // We can't use memory VT because type widening changes the node VT, but
1125 def X86mExpandingLoad : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1126 (masked_ld node:$src1, undef, node:$src2, node:$src3), [{
1134 def masked_store : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1135 (masked_st node:$src1, node:$src2, undef, node:$src3), [{
1141 def masked_store_aligned : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1142 (masked_store node:$src1, node:$src2, node:$src3), [{
1143 // Use the node type to determine the size the alignment needs to match.
1144 // We can't use memory VT because type widening changes the node VT, but
1150 def X86mCompressingStore : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1151 (masked_st node:$src1, node:$src2, undef, node:$src3), [{
1159 def X86mtruncstore : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1160 (masked_st node:$src1, node:$src2, undef, node:$src3), [{
1165 PatFrag<(ops node:$src1, node:$src2, node:$src3),
1166 (X86mtruncstore node:$src1, node:$src2, node:$src3), [{
1170 PatFrag<(ops node:$src1, node:$src2, node:$src3),
1171 (X86mtruncstore node:$src1, node:$src2, node:$src3), [{
1175 PatFrag<(ops node:$src1, node:$src2, node:$src3),
1176 (X86mtruncstore node:$src1, node:$src2, node:$src3), [{
1192 def truncstore_s_vi8 : PatFrag<(ops node:$val, node:$ptr),
1193 (X86TruncSStore node:$val, node:$ptr), [{
1197 def truncstore_us_vi8 : PatFrag<(ops node:$val, node:$ptr),
1198 (X86TruncUSStore node:$val, node:$ptr), [{
1202 def truncstore_s_vi16 : PatFrag<(ops node:$val, node:$ptr),
1203 (X86TruncSStore node:$val, node:$ptr), [{
1207 def truncstore_us_vi16 : PatFrag<(ops node:$val, node:$ptr),
1208 (X86TruncUSStore node:$val, node:$ptr), [{
1212 def truncstore_s_vi32 : PatFrag<(ops node:$val, node:$ptr),
1213 (X86TruncSStore node:$val, node:$ptr), [{
1217 def truncstore_us_vi32 : PatFrag<(ops node:$val, node:$ptr),
1218 (X86TruncUSStore node:$val, node:$ptr), [{
1222 def masked_truncstore_s_vi8 : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1223 (X86MTruncSStore node:$src1, node:$src2, node:$src3), [{
1227 def masked_truncstore_us_vi8 : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1228 (X86MTruncUSStore node:$src1, node:$src2, node:$src3), [{
1232 def masked_truncstore_s_vi16 : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1233 (X86MTruncSStore node:$src1, node:$src2, node:$src3), [{
1237 def masked_truncstore_us_vi16 : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1238 (X86MTruncUSStore node:$src1, node:$src2, node:$src3), [{
1242 def masked_truncstore_s_vi32 : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1243 (X86MTruncSStore node:$src1, node:$src2, node:$src3), [{
1247 def masked_truncstore_us_vi32 : PatFrag<(ops node:$src1, node:$src2, node:$src3),
1248 (X86MTruncUSStore node:$src1, node:$src2, node:$src3), [{
1252 def X86Vfpclasss_su : PatFrag<(ops node:$src1, node:$src2),
1253 (X86Vfpclasss node:$src1, node:$src2), [{
1257 def X86Vfpclass_su : PatFrag<(ops node:$src1, node:$src2),
1258 (X86Vfpclass node:$src1, node:$src2), [{
1263 def vandn : PatFrag<(ops node:$i0, node:$i1), (and (vnot node:$i0), node:$i1)>;
1264 def vxnor : PatFrag<(ops node:$i0, node:$i1), (vnot (xor node:$i0, node:$i1))>;
1268 def vselect_mask : PatFrag<(ops node:$mask, node:$src1, node:$src2),
1269 (vselect node:$mask, node:$src1, node:$src2), [{
1273 def X86selects_mask : PatFrag<(ops node:$mask, node:$src1, node:$src2),
1274 (X86selects node:$mask, node:$src1, node:$src2), [{
1278 def X86cmpms_su : PatFrag<(ops node:$src1, node:$src2, node:$cc),
1279 (X86cmpms node:$src1, node:$src2, node:$cc), [{
1282 def X86cmpmsSAE_su : PatFrag<(ops node:$src1, node:$src2, node:$cc),
1283 (X86cmpmsSAE node:$src1, node:$src2, node:$cc), [{
1290 def select_trunc : PatFrag<(ops node:$src, node:$src0, node:$mask),
1291 (vselect_mask node:$mask,
1292 (trunc node:$src), node:$src0)>;
1293 def select_truncs : PatFrag<(ops node:$src, node:$src0, node:$mask),
1294 (vselect_mask node:$mask,
1295 (X86vtruncs node:$src), node:$src0)>;
1296 def select_truncus : PatFrag<(ops node:$src, node:$src0, node:$mask),
1297 (vselect_mask node:$mask,
1298 (X86vtruncus node:$src), node:$src0)>;
1300 def X86Vpshufbitqmb_su : PatFrag<(ops node:$src1, node:$src2),
1301 (X86Vpshufbitqmb node:$src1, node:$src2), [{
1308 def X86pcmpgtm : PatFrag<(ops node:$src1, node:$src2),
1309 (setcc node:$src1, node:$src2, SETGT)>;
1325 def X86pcmpm : PatFrag<(ops node:$src1, node:$src2, node:$cc),
1326 (setcc node:$src1, node:$src2, node:$cc), [{
1331 def X86pcmpm_su : PatFrag<(ops node:$src1, node:$src2, node:$cc),
1332 (setcc node:$src1, node:$src2, node:$cc), [{
1337 def X86pcmpum : PatFrag<(ops node:$src1, node:$src2, node:$cc),
1338 (setcc node:$src1, node:$src2, node:$cc), [{
1343 def X86pcmpum_su : PatFrag<(ops node:$src1, node:$src2, node:$cc),
1344 (setcc node:$src1, node:$src2, node:$cc), [{
1349 def X86cmpm_su : PatFrag<(ops node:$src1, node:$src2, node:$cc),
1350 (X86cmpm node:$src1, node:$src2, node:$cc), [{
1359 def X86vpmaddwd_su : PatFrag<(ops node:$lhs, node:$rhs),
1360 (X86vpmaddwd node:$lhs, node:$rhs), [{