@@ -937,81 +937,81 @@ let OtherPredicates = [isGFX90APlus] in
937
937
938
938
// Patterns for global loads with no offset.
939
939
class FlatLoadPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
940
- (vt (node (FlatOffset i64:$vaddr, i16 :$offset))),
940
+ (vt (node (FlatOffset i64:$vaddr, i32 :$offset))),
941
941
(inst $vaddr, $offset)
942
942
>;
943
943
944
944
class FlatLoadPat_D16 <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
945
- (node (FlatOffset (i64 VReg_64:$vaddr), i16 :$offset), vt:$in),
945
+ (node (FlatOffset (i64 VReg_64:$vaddr), i32 :$offset), vt:$in),
946
946
(inst $vaddr, $offset, 0, $in)
947
947
>;
948
948
949
949
class FlatSignedLoadPat_D16 <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
950
- (node (GlobalOffset (i64 VReg_64:$vaddr), i16 :$offset), vt:$in),
950
+ (node (GlobalOffset (i64 VReg_64:$vaddr), i32 :$offset), vt:$in),
951
951
(inst $vaddr, $offset, 0, $in)
952
952
>;
953
953
954
954
class GlobalLoadSaddrPat_D16 <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
955
- (vt (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i16 :$offset), vt:$in)),
955
+ (vt (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i32 :$offset), vt:$in)),
956
956
(inst $saddr, $voffset, $offset, 0, $in)
957
957
>;
958
958
959
959
class FlatLoadSignedPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
960
- (vt (node (GlobalOffset (i64 VReg_64:$vaddr), i16 :$offset))),
960
+ (vt (node (GlobalOffset (i64 VReg_64:$vaddr), i32 :$offset))),
961
961
(inst $vaddr, $offset)
962
962
>;
963
963
964
964
class GlobalLoadSaddrPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
965
- (vt (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i16 :$offset))),
965
+ (vt (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i32 :$offset))),
966
966
(inst $saddr, $voffset, $offset, 0)
967
967
>;
968
968
969
969
class GlobalStoreSaddrPat <FLAT_Pseudo inst, SDPatternOperator node,
970
970
ValueType vt> : GCNPat <
971
- (node vt:$data, (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i16 :$offset)),
971
+ (node vt:$data, (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i32 :$offset)),
972
972
(inst $voffset, getVregSrcForVT<vt>.ret:$data, $saddr, $offset)
973
973
>;
974
974
975
975
class GlobalAtomicStoreSaddrPat <FLAT_Pseudo inst, SDPatternOperator node,
976
976
ValueType vt> : GCNPat <
977
- (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i16 :$offset), vt:$data),
977
+ (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i32 :$offset), vt:$data),
978
978
(inst $voffset, getVregSrcForVT<vt>.ret:$data, $saddr, $offset)
979
979
>;
980
980
981
981
class GlobalAtomicSaddrPat <FLAT_Pseudo inst, SDPatternOperator node,
982
982
ValueType vt, ValueType data_vt = vt> : GCNPat <
983
- (vt (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i16 :$offset), data_vt:$data)),
983
+ (vt (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i32 :$offset), data_vt:$data)),
984
984
(inst $voffset, getVregSrcForVT<data_vt>.ret:$data, $saddr, $offset)
985
985
>;
986
986
987
987
class GlobalAtomicNoRtnSaddrPat <FLAT_Pseudo inst, SDPatternOperator node,
988
988
ValueType vt> : GCNPat <
989
- (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i16 :$offset), vt:$data),
989
+ (node (GlobalSAddr (i64 SReg_64:$saddr), (i32 VGPR_32:$voffset), i32 :$offset), vt:$data),
990
990
(inst $voffset, getVregSrcForVT<vt>.ret:$data, $saddr, $offset)
991
991
>;
992
992
993
993
class FlatStorePat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
994
- (node vt:$data, (FlatOffset i64:$vaddr, i16 :$offset)),
994
+ (node vt:$data, (FlatOffset i64:$vaddr, i32 :$offset)),
995
995
(inst $vaddr, getVregSrcForVT<vt>.ret:$data, $offset)
996
996
>;
997
997
998
998
class FlatStoreSignedPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
999
- (node vt:$data, (GlobalOffset i64:$vaddr, i16 :$offset)),
999
+ (node vt:$data, (GlobalOffset i64:$vaddr, i32 :$offset)),
1000
1000
(inst $vaddr, getVregSrcForVT<vt>.ret:$data, $offset)
1001
1001
>;
1002
1002
1003
1003
class FlatStoreAtomicPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1004
1004
// atomic store follows atomic binop convention so the address comes
1005
1005
// first.
1006
- (node (FlatOffset i64:$vaddr, i16 :$offset), vt:$data),
1006
+ (node (FlatOffset i64:$vaddr, i32 :$offset), vt:$data),
1007
1007
(inst $vaddr, getVregSrcForVT<vt>.ret:$data, $offset)
1008
1008
>;
1009
1009
1010
1010
class FlatStoreSignedAtomicPat <FLAT_Pseudo inst, SDPatternOperator node,
1011
1011
ValueType vt, ValueType data_vt = vt> : GCNPat <
1012
1012
// atomic store follows atomic binop convention so the address comes
1013
1013
// first.
1014
- (node (GlobalOffset i64:$vaddr, i16 :$offset), data_vt:$data),
1014
+ (node (GlobalOffset i64:$vaddr, i32 :$offset), data_vt:$data),
1015
1015
(inst $vaddr, getVregSrcForVT<data_vt>.ret:$data, $offset)
1016
1016
>;
1017
1017
@@ -1020,17 +1020,17 @@ multiclass FlatAtomicPat <string inst, string node, ValueType vt,
1020
1020
defvar rtnNode = !cast<PatFrags>(node#"_"#vt.Size);
1021
1021
defvar noRtnNode = !cast<PatFrags>(node#"_noret_"#vt.Size);
1022
1022
1023
- def : GCNPat <(vt (rtnNode (FlatOffset i64:$vaddr, i16 :$offset), data_vt:$data)),
1023
+ def : GCNPat <(vt (rtnNode (FlatOffset i64:$vaddr, i32 :$offset), data_vt:$data)),
1024
1024
(!cast<FLAT_Pseudo>(inst#"_RTN") VReg_64:$vaddr, getVregSrcForVT<data_vt>.ret:$data, $offset)>;
1025
1025
1026
1026
let AddedComplexity = 1 in
1027
- def : GCNPat <(vt (noRtnNode (FlatOffset i64:$vaddr, i16 :$offset), data_vt:$data)),
1027
+ def : GCNPat <(vt (noRtnNode (FlatOffset i64:$vaddr, i32 :$offset), data_vt:$data)),
1028
1028
(!cast<FLAT_Pseudo>(inst) VReg_64:$vaddr, getVregSrcForVT<data_vt>.ret:$data, $offset)>;
1029
1029
}
1030
1030
1031
1031
class FlatSignedAtomicPatBase <FLAT_Pseudo inst, SDPatternOperator node,
1032
1032
ValueType vt, ValueType data_vt = vt> : GCNPat <
1033
- (vt (node (GlobalOffset i64:$vaddr, i16 :$offset), data_vt:$data)),
1033
+ (vt (node (GlobalOffset i64:$vaddr, i32 :$offset), data_vt:$data)),
1034
1034
(inst VReg_64:$vaddr, getVregSrcForVT<data_vt>.ret:$data, $offset)
1035
1035
>;
1036
1036
@@ -1063,49 +1063,49 @@ multiclass FlatSignedAtomicPatWithAddrSpace<string inst, string intr, string add
1063
1063
}
1064
1064
1065
1065
class ScratchLoadSignedPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1066
- (vt (node (ScratchOffset (i32 VGPR_32:$vaddr), i16 :$offset))),
1066
+ (vt (node (ScratchOffset (i32 VGPR_32:$vaddr), i32 :$offset))),
1067
1067
(inst $vaddr, $offset)
1068
1068
>;
1069
1069
1070
1070
class ScratchLoadSignedPat_D16 <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1071
- (node (ScratchOffset (i32 VGPR_32:$vaddr), i16 :$offset), vt:$in),
1071
+ (node (ScratchOffset (i32 VGPR_32:$vaddr), i32 :$offset), vt:$in),
1072
1072
(inst $vaddr, $offset, 0, $in)
1073
1073
>;
1074
1074
1075
1075
class ScratchStoreSignedPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1076
- (node vt:$data, (ScratchOffset (i32 VGPR_32:$vaddr), i16 :$offset)),
1076
+ (node vt:$data, (ScratchOffset (i32 VGPR_32:$vaddr), i32 :$offset)),
1077
1077
(inst getVregSrcForVT<vt>.ret:$data, $vaddr, $offset)
1078
1078
>;
1079
1079
1080
1080
class ScratchLoadSaddrPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1081
- (vt (node (ScratchSAddr (i32 SGPR_32:$saddr), i16 :$offset))),
1081
+ (vt (node (ScratchSAddr (i32 SGPR_32:$saddr), i32 :$offset))),
1082
1082
(inst $saddr, $offset)
1083
1083
>;
1084
1084
1085
1085
class ScratchLoadSaddrPat_D16 <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1086
- (vt (node (ScratchSAddr (i32 SGPR_32:$saddr), i16 :$offset), vt:$in)),
1086
+ (vt (node (ScratchSAddr (i32 SGPR_32:$saddr), i32 :$offset), vt:$in)),
1087
1087
(inst $saddr, $offset, 0, $in)
1088
1088
>;
1089
1089
1090
1090
class ScratchStoreSaddrPat <FLAT_Pseudo inst, SDPatternOperator node,
1091
1091
ValueType vt> : GCNPat <
1092
- (node vt:$data, (ScratchSAddr (i32 SGPR_32:$saddr), i16 :$offset)),
1092
+ (node vt:$data, (ScratchSAddr (i32 SGPR_32:$saddr), i32 :$offset)),
1093
1093
(inst getVregSrcForVT<vt>.ret:$data, $saddr, $offset)
1094
1094
>;
1095
1095
1096
1096
class ScratchLoadSVaddrPat <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1097
- (vt (node (ScratchSVAddr (i32 VGPR_32:$vaddr), (i32 SGPR_32:$saddr), i16 :$offset))),
1097
+ (vt (node (ScratchSVAddr (i32 VGPR_32:$vaddr), (i32 SGPR_32:$saddr), i32 :$offset))),
1098
1098
(inst $vaddr, $saddr, $offset, 0)
1099
1099
>;
1100
1100
1101
1101
class ScratchStoreSVaddrPat <FLAT_Pseudo inst, SDPatternOperator node,
1102
1102
ValueType vt> : GCNPat <
1103
- (node vt:$data, (ScratchSVAddr (i32 VGPR_32:$vaddr), (i32 SGPR_32:$saddr), i16 :$offset)),
1103
+ (node vt:$data, (ScratchSVAddr (i32 VGPR_32:$vaddr), (i32 SGPR_32:$saddr), i32 :$offset)),
1104
1104
(inst getVregSrcForVT<vt>.ret:$data, $vaddr, $saddr, $offset)
1105
1105
>;
1106
1106
1107
1107
class ScratchLoadSVaddrPat_D16 <FLAT_Pseudo inst, SDPatternOperator node, ValueType vt> : GCNPat <
1108
- (vt (node (ScratchSVAddr (i32 VGPR_32:$vaddr), (i32 SGPR_32:$saddr), i16 :$offset), vt:$in)),
1108
+ (vt (node (ScratchSVAddr (i32 VGPR_32:$vaddr), (i32 SGPR_32:$saddr), i32 :$offset), vt:$in)),
1109
1109
(inst $vaddr, $saddr, $offset, 0, $in)
1110
1110
>;
1111
1111
0 commit comments