@@ -1232,7 +1232,7 @@ defm BUFFER_ATOMIC_PK_ADD_BF16 : MUBUF_Pseudo_Atomics <
1232
1232
//===----------------------------------------------------------------------===//
1233
1233
// MTBUF Instructions
1234
1234
//===----------------------------------------------------------------------===//
1235
-
1235
+ let OtherPredicates = [HasMTBUFInsts] in {
1236
1236
defm TBUFFER_LOAD_FORMAT_X : MTBUF_Pseudo_Loads <"tbuffer_load_format_x", VGPR_32, 1>;
1237
1237
defm TBUFFER_LOAD_FORMAT_XY : MTBUF_Pseudo_Loads <"tbuffer_load_format_xy", VReg_64, 2>;
1238
1238
defm TBUFFER_LOAD_FORMAT_XYZ : MTBUF_Pseudo_Loads <"tbuffer_load_format_xyz", VReg_96, 3>;
@@ -1267,6 +1267,7 @@ let TiedSourceNotRead = 1 in {
1267
1267
defm TBUFFER_STORE_FORMAT_D16_XYZ : MTBUF_Pseudo_Stores <"tbuffer_store_format_d16_xyz", VReg_64, 3>;
1268
1268
defm TBUFFER_STORE_FORMAT_D16_XYZW : MTBUF_Pseudo_Stores <"tbuffer_store_format_d16_xyzw", VReg_64, 4>;
1269
1269
} // End HasPackedD16VMem.
1270
+ } // End HasMTBUFInsts.
1270
1271
1271
1272
let SubtargetPredicate = isGFX7Plus in {
1272
1273
@@ -2188,12 +2189,13 @@ multiclass MTBUF_LoadIntrinsicPat_Common<SDPatternOperator name, ValueType vt,
2188
2189
2189
2190
multiclass MTBUF_LoadIntrinsicPat<SDPatternOperator name, ValueType vt,
2190
2191
string opcode, ValueType memoryVt = vt> {
2191
- let OtherPredicates = [ HasUnrestrictedSOffset] in {
2192
+ let SubtargetPredicate = HasUnrestrictedSOffset in {
2192
2193
defm : MTBUF_LoadIntrinsicPat_Common<name, vt, opcode, memoryVt>;
2193
2194
}
2194
2195
defm : MTBUF_LoadIntrinsicPat_Common<name, vt, opcode # "_VBUFFER", memoryVt>;
2195
2196
}
2196
2197
2198
+ let OtherPredicates = [HasMTBUFInsts] in {
2197
2199
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load, i32, "TBUFFER_LOAD_FORMAT_X">;
2198
2200
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load, v2i32, "TBUFFER_LOAD_FORMAT_XY">;
2199
2201
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load, v3i32, "TBUFFER_LOAD_FORMAT_XYZ">;
@@ -2202,22 +2204,23 @@ defm : MTBUF_LoadIntrinsicPat<SItbuffer_load, f32, "TBUFFER_LOAD_FORMAT_X">;
2202
2204
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load, v2f32, "TBUFFER_LOAD_FORMAT_XY">;
2203
2205
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load, v3f32, "TBUFFER_LOAD_FORMAT_XYZ">;
2204
2206
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load, v4f32, "TBUFFER_LOAD_FORMAT_XYZW">;
2207
+ } // End HasMTBUFInsts.
2205
2208
2206
- let SubtargetPredicate = HasUnpackedD16VMem in {
2209
+ let OtherPredicates = [ HasUnpackedD16VMem,HasMTBUFInsts] in {
2207
2210
defm : MTBUF_LoadIntrinsicPat_Common<SItbuffer_load_d16, f16, "TBUFFER_LOAD_FORMAT_D16_X_gfx80">;
2208
2211
defm : MTBUF_LoadIntrinsicPat_Common<SItbuffer_load_d16, i32, "TBUFFER_LOAD_FORMAT_D16_X_gfx80">;
2209
2212
defm : MTBUF_LoadIntrinsicPat_Common<SItbuffer_load_d16, v2i32, "TBUFFER_LOAD_FORMAT_D16_XY_gfx80">;
2210
2213
defm : MTBUF_LoadIntrinsicPat_Common<SItbuffer_load_d16, v3i32, "TBUFFER_LOAD_FORMAT_D16_XYZ_gfx80">;
2211
2214
defm : MTBUF_LoadIntrinsicPat_Common<SItbuffer_load_d16, v4i32, "TBUFFER_LOAD_FORMAT_D16_XYZW_gfx80">;
2212
- } // End HasUnpackedD16VMem.
2215
+ } // End HasUnpackedD16VMem,HasMTBUFInsts .
2213
2216
2214
- let SubtargetPredicate = HasPackedD16VMem in {
2217
+ let OtherPredicates = [ HasPackedD16VMem,HasMTBUFInsts] in {
2215
2218
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, f16, "TBUFFER_LOAD_FORMAT_D16_X">;
2216
2219
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, i32, "TBUFFER_LOAD_FORMAT_D16_X">;
2217
2220
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, v2f16, "TBUFFER_LOAD_FORMAT_D16_XY">;
2218
2221
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, v4f16, "TBUFFER_LOAD_FORMAT_D16_XYZ", v3f16>;
2219
2222
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, v4f16, "TBUFFER_LOAD_FORMAT_D16_XYZW">;
2220
- } // End HasPackedD16VMem.
2223
+ } // End HasPackedD16VMem,HasMTBUFInsts .
2221
2224
2222
2225
multiclass MTBUF_StoreIntrinsicPat_Common<SDPatternOperator name, ValueType vt,
2223
2226
string opcode, ValueType memoryVt = vt> {
@@ -2260,12 +2263,13 @@ multiclass MTBUF_StoreIntrinsicPat_Common<SDPatternOperator name, ValueType vt,
2260
2263
2261
2264
multiclass MTBUF_StoreIntrinsicPat<SDPatternOperator name, ValueType vt,
2262
2265
string opcode, ValueType memoryVt = vt> {
2263
- let OtherPredicates = [ HasUnrestrictedSOffset] in {
2266
+ let SubtargetPredicate = HasUnrestrictedSOffset in {
2264
2267
defm : MTBUF_StoreIntrinsicPat_Common<name, vt, opcode, memoryVt>;
2265
2268
}
2266
2269
defm : MTBUF_StoreIntrinsicPat_Common<name, vt, opcode # "_VBUFFER", memoryVt>;
2267
2270
}
2268
2271
2272
+ let OtherPredicates = [HasMTBUFInsts] in {
2269
2273
defm : MTBUF_StoreIntrinsicPat<SItbuffer_store, i32, "TBUFFER_STORE_FORMAT_X">;
2270
2274
defm : MTBUF_StoreIntrinsicPat<SItbuffer_store, v2i32, "TBUFFER_STORE_FORMAT_XY">;
2271
2275
defm : MTBUF_StoreIntrinsicPat<SItbuffer_store, v3i32, "TBUFFER_STORE_FORMAT_XYZ">;
@@ -2274,22 +2278,23 @@ defm : MTBUF_StoreIntrinsicPat<SItbuffer_store, f32, "TBUFFER_STORE_FORMAT_X">
2274
2278
defm : MTBUF_StoreIntrinsicPat<SItbuffer_store, v2f32, "TBUFFER_STORE_FORMAT_XY">;
2275
2279
defm : MTBUF_StoreIntrinsicPat<SItbuffer_store, v3f32, "TBUFFER_STORE_FORMAT_XYZ">;
2276
2280
defm : MTBUF_StoreIntrinsicPat<SItbuffer_store, v4f32, "TBUFFER_STORE_FORMAT_XYZW">;
2281
+ } // End HasMTBUFInsts.
2277
2282
2278
- let SubtargetPredicate = HasUnpackedD16VMem in {
2283
+ let OtherPredicates = [ HasUnpackedD16VMem,HasMTBUFInsts] in {
2279
2284
defm : MTBUF_StoreIntrinsicPat_Common<SItbuffer_store_d16, f16, "TBUFFER_STORE_FORMAT_D16_X_gfx80">;
2280
2285
defm : MTBUF_StoreIntrinsicPat_Common<SItbuffer_store_d16, i32, "TBUFFER_STORE_FORMAT_D16_X_gfx80">;
2281
2286
defm : MTBUF_StoreIntrinsicPat_Common<SItbuffer_store_d16, v2i32, "TBUFFER_STORE_FORMAT_D16_XY_gfx80">;
2282
2287
defm : MTBUF_StoreIntrinsicPat_Common<SItbuffer_store_d16, v3i32, "TBUFFER_STORE_FORMAT_D16_XYZ_gfx80">;
2283
2288
defm : MTBUF_StoreIntrinsicPat_Common<SItbuffer_store_d16, v4i32, "TBUFFER_STORE_FORMAT_D16_XYZW_gfx80">;
2284
- } // End HasUnpackedD16VMem.
2289
+ } // End HasUnpackedD16VMem,HasMTBUFInsts .
2285
2290
2286
- let SubtargetPredicate = HasPackedD16VMem in {
2291
+ let OtherPredicates = [ HasPackedD16VMem,HasMTBUFInsts] in {
2287
2292
defm : MTBUF_StoreIntrinsicPat<SItbuffer_store_d16, f16, "TBUFFER_STORE_FORMAT_D16_X">;
2288
2293
defm : MTBUF_StoreIntrinsicPat<SItbuffer_store_d16, i32, "TBUFFER_STORE_FORMAT_D16_X">;
2289
2294
defm : MTBUF_StoreIntrinsicPat<SItbuffer_store_d16, v2f16, "TBUFFER_STORE_FORMAT_D16_XY">;
2290
2295
defm : MTBUF_StoreIntrinsicPat<SItbuffer_store_d16, v4f16, "TBUFFER_STORE_FORMAT_D16_XYZ", v3f16>;
2291
2296
defm : MTBUF_StoreIntrinsicPat<SItbuffer_store_d16, v4f16, "TBUFFER_STORE_FORMAT_D16_XYZW">;
2292
- } // End HasPackedD16VMem.
2297
+ } // End HasPackedD16VMem,HasMTBUFInsts .
2293
2298
2294
2299
//===----------------------------------------------------------------------===//
2295
2300
// Target-specific instruction encodings.
0 commit comments