//
-multiclass avx512_load<bits<8> opc, string OpcodeStr, MoveLoadStoreItins itins,
+multiclass avx512_load<bits<8> opc, string OpcodeStr,
X86VectorVTInfo _, PatFrag ld_frag, PatFrag mload,
SchedWrite SchedRR, SchedWrite SchedRM,
bit NoRMPattern = 0,
Predicate prd, SchedWrite SchedRR,
SchedWrite SchedRM, bit NoRMPattern = 0> {
let Predicates = [prd] in
- defm Z : avx512_load<opc, OpcodeStr, SSE_MOVA, _.info512,
+ defm Z : avx512_load<opc, OpcodeStr, _.info512,
_.info512.AlignedLdFrag, masked_load_aligned512,
SchedRR, SchedRM, NoRMPattern>, EVEX_V512;
let Predicates = [prd, HasVLX] in {
- defm Z256 : avx512_load<opc, OpcodeStr, SSE_MOVA, _.info256,
+ defm Z256 : avx512_load<opc, OpcodeStr, _.info256,
_.info256.AlignedLdFrag, masked_load_aligned256,
SchedRR, SchedRM, NoRMPattern>, EVEX_V256;
- defm Z128 : avx512_load<opc, OpcodeStr, SSE_MOVA, _.info128,
+ defm Z128 : avx512_load<opc, OpcodeStr, _.info128,
_.info128.AlignedLdFrag, masked_load_aligned128,
SchedRR, SchedRM, NoRMPattern>, EVEX_V128;
}
SchedWrite SchedRM, bit NoRMPattern = 0,
SDPatternOperator SelectOprr = vselect> {
let Predicates = [prd] in
- defm Z : avx512_load<opc, OpcodeStr, SSE_MOVU, _.info512, _.info512.LdFrag,
+ defm Z : avx512_load<opc, OpcodeStr, _.info512, _.info512.LdFrag,
masked_load_unaligned, SchedRR, SchedRM, NoRMPattern,
SelectOprr>, EVEX_V512;
let Predicates = [prd, HasVLX] in {
- defm Z256 : avx512_load<opc, OpcodeStr, SSE_MOVU, _.info256, _.info256.LdFrag,
+ defm Z256 : avx512_load<opc, OpcodeStr, _.info256, _.info256.LdFrag,
masked_load_unaligned, SchedRR, SchedRM, NoRMPattern,
SelectOprr>, EVEX_V256;
- defm Z128 : avx512_load<opc, OpcodeStr, SSE_MOVU, _.info128, _.info128.LdFrag,
+ defm Z128 : avx512_load<opc, OpcodeStr, _.info128, _.info128.LdFrag,
masked_load_unaligned, SchedRR, SchedRM, NoRMPattern,
SelectOprr>, EVEX_V128;
}
}
-multiclass avx512_store<bits<8> opc, string OpcodeStr, MoveLoadStoreItins itins,
+multiclass avx512_store<bits<8> opc, string OpcodeStr,
X86VectorVTInfo _, PatFrag st_frag, PatFrag mstore,
string Name, SchedWrite SchedRR, SchedWrite SchedMR,
bit NoMRPattern = 0> {
string Name, SchedWrite SchedRR, SchedWrite SchedMR,
bit NoMRPattern = 0> {
let Predicates = [prd] in
- defm Z : avx512_store<opc, OpcodeStr, SSE_MOVU, _.info512, store,
+ defm Z : avx512_store<opc, OpcodeStr, _.info512, store,
masked_store_unaligned, Name#Z, SchedRR, SchedMR,
NoMRPattern>, EVEX_V512;
let Predicates = [prd, HasVLX] in {
- defm Z256 : avx512_store<opc, OpcodeStr, SSE_MOVU, _.info256, store,
+ defm Z256 : avx512_store<opc, OpcodeStr, _.info256, store,
masked_store_unaligned, Name#Z256, SchedRR,
SchedMR, NoMRPattern>, EVEX_V256;
- defm Z128 : avx512_store<opc, OpcodeStr, SSE_MOVU, _.info128, store,
+ defm Z128 : avx512_store<opc, OpcodeStr, _.info128, store,
masked_store_unaligned, Name#Z128, SchedRR,
SchedMR, NoMRPattern>, EVEX_V128;
}
string Name, SchedWrite SchedRR,
SchedWrite SchedMR, bit NoMRPattern = 0> {
let Predicates = [prd] in
- defm Z : avx512_store<opc, OpcodeStr, SSE_MOVA, _.info512, alignedstore,
+ defm Z : avx512_store<opc, OpcodeStr, _.info512, alignedstore,
masked_store_aligned512, Name#Z, SchedRR, SchedMR,
NoMRPattern>, EVEX_V512;
let Predicates = [prd, HasVLX] in {
- defm Z256 : avx512_store<opc, OpcodeStr, SSE_MOVA, _.info256, alignedstore,
+ defm Z256 : avx512_store<opc, OpcodeStr, _.info256, alignedstore,
masked_store_aligned256, Name#Z256, SchedRR,
SchedMR, NoMRPattern>, EVEX_V256;
- defm Z128 : avx512_store<opc, OpcodeStr, SSE_MOVA, _.info128, alignedstore,
+ defm Z128 : avx512_store<opc, OpcodeStr, _.info128, alignedstore,
masked_store_aligned128, Name#Z128, SchedRR,
SchedMR, NoMRPattern>, EVEX_V128;
}