@@ -1694,26 +1694,26 @@ multiclass MTBUF_LoadIntrinsicPat<SDPatternOperator name, ValueType vt,
1694
1694
def : GCNPat<
1695
1695
(vt (name v4i32:$rsrc, 0, 0, i32:$soffset, timm:$offset,
1696
1696
timm:$format, timm:$auxiliary, 0)),
1697
- (!cast<MTBUF_Pseudo>(opcode # _OFFSET) $rsrc, $soffset, (as_i16imm $offset),
1698
- (as_i8imm $format),
1697
+ (!cast<MTBUF_Pseudo>(opcode # _OFFSET) SReg_128: $rsrc, SCSrc_b32: $soffset, (as_i16timm $offset),
1698
+ (as_i8timm $format),
1699
1699
(extract_glc $auxiliary), (extract_slc $auxiliary), 0, (extract_dlc $auxiliary),
1700
1700
(extract_swz $auxiliary))
1701
1701
>;
1702
1702
1703
1703
def : GCNPat<
1704
1704
(vt (name v4i32:$rsrc, i32:$vindex, 0, i32:$soffset, timm:$offset,
1705
1705
timm:$format, timm:$auxiliary, timm)),
1706
- (!cast<MTBUF_Pseudo>(opcode # _IDXEN) $vindex, $rsrc, $soffset, (as_i16imm $offset),
1707
- (as_i8imm $format),
1706
+ (!cast<MTBUF_Pseudo>(opcode # _IDXEN) VGPR_32: $vindex, SReg_128: $rsrc, SCSrc_b32: $soffset, (as_i16timm $offset),
1707
+ (as_i8timm $format),
1708
1708
(extract_glc $auxiliary), (extract_slc $auxiliary), 0, (extract_dlc $auxiliary),
1709
1709
(extract_swz $auxiliary))
1710
1710
>;
1711
1711
1712
1712
def : GCNPat<
1713
1713
(vt (name v4i32:$rsrc, 0, i32:$voffset, i32:$soffset, timm:$offset,
1714
1714
timm:$format, timm:$auxiliary, 0)),
1715
- (!cast<MTBUF_Pseudo>(opcode # _OFFEN) $voffset, $rsrc, $soffset, (as_i16imm $offset),
1716
- (as_i8imm $format),
1715
+ (!cast<MTBUF_Pseudo>(opcode # _OFFEN) VGPR_32: $voffset, SReg_128: $rsrc, SCSrc_b32: $soffset, (as_i16timm $offset),
1716
+ (as_i8timm $format),
1717
1717
(extract_glc $auxiliary), (extract_slc $auxiliary), 0, (extract_dlc $auxiliary),
1718
1718
(extract_swz $auxiliary))
1719
1719
>;
@@ -1722,9 +1722,9 @@ multiclass MTBUF_LoadIntrinsicPat<SDPatternOperator name, ValueType vt,
1722
1722
(vt (name v4i32:$rsrc, i32:$vindex, i32:$voffset, i32:$soffset, timm:$offset,
1723
1723
timm:$format, timm:$auxiliary, timm)),
1724
1724
(!cast<MTBUF_Pseudo>(opcode # _BOTHEN)
1725
- (REG_SEQUENCE VReg_64, $vindex, sub0, $voffset, sub1),
1726
- $rsrc, $soffset, (as_i16imm $offset),
1727
- (as_i8imm $format),
1725
+ (REG_SEQUENCE VReg_64, VGPR_32: $vindex, sub0, VGPR_32: $voffset, sub1),
1726
+ SReg_128: $rsrc, SCSrc_b32: $soffset, (as_i16timm $offset),
1727
+ (as_i8timm $format),
1728
1728
(extract_glc $auxiliary), (extract_slc $auxiliary), 0, (extract_dlc $auxiliary),
1729
1729
(extract_swz $auxiliary))
1730
1730
>;
@@ -1741,12 +1741,14 @@ defm : MTBUF_LoadIntrinsicPat<SItbuffer_load, v4f32, "TBUFFER_LOAD_FORMAT_XYZW">
1741
1741
1742
1742
let SubtargetPredicate = HasUnpackedD16VMem in {
1743
1743
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, f16, "TBUFFER_LOAD_FORMAT_D16_X_gfx80">;
1744
+ defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, i32, "TBUFFER_LOAD_FORMAT_D16_X_gfx80">;
1744
1745
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, v2i32, "TBUFFER_LOAD_FORMAT_D16_XY_gfx80">;
1745
1746
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, v4i32, "TBUFFER_LOAD_FORMAT_D16_XYZW_gfx80">;
1746
1747
} // End HasUnpackedD16VMem.
1747
1748
1748
1749
let SubtargetPredicate = HasPackedD16VMem in {
1749
1750
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, f16, "TBUFFER_LOAD_FORMAT_D16_X">;
1751
+ defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, i32, "TBUFFER_LOAD_FORMAT_D16_X">;
1750
1752
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, v2f16, "TBUFFER_LOAD_FORMAT_D16_XY">;
1751
1753
defm : MTBUF_LoadIntrinsicPat<SItbuffer_load_d16, v4f16, "TBUFFER_LOAD_FORMAT_D16_XYZW">;
1752
1754
} // End HasPackedD16VMem.
0 commit comments