@@ -11887,79 +11887,79 @@ multiclass LDOPregister<bits<3> opc, string op, bits<1> Acq, bits<1> Rel,
1188711887// complex DAG for DstRHS.
1188811888let Predicates = [HasLSE] in
1188911889multiclass LDOPregister_patterns_ord_dag<string inst, string suffix, string op,
11890- string size , dag SrcRHS, dag DstRHS> {
11891- def : Pat<(!cast<PatFrag>(op#"_"#size #"_monotonic") GPR64sp:$Rn, SrcRHS),
11890+ ValueType vt , dag SrcRHS, dag DstRHS> {
11891+ def : Pat<(!cast<PatFrag>(op#"_"#vt #"_monotonic") GPR64sp:$Rn, SrcRHS),
1189211892 (!cast<Instruction>(inst # suffix) DstRHS, GPR64sp:$Rn)>;
11893- def : Pat<(!cast<PatFrag>(op#"_"#size #"_acquire") GPR64sp:$Rn, SrcRHS),
11893+ def : Pat<(!cast<PatFrag>(op#"_"#vt #"_acquire") GPR64sp:$Rn, SrcRHS),
1189411894 (!cast<Instruction>(inst # "A" # suffix) DstRHS, GPR64sp:$Rn)>;
11895- def : Pat<(!cast<PatFrag>(op#"_"#size #"_release") GPR64sp:$Rn, SrcRHS),
11895+ def : Pat<(!cast<PatFrag>(op#"_"#vt #"_release") GPR64sp:$Rn, SrcRHS),
1189611896 (!cast<Instruction>(inst # "L" # suffix) DstRHS, GPR64sp:$Rn)>;
11897- def : Pat<(!cast<PatFrag>(op#"_"#size #"_acq_rel") GPR64sp:$Rn, SrcRHS),
11897+ def : Pat<(!cast<PatFrag>(op#"_"#vt #"_acq_rel") GPR64sp:$Rn, SrcRHS),
1189811898 (!cast<Instruction>(inst # "AL" # suffix) DstRHS, GPR64sp:$Rn)>;
11899- def : Pat<(!cast<PatFrag>(op#"_"#size #"_seq_cst") GPR64sp:$Rn, SrcRHS),
11899+ def : Pat<(!cast<PatFrag>(op#"_"#vt #"_seq_cst") GPR64sp:$Rn, SrcRHS),
1190011900 (!cast<Instruction>(inst # "AL" # suffix) DstRHS, GPR64sp:$Rn)>;
1190111901}
1190211902
1190311903multiclass LDOPregister_patterns_ord<string inst, string suffix, string op,
11904- string size , dag RHS> {
11905- defm : LDOPregister_patterns_ord_dag<inst, suffix, op, size , RHS, RHS>;
11904+ ValueType vt , dag RHS> {
11905+ defm : LDOPregister_patterns_ord_dag<inst, suffix, op, vt , RHS, RHS>;
1190611906}
1190711907
1190811908multiclass LDOPregister_patterns_ord_mod<string inst, string suffix, string op,
11909- string size , dag LHS, dag RHS> {
11910- defm : LDOPregister_patterns_ord_dag<inst, suffix, op, size , LHS, RHS>;
11909+ ValueType vt , dag LHS, dag RHS> {
11910+ defm : LDOPregister_patterns_ord_dag<inst, suffix, op, vt , LHS, RHS>;
1191111911}
1191211912
1191311913multiclass LDOPregister_patterns<string inst, string op> {
11914- defm : LDOPregister_patterns_ord<inst, "X", op, "64" , (i64 GPR64:$Rm)>;
11915- defm : LDOPregister_patterns_ord<inst, "W", op, "32" , (i32 GPR32:$Rm)>;
11916- defm : LDOPregister_patterns_ord<inst, "H", op, "16" , (i32 GPR32:$Rm)>;
11917- defm : LDOPregister_patterns_ord<inst, "B", op, "8" , (i32 GPR32:$Rm)>;
11914+ defm : LDOPregister_patterns_ord<inst, "X", op, i64 , (i64 GPR64:$Rm)>;
11915+ defm : LDOPregister_patterns_ord<inst, "W", op, i32 , (i32 GPR32:$Rm)>;
11916+ defm : LDOPregister_patterns_ord<inst, "H", op, i16 , (i32 GPR32:$Rm)>;
11917+ defm : LDOPregister_patterns_ord<inst, "B", op, i8 , (i32 GPR32:$Rm)>;
1191811918}
1191911919
1192011920multiclass LDOPregister_patterns_mod<string inst, string op, string mod> {
11921- defm : LDOPregister_patterns_ord_mod<inst, "X", op, "64" ,
11921+ defm : LDOPregister_patterns_ord_mod<inst, "X", op, i64 ,
1192211922 (i64 GPR64:$Rm),
1192311923 (i64 (!cast<Instruction>(mod#Xrr) XZR, GPR64:$Rm))>;
11924- defm : LDOPregister_patterns_ord_mod<inst, "W", op, "32" ,
11924+ defm : LDOPregister_patterns_ord_mod<inst, "W", op, i32 ,
1192511925 (i32 GPR32:$Rm),
1192611926 (i32 (!cast<Instruction>(mod#Wrr) WZR, GPR32:$Rm))>;
11927- defm : LDOPregister_patterns_ord_mod<inst, "H", op, "16" ,
11927+ defm : LDOPregister_patterns_ord_mod<inst, "H", op, i16 ,
1192811928 (i32 GPR32:$Rm),
1192911929 (i32 (!cast<Instruction>(mod#Wrr) WZR, GPR32:$Rm))>;
11930- defm : LDOPregister_patterns_ord_mod<inst, "B", op, "8" ,
11930+ defm : LDOPregister_patterns_ord_mod<inst, "B", op, i8 ,
1193111931 (i32 GPR32:$Rm),
1193211932 (i32 (!cast<Instruction>(mod#Wrr) WZR, GPR32:$Rm))>;
1193311933}
1193411934
1193511935let Predicates = [HasLSE] in
1193611936multiclass CASregister_patterns_ord_dag<string inst, string suffix, string op,
11937- string size , dag OLD, dag NEW> {
11938- def : Pat<(!cast<PatFrag>(op#"_"#size #"_monotonic") GPR64sp:$Rn, OLD, NEW),
11937+ ValueType vt , dag OLD, dag NEW> {
11938+ def : Pat<(!cast<PatFrag>(op#"_"#vt #"_monotonic") GPR64sp:$Rn, OLD, NEW),
1193911939 (!cast<Instruction>(inst # suffix) OLD, NEW, GPR64sp:$Rn)>;
11940- def : Pat<(!cast<PatFrag>(op#"_"#size #"_acquire") GPR64sp:$Rn, OLD, NEW),
11940+ def : Pat<(!cast<PatFrag>(op#"_"#vt #"_acquire") GPR64sp:$Rn, OLD, NEW),
1194111941 (!cast<Instruction>(inst # "A" # suffix) OLD, NEW, GPR64sp:$Rn)>;
11942- def : Pat<(!cast<PatFrag>(op#"_"#size #"_release") GPR64sp:$Rn, OLD, NEW),
11942+ def : Pat<(!cast<PatFrag>(op#"_"#vt #"_release") GPR64sp:$Rn, OLD, NEW),
1194311943 (!cast<Instruction>(inst # "L" # suffix) OLD, NEW, GPR64sp:$Rn)>;
11944- def : Pat<(!cast<PatFrag>(op#"_"#size #"_acq_rel") GPR64sp:$Rn, OLD, NEW),
11944+ def : Pat<(!cast<PatFrag>(op#"_"#vt #"_acq_rel") GPR64sp:$Rn, OLD, NEW),
1194511945 (!cast<Instruction>(inst # "AL" # suffix) OLD, NEW, GPR64sp:$Rn)>;
11946- def : Pat<(!cast<PatFrag>(op#"_"#size #"_seq_cst") GPR64sp:$Rn, OLD, NEW),
11946+ def : Pat<(!cast<PatFrag>(op#"_"#vt #"_seq_cst") GPR64sp:$Rn, OLD, NEW),
1194711947 (!cast<Instruction>(inst # "AL" # suffix) OLD, NEW, GPR64sp:$Rn)>;
1194811948}
1194911949
1195011950multiclass CASregister_patterns_ord<string inst, string suffix, string op,
11951- string size , dag OLD, dag NEW> {
11952- defm : CASregister_patterns_ord_dag<inst, suffix, op, size , OLD, NEW>;
11951+ ValueType vt , dag OLD, dag NEW> {
11952+ defm : CASregister_patterns_ord_dag<inst, suffix, op, vt , OLD, NEW>;
1195311953}
1195411954
1195511955multiclass CASregister_patterns<string inst, string op> {
11956- defm : CASregister_patterns_ord<inst, "X", op, "64" ,
11956+ defm : CASregister_patterns_ord<inst, "X", op, i64 ,
1195711957 (i64 GPR64:$Rold), (i64 GPR64:$Rnew)>;
11958- defm : CASregister_patterns_ord<inst, "W", op, "32" ,
11958+ defm : CASregister_patterns_ord<inst, "W", op, i32 ,
1195911959 (i32 GPR32:$Rold), (i32 GPR32:$Rnew)>;
11960- defm : CASregister_patterns_ord<inst, "H", op, "16" ,
11960+ defm : CASregister_patterns_ord<inst, "H", op, i16 ,
1196111961 (i32 GPR32:$Rold), (i32 GPR32:$Rnew)>;
11962- defm : CASregister_patterns_ord<inst, "B", op, "8" ,
11962+ defm : CASregister_patterns_ord<inst, "B", op, i8 ,
1196311963 (i32 GPR32:$Rold), (i32 GPR32:$Rnew)>;
1196411964}
1196511965
0 commit comments