forked from OSchip/llvm-project
AMDGPU: Add register classes to MUBUF load patterns
This commit is contained in:
parent
051d330314
commit
117d4f1900
llvm/lib/Target/AMDGPU
|
@ -1177,24 +1177,24 @@ multiclass MUBUF_LoadIntrinsicPat<SDPatternOperator name, ValueType vt,
|
||||||
def : GCNPat<
|
def : GCNPat<
|
||||||
(vt (name v4i32:$rsrc, 0, 0, i32:$soffset, timm:$offset,
|
(vt (name v4i32:$rsrc, 0, 0, i32:$soffset, timm:$offset,
|
||||||
timm:$auxiliary, 0)),
|
timm:$auxiliary, 0)),
|
||||||
(!cast<MUBUF_Pseudo>(opcode # _OFFSET) $rsrc, $soffset, (as_i16imm $offset),
|
(!cast<MUBUF_Pseudo>(opcode # _OFFSET) SReg_128:$rsrc, SCSrc_b32:$soffset, (as_i16timm $offset),
|
||||||
(extract_glc $auxiliary), (extract_slc $auxiliary), 0, (extract_dlc $auxiliary),
|
(extract_glc $auxiliary), (extract_slc $auxiliary), 0, (extract_dlc $auxiliary),
|
||||||
(extract_swz $auxiliary))
|
(extract_swz $auxiliary))
|
||||||
>;
|
>;
|
||||||
|
|
||||||
def : GCNPat<
|
def : GCNPat<
|
||||||
(vt (name v4i32:$rsrc, 0, i32:$voffset, i32:$soffset, timm:$offset,
|
(vt (name v4i32:$rsrc, 0, i32:$voffset, i32:$soffset, timm:$offset,
|
||||||
timm:$auxiliary, 0)),
|
timm:$auxiliary, 0)),
|
||||||
(!cast<MUBUF_Pseudo>(opcode # _OFFEN) $voffset, $rsrc, $soffset, (as_i16imm $offset),
|
(!cast<MUBUF_Pseudo>(opcode # _OFFEN) VGPR_32:$voffset, SReg_128:$rsrc, SCSrc_b32:$soffset, (as_i16timm $offset),
|
||||||
(extract_glc $auxiliary), (extract_slc $auxiliary), 0, (extract_dlc $auxiliary),
|
(extract_glc $auxiliary), (extract_slc $auxiliary), 0, (extract_dlc $auxiliary),
|
||||||
(extract_swz $auxiliary))
|
(extract_swz $auxiliary))
|
||||||
>;
|
>;
|
||||||
|
|
||||||
def : GCNPat<
|
def : GCNPat<
|
||||||
(vt (name v4i32:$rsrc, i32:$vindex, 0, i32:$soffset, timm:$offset,
|
(vt (name v4i32:$rsrc, i32:$vindex, 0, i32:$soffset, timm:$offset,
|
||||||
timm:$auxiliary, timm)),
|
timm:$auxiliary, timm)),
|
||||||
(!cast<MUBUF_Pseudo>(opcode # _IDXEN) $vindex, $rsrc, $soffset, (as_i16imm $offset),
|
(!cast<MUBUF_Pseudo>(opcode # _IDXEN) VGPR_32:$vindex, SReg_128:$rsrc, SCSrc_b32:$soffset, (as_i16timm $offset),
|
||||||
(extract_glc $auxiliary), (extract_slc $auxiliary), 0, (extract_dlc $auxiliary),
|
(extract_glc $auxiliary), (extract_slc $auxiliary), 0, (extract_dlc $auxiliary),
|
||||||
(extract_swz $auxiliary))
|
(extract_swz $auxiliary))
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
@ -1202,9 +1202,9 @@ multiclass MUBUF_LoadIntrinsicPat<SDPatternOperator name, ValueType vt,
|
||||||
(vt (name v4i32:$rsrc, i32:$vindex, i32:$voffset, i32:$soffset, timm:$offset,
|
(vt (name v4i32:$rsrc, i32:$vindex, i32:$voffset, i32:$soffset, timm:$offset,
|
||||||
timm:$auxiliary, timm)),
|
timm:$auxiliary, timm)),
|
||||||
(!cast<MUBUF_Pseudo>(opcode # _BOTHEN)
|
(!cast<MUBUF_Pseudo>(opcode # _BOTHEN)
|
||||||
(REG_SEQUENCE VReg_64, $vindex, sub0, $voffset, sub1),
|
(REG_SEQUENCE VReg_64, VGPR_32:$vindex, sub0, VGPR_32:$voffset, sub1),
|
||||||
$rsrc, $soffset, (as_i16imm $offset),
|
SReg_128:$rsrc, SCSrc_b32:$soffset, (as_i16timm $offset),
|
||||||
(extract_glc $auxiliary), (extract_slc $auxiliary), 0, (extract_dlc $auxiliary),
|
(extract_glc $auxiliary), (extract_slc $auxiliary), 0, (extract_dlc $auxiliary),
|
||||||
(extract_swz $auxiliary))
|
(extract_swz $auxiliary))
|
||||||
>;
|
>;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue