================
@@ -2429,29 +2429,35 @@ let OtherPredicates = [HasPackedD16VMem,HasMTBUFInsts] 
in {
 } // End HasPackedD16VMem,HasMTBUFInsts.
 
 multiclass MTBUF_StoreIntrinsicPat_Common<SDPatternOperator name, ValueType vt,
-                                        string opcode, ValueType memoryVt = 
vt> {
+                                        string opcode, ValueType memoryVt = 
vt, bit isTrue16 = false> {
   defvar st = !if(!eq(memoryVt, vt), name, mtbuf_intrinsic_store<name, 
memoryVt>);
 
   def : GCNPat<
     (st vt:$vdata, v4i32:$rsrc, 0, 0, (BUFSOffset i32:$soffset), timm:$offset,
           timm:$format, timm:$auxiliary, 0),
-    (!cast<MTBUF_Pseudo>(opcode # _OFFSET_exact) 
getVregSrcForVT<vt>.ret:$vdata, SReg_128:$rsrc, SCSrc_b32:$soffset,
+    (!cast<MTBUF_Pseudo>(opcode # _OFFSET_exact) 
+      !if(isTrue16, (lo16_to_vgpr32 $vdata), (vt 
getVregSrcForVT<vt>.ret:$vdata)),
----------------
arsenm wrote:

Can you sink the true16 check into getVregSrcForVT

https://github.com/llvm/llvm-project/pull/219733
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to