Lines Matching refs:memsz

6209 class MVE_VLDRSTR_cs<MVE_ldst_direction dir, MVE_memsz memsz, bit P, bit W,
6212 : MVE_VLDRSTR_base<dir, 0, P, W, 1, oops, iops, asm, suffix, ops, cstr, memsz.encoding> {
6216 let Inst{8-7} = memsz.encoding;
6223 class MVE_VLDRSTR_cw<MVE_ldst_direction dir, MVE_memsz memsz, bit U,
6230 let Inst{19} = memsz.encoding{0}; // enough to tell 16- from 32-bit
6241 multiclass MVE_VLDRSTR_cw_m<MVE_ldst_direction dir, MVE_memsz memsz,
6243 let AM = memsz.AM in {
6245 dir, memsz, U, 1, 0, size,
6246 dir.Oops, !con(dir.Iops, (ins taddrmode_imm7<memsz.shift>:$addr)),
6250 dir, memsz, U, 1, 1, size,
6252 !con(dir.Iops, (ins taddrmode_imm7<memsz.shift>:$addr)),
6254 let DecoderMethod = "DecodeMVE_MEM_1_pre<"#memsz.shift#">";
6258 dir, memsz, U, 0, 1, size,
6261 t2am_imm7_offset<memsz.shift>:$addr)),
6269 multiclass MVE_VLDRSTR_cs_m<MVE_ldst_direction dir, MVE_memsz memsz,
6271 let AM = memsz.AM in {
6273 dir, memsz, 1, 0,
6274 dir.Oops, !con(dir.Iops, (ins t2addrmode_imm7<memsz.shift>:$addr)),
6278 dir, memsz, 1, 1,
6280 !con(dir.Iops, (ins t2addrmode_imm7_pre<memsz.shift>:$addr)),
6282 let DecoderMethod = "DecodeMVE_MEM_2_pre<"#memsz.shift#">";
6286 dir, memsz, 0, 1,
6289 t2am_imm7_offset<memsz.shift>:$addr)),
6340 class MVE_VLDRSTR_rq<MVE_ldst_direction dir, MVE_memsz memsz, bit U,
6349 let Inst{6} = memsz.encoding{1};
6351 let Inst{4} = memsz.encoding{0};
6361 multiclass MVE_VLDRSTR_rq_w<MVE_ldst_direction dir, MVE_memsz memsz,
6363 def _u : MVE_VLDRSTR_rq<dir, memsz, U, size, 0, asm, suffix, 0>;
6364 def "" : MVE_VLDRSTR_rq<dir, memsz, U, size, 1, asm, suffix, memsz.shift>;
6371 class MVE_VLDRSTR_rq_b<MVE_ldst_direction dir, MVE_memsz memsz,
6373 : MVE_VLDRSTR_rq<dir, memsz, U, size, 0, asm, suffix, 0>;
6376 multiclass MVE_VLDR_rq_w<MVE_memsz memsz, list<MVEVectorVTInfo> VTIs> {
6377 defm "": MVE_VLDRSTR_rq_w<MVE_ld, memsz, "vldr" # memsz.MnemonicLetter,
6383 foreach UnsignedFlag = !if(!eq(VTI.Size, memsz.encoding),
6385 def : Pat<(VTI.Vec (int_arm_mve_vldr_gather_offset GPR:$base, (VTIs[0].Vec MQPR:$offsets), memsz.TypeBits, 0, UnsignedFlag)),
6387 def : Pat<(VTI.Vec (int_arm_mve_vldr_gather_offset GPR:$base, (VTIs[0].Vec MQPR:$offsets), memsz.TypeBits, memsz.shift, UnsignedFlag)),
6389 def : Pat<(VTI.Vec (int_arm_mve_vldr_gather_offset_predicated GPR:$base, (VTIs[0].Vec MQPR:$offsets), memsz.TypeBits, 0, UnsignedFlag, (VTI.Pred VCCR:$pred))),
6391 def : Pat<(VTI.Vec (int_arm_mve_vldr_gather_offset_predicated GPR:$base, (VTIs[0].Vec MQPR:$offsets), memsz.TypeBits, memsz.shift, UnsignedFlag, (VTI.Pred VCCR:$pred))),
6407 multiclass MVE_VSTR_rq_w<MVE_memsz memsz, list<MVEVectorVTInfo> VTIs> {
6408 defm "": MVE_VLDRSTR_rq_w<MVE_st, memsz, "vstr" # memsz.MnemonicLetter,
6414 def : Pat<(int_arm_mve_vstr_scatter_offset GPR:$base, (VTIs[0].Vec MQPR:$offsets), (VTI.Vec MQPR:$data), memsz.TypeBits, 0),
6416 def : Pat<(int_arm_mve_vstr_scatter_offset GPR:$base, (VTIs[0].Vec MQPR:$offsets), (VTI.Vec MQPR:$data), memsz.TypeBits, memsz.shift),
6418 def : Pat<(int_arm_mve_vstr_scatter_offset_predicated GPR:$base, (VTIs[0].Vec MQPR:$offsets), (VTI.Vec MQPR:$data), memsz.TypeBits, 0, (VTI.Pred VCCR:$pred)),
6420 def : Pat<(int_arm_mve_vstr_scatter_offset_predicated GPR:$base, (VTIs[0].Vec MQPR:$offsets), (VTI.Vec MQPR:$data), memsz.TypeBits, memsz.shift, (VTI.Pred VCCR:$pred)),
6473 class MVE_VLDRSTR_qi<MVE_ldst_direction dir, MVE_memsz memsz, bit W, dag wbops,
6476 !con(dir.Iops, (ins mve_addr_q_shift<memsz.shift>:$addr)),
6477 asm, suffix, "$Qd, $addr" # wbAsm, cstr # dir.cstr, memsz.encoding> {
6482 let Inst{8} = memsz.encoding{0}; // enough to distinguish 32- from 64-bit
6488 multiclass MVE_VLDRSTR_qi_m<MVE_ldst_direction dir, MVE_memsz memsz,
6490 def "" : MVE_VLDRSTR_qi<dir, memsz, 0, (outs), asm, "", suffix>;
6491 def _pre : MVE_VLDRSTR_qi<dir, memsz, 1, (outs MQPR:$wb), asm, "!", suffix,
6493 let DecoderMethod="DecodeMVE_MEM_3_pre<"#memsz.shift#">";
6501 multiclass MVE_VLDR_qi<MVE_memsz memsz, MVEVectorVTInfo AVTI,
6503 defm "" : MVE_VLDRSTR_qi_m<MVE_ld, memsz, "vldr" # memsz.MnemonicLetter,
6504 "u" # memsz.TypeBits>;
6517 multiclass MVE_VSTR_qi<MVE_memsz memsz, MVEVectorVTInfo AVTI,
6519 defm "" : MVE_VLDRSTR_qi_m<MVE_st, memsz, "vstr" # memsz.MnemonicLetter,
6520 !cast<string>(memsz.TypeBits)>;
6564 foreach memsz = [MVE_memB, MVE_memH, MVE_memW, MVE_memD] in
6565 foreach suffix = memsz.suffixes in {
6570 if !ne(suffix, memsz.CanonLoadSuffix) then {
6572 "vldr" # memsz.MnemonicLetter # vpt_cond # suffix,
6573 "vldr" # memsz.MnemonicLetter # vpt_cond # memsz.CanonLoadSuffix>;
6576 if !ne(suffix, memsz.CanonStoreSuffix) then {
6578 "vstr" # memsz.MnemonicLetter # vpt_cond # suffix,
6579 "vstr" # memsz.MnemonicLetter # vpt_cond # memsz.CanonStoreSuffix>;