@@ -719,6 +719,18 @@ def FeatureFlatAtomicFaddF32Inst
719
719
"Has flat_atomic_add_f32 instruction"
720
720
>;
721
721
722
+ def FeatureDefaultComponentZero : SubtargetFeature<"default-component-zero",
723
+ "HasDefaultComponentZero",
724
+ "true",
725
+ "BUFFER/IMAGE store instructions set unspecified components to zero"
726
+ >;
727
+
728
+ def FeatureDefaultComponentBroadcast : SubtargetFeature<"default-component-broadcast",
729
+ "HasDefaultComponentBroadcast",
730
+ "true",
731
+ "BUFFER/IMAGE store instructions set unspecified components to x component"
732
+ >;
733
+
722
734
def FeatureSupportsSRAMECC : SubtargetFeature<"sramecc-support",
723
735
"SupportsSRAMECC",
724
736
"true",
@@ -1003,7 +1015,7 @@ def FeatureSouthernIslands : GCNSubtargetFeatureGeneration<"SOUTHERN_ISLANDS",
1003
1015
FeatureWavefrontSize64, FeatureSMemTimeInst, FeatureMadMacF32Insts,
1004
1016
FeatureDsSrc2Insts, FeatureLDSBankCount32, FeatureMovrel,
1005
1017
FeatureTrigReducedRange, FeatureExtendedImageInsts, FeatureImageInsts,
1006
- FeatureGDS, FeatureGWS
1018
+ FeatureGDS, FeatureGWS, FeatureDefaultComponentZero
1007
1019
]
1008
1020
>;
1009
1021
@@ -1014,7 +1026,7 @@ def FeatureSeaIslands : GCNSubtargetFeatureGeneration<"SEA_ISLANDS",
1014
1026
FeatureCIInsts, FeatureMovrel, FeatureTrigReducedRange,
1015
1027
FeatureGFX7GFX8GFX9Insts, FeatureSMemTimeInst, FeatureMadMacF32Insts,
1016
1028
FeatureDsSrc2Insts, FeatureExtendedImageInsts, FeatureUnalignedBufferAccess,
1017
- FeatureImageInsts, FeatureGDS, FeatureGWS
1029
+ FeatureImageInsts, FeatureGDS, FeatureGWS, FeatureDefaultComponentZero
1018
1030
]
1019
1031
>;
1020
1032
@@ -1029,7 +1041,8 @@ def FeatureVolcanicIslands : GCNSubtargetFeatureGeneration<"VOLCANIC_ISLANDS",
1029
1041
FeatureIntClamp, FeatureTrigReducedRange, FeatureGFX8Insts,
1030
1042
FeatureGFX7GFX8GFX9Insts, FeatureSMemTimeInst, FeatureMadMacF32Insts,
1031
1043
FeatureDsSrc2Insts, FeatureExtendedImageInsts, FeatureFastDenormalF32,
1032
- FeatureUnalignedBufferAccess, FeatureImageInsts, FeatureGDS, FeatureGWS
1044
+ FeatureUnalignedBufferAccess, FeatureImageInsts, FeatureGDS, FeatureGWS,
1045
+ FeatureDefaultComponentZero
1033
1046
]
1034
1047
>;
1035
1048
@@ -1047,7 +1060,7 @@ def FeatureGFX9 : GCNSubtargetFeatureGeneration<"GFX9",
1047
1060
FeatureScalarFlatScratchInsts, FeatureScalarAtomics, FeatureR128A16,
1048
1061
FeatureA16, FeatureSMemTimeInst, FeatureFastDenormalF32, FeatureSupportsXNACK,
1049
1062
FeatureUnalignedBufferAccess, FeatureUnalignedDSAccess,
1050
- FeatureNegativeScratchOffsetBug, FeatureGWS
1063
+ FeatureNegativeScratchOffsetBug, FeatureGWS, FeatureDefaultComponentZero
1051
1064
]
1052
1065
>;
1053
1066
@@ -1067,7 +1080,7 @@ def FeatureGFX10 : GCNSubtargetFeatureGeneration<"GFX10",
1067
1080
FeatureNoDataDepHazard, FeaturePkFmacF16Inst,
1068
1081
FeatureA16, FeatureSMemTimeInst, FeatureFastDenormalF32, FeatureG16,
1069
1082
FeatureUnalignedBufferAccess, FeatureUnalignedDSAccess, FeatureImageInsts,
1070
- FeatureGDS, FeatureGWS
1083
+ FeatureGDS, FeatureGWS, FeatureDefaultComponentZero
1071
1084
]
1072
1085
>;
1073
1086
@@ -1087,7 +1100,7 @@ def FeatureGFX11 : GCNSubtargetFeatureGeneration<"GFX11",
1087
1100
FeatureNoDataDepHazard, FeaturePkFmacF16Inst,
1088
1101
FeatureA16, FeatureFastDenormalF32, FeatureG16,
1089
1102
FeatureUnalignedBufferAccess, FeatureUnalignedDSAccess, FeatureGDS,
1090
- FeatureGWS
1103
+ FeatureGWS, FeatureDefaultComponentZero
1091
1104
]
1092
1105
>;
1093
1106
@@ -1107,7 +1120,7 @@ def FeatureGFX12 : GCNSubtargetFeatureGeneration<"GFX12",
1107
1120
FeatureNoDataDepHazard, FeaturePkFmacF16Inst,
1108
1121
FeatureA16, FeatureFastDenormalF32, FeatureG16,
1109
1122
FeatureUnalignedBufferAccess, FeatureUnalignedDSAccess,
1110
- FeatureTrue16BitInsts
1123
+ FeatureTrue16BitInsts, FeatureDefaultComponentBroadcast
1111
1124
]
1112
1125
>;
1113
1126
@@ -2013,6 +2026,13 @@ def HasFlatAtomicFaddF32Inst
2013
2026
: Predicate<"Subtarget->hasFlatAtomicFaddF32Inst()">,
2014
2027
AssemblerPredicate<(all_of FeatureFlatAtomicFaddF32Inst)>;
2015
2028
2029
+ def HasDefaultComponentZero
2030
+ : Predicate<"Subtarget->hasDefaultComponentZero()">,
2031
+ AssemblerPredicate<(all_of FeatureDefaultComponentZero)>;
2032
+ def HasDefaultComponentBroadcast
2033
+ : Predicate<"Subtarget->hasDefaultComponentBroadcast()">,
2034
+ AssemblerPredicate<(all_of FeatureDefaultComponentBroadcast)>;
2035
+
2016
2036
def HasDsSrc2Insts : Predicate<"!Subtarget->hasDsSrc2Insts()">,
2017
2037
AssemblerPredicate<(all_of FeatureDsSrc2Insts)>;
2018
2038
0 commit comments