@@ -340,15 +340,15 @@ def RISCVBaseVXMemOpTable : GenericTable {
340340let hasSideEffects = 0, mayLoad = 1, mayStore = 0 in {
341341// unit-stride load vd, (rs1), vm
342342class VUnitStrideLoad<RISCVWidth width, string opcodestr>
343- : RVInstVLU<0b000, width.Value{3} , LUMOPUnitStride, width.Value{2-0} ,
343+ : RVInstVLU<0b000, width, LUMOPUnitStride,
344344 (outs VR:$vd),
345345 (ins GPRMemZeroOffset:$rs1, VMaskOp:$vm), opcodestr, "$vd, ${rs1}$vm">;
346346
347347let vm = 1, RVVConstraint = NoConstraint in {
348348// unit-stride whole register load vl<nf>r.v vd, (rs1)
349349class VWholeLoad<int lmul, RISCVWidth width, string opcodestr, RegisterClass VRC>
350- : RVInstVLU<!sub(lmul, 1), width.Value{3} , LUMOPUnitStrideWholeReg,
351- width.Value{2-0}, (outs VRC:$vd), (ins GPRMemZeroOffset:$rs1),
350+ : RVInstVLU<!sub(lmul, 1), width, LUMOPUnitStrideWholeReg, (outs VRC:$vd) ,
351+ (ins GPRMemZeroOffset:$rs1),
352352 opcodestr, "$vd, $rs1"> {
353353 assert !and(!ge(lmul, 1), !le(lmul, 8)), "lmul must be 1-8";
354354
@@ -357,51 +357,44 @@ class VWholeLoad<int lmul, RISCVWidth width, string opcodestr, RegisterClass VRC
357357
358358// unit-stride mask load vd, (rs1)
359359class VUnitStrideMaskLoad<string opcodestr>
360- : RVInstVLU<0b000, LSWidth8.Value{3}, LUMOPUnitStrideMask, LSWidth8.Value{2-0},
361- (outs VR:$vd),
360+ : RVInstVLU<0b000, LSWidth8, LUMOPUnitStrideMask, (outs VR:$vd),
362361 (ins GPRMemZeroOffset:$rs1), opcodestr, "$vd, $rs1">;
363362} // vm = 1, RVVConstraint = NoConstraint
364363
365364// unit-stride fault-only-first load vd, (rs1), vm
366365class VUnitStrideLoadFF<RISCVWidth width, string opcodestr>
367- : RVInstVLU<0b000, width.Value{3}, LUMOPUnitStrideFF, width.Value{2-0},
368- (outs VR:$vd),
366+ : RVInstVLU<0b000, width, LUMOPUnitStrideFF, (outs VR:$vd),
369367 (ins GPRMemZeroOffset:$rs1, VMaskOp:$vm), opcodestr, "$vd, ${rs1}$vm">;
370368
371369// strided load vd, (rs1), rs2, vm
372370class VStridedLoad<RISCVWidth width, string opcodestr>
373- : RVInstVLS<0b000, width.Value{3}, width.Value{2-0},
374- (outs VR:$vd),
371+ : RVInstVLS<0b000, width, (outs VR:$vd),
375372 (ins GPRMemZeroOffset:$rs1, GPR:$rs2, VMaskOp:$vm), opcodestr,
376373 "$vd, $rs1, $rs2$vm">;
377374
378375// indexed load vd, (rs1), vs2, vm
379376class VIndexedLoad<RISCVMOP mop, RISCVWidth width, string opcodestr>
380- : RVInstVLX<0b000, width.Value{3}, mop, width.Value{2-0},
381- (outs VR:$vd),
377+ : RVInstVLX<0b000, width, mop, (outs VR:$vd),
382378 (ins GPRMemZeroOffset:$rs1, VR:$vs2, VMaskOp:$vm), opcodestr,
383379 "$vd, $rs1, $vs2$vm">;
384380
385381// unit-stride segment load vd, (rs1), vm
386382class VUnitStrideSegmentLoad<int nfields, RISCVWidth width, string opcodestr>
387- : RVInstVLU<!sub(nfields, 1), width.Value{3}, LUMOPUnitStride, width.Value{2-0},
388- (outs VR:$vd),
383+ : RVInstVLU<!sub(nfields, 1), width, LUMOPUnitStride, (outs VR:$vd),
389384 (ins GPRMemZeroOffset:$rs1, VMaskOp:$vm), opcodestr, "$vd, ${rs1}$vm"> {
390385 assert !and(!ge(nfields, 2), !le(nfields, 8)), "nfields must be 2-8";
391386}
392387
393388// segment fault-only-first load vd, (rs1), vm
394389class VUnitStrideSegmentLoadFF<int nfields, RISCVWidth width, string opcodestr>
395- : RVInstVLU<!sub(nfields, 1), width.Value{3}, LUMOPUnitStrideFF, width.Value{2-0},
396- (outs VR:$vd),
390+ : RVInstVLU<!sub(nfields, 1), width, LUMOPUnitStrideFF, (outs VR:$vd),
397391 (ins GPRMemZeroOffset:$rs1, VMaskOp:$vm), opcodestr, "$vd, ${rs1}$vm"> {
398392 assert !and(!ge(nfields, 2), !le(nfields, 8)), "nfields must be 2-8";
399393}
400394
401395// strided segment load vd, (rs1), rs2, vm
402396class VStridedSegmentLoad<int nfields, RISCVWidth width, string opcodestr>
403- : RVInstVLS<!sub(nfields, 1), width.Value{3}, width.Value{2-0},
404- (outs VR:$vd),
397+ : RVInstVLS<!sub(nfields, 1), width, (outs VR:$vd),
405398 (ins GPRMemZeroOffset:$rs1, GPR:$rs2, VMaskOp:$vm), opcodestr,
406399 "$vd, $rs1, $rs2$vm"> {
407400 assert !and(!ge(nfields, 2), !le(nfields, 8)), "nfields must be 2-8";
@@ -410,8 +403,7 @@ class VStridedSegmentLoad<int nfields, RISCVWidth width, string opcodestr>
410403// indexed segment load vd, (rs1), vs2, vm
411404class VIndexedSegmentLoad<int nfields, RISCVMOP mop, RISCVWidth width,
412405 string opcodestr>
413- : RVInstVLX<!sub(nfields, 1), width.Value{3}, mop, width.Value{2-0},
414- (outs VR:$vd),
406+ : RVInstVLX<!sub(nfields, 1), width, mop, (outs VR:$vd),
415407 (ins GPRMemZeroOffset:$rs1, VR:$vs2, VMaskOp:$vm), opcodestr,
416408 "$vd, $rs1, $vs2$vm"> {
417409 assert !and(!ge(nfields, 2), !le(nfields, 8)), "nfields must be 2-8";
@@ -421,15 +413,15 @@ class VIndexedSegmentLoad<int nfields, RISCVMOP mop, RISCVWidth width,
421413let hasSideEffects = 0, mayLoad = 0, mayStore = 1 in {
422414// unit-stride store vd, vs3, (rs1), vm
423415class VUnitStrideStore<RISCVWidth width, string opcodestr>
424- : RVInstVSU<0b000, width.Value{3} , SUMOPUnitStride, width.Value{2-0} ,
425- (outs), ( ins VR:$vs3, GPRMemZeroOffset:$rs1, VMaskOp:$vm), opcodestr,
416+ : RVInstVSU<0b000, width, SUMOPUnitStride, (outs) ,
417+ (ins VR:$vs3, GPRMemZeroOffset:$rs1, VMaskOp:$vm), opcodestr,
426418 "$vs3, ${rs1}$vm">;
427419
428420let vm = 1 in {
429421// vs<lmul>r.v vd, (rs1)
430422class VWholeStore<int lmul, string opcodestr, RegisterClass VRC>
431- : RVInstVSU<!sub(lmul, 1), 0 , SUMOPUnitStrideWholeReg,
432- 0b000, (outs), (ins VRC:$vs3, GPRMemZeroOffset:$rs1),
423+ : RVInstVSU<!sub(lmul, 1), LSWidth8 , SUMOPUnitStrideWholeReg, (outs) ,
424+ (ins VRC:$vs3, GPRMemZeroOffset:$rs1),
433425 opcodestr, "$vs3, $rs1"> {
434426 assert !and(!ge(lmul, 1), !le(lmul, 8)), "lmul must be 1-8";
435427
@@ -438,34 +430,34 @@ class VWholeStore<int lmul, string opcodestr, RegisterClass VRC>
438430
439431// unit-stride mask store vd, vs3, (rs1)
440432class VUnitStrideMaskStore<string opcodestr>
441- : RVInstVSU<0b000, LSWidth8.Value{3} , SUMOPUnitStrideMask, LSWidth8.Value{2-0} ,
442- (outs), ( ins VR:$vs3, GPRMemZeroOffset:$rs1), opcodestr,
433+ : RVInstVSU<0b000, LSWidth8, SUMOPUnitStrideMask, (outs) ,
434+ (ins VR:$vs3, GPRMemZeroOffset:$rs1), opcodestr,
443435 "$vs3, $rs1">;
444436} // vm = 1
445437
446438// strided store vd, vs3, (rs1), rs2, vm
447439class VStridedStore<RISCVWidth width, string opcodestr>
448- : RVInstVSS<0b000, width.Value{3}, width.Value{2-0} , (outs),
440+ : RVInstVSS<0b000, width, (outs),
449441 (ins VR:$vs3, GPRMemZeroOffset:$rs1, GPR:$rs2, VMaskOp:$vm),
450442 opcodestr, "$vs3, $rs1, $rs2$vm">;
451443
452444// indexed store vd, vs3, (rs1), vs2, vm
453445class VIndexedStore<RISCVMOP mop, RISCVWidth width, string opcodestr>
454- : RVInstVSX<0b000, width.Value{3} , mop, width.Value{2-0} , (outs),
446+ : RVInstVSX<0b000, width, mop, (outs),
455447 (ins VR:$vs3, GPRMemZeroOffset:$rs1, VR:$vs2, VMaskOp:$vm),
456448 opcodestr, "$vs3, $rs1, $vs2$vm">;
457449
458450// segment store vd, vs3, (rs1), vm
459451class VUnitStrideSegmentStore<int nfields, RISCVWidth width, string opcodestr>
460- : RVInstVSU<!sub(nfields, 1), width.Value{3} , SUMOPUnitStride, width.Value{2-0} ,
461- (outs), ( ins VR:$vs3, GPRMemZeroOffset:$rs1, VMaskOp:$vm), opcodestr,
452+ : RVInstVSU<!sub(nfields, 1), width, SUMOPUnitStride, (outs) ,
453+ (ins VR:$vs3, GPRMemZeroOffset:$rs1, VMaskOp:$vm), opcodestr,
462454 "$vs3, ${rs1}$vm"> {
463455 assert !and(!ge(nfields, 2), !le(nfields, 8)), "nfields must be 2-8";
464456}
465457
466458// segment store vd, vs3, (rs1), rs2, vm
467459class VStridedSegmentStore<int nfields, RISCVWidth width, string opcodestr>
468- : RVInstVSS<!sub(nfields, 1), width.Value{3}, width.Value{2-0} , (outs),
460+ : RVInstVSS<!sub(nfields, 1), width, (outs),
469461 (ins VR:$vs3, GPRMemZeroOffset:$rs1, GPR:$rs2, VMaskOp:$vm),
470462 opcodestr, "$vs3, $rs1, $rs2$vm"> {
471463 assert !and(!ge(nfields, 2), !le(nfields, 8)), "nfields must be 2-8";
@@ -474,7 +466,7 @@ class VStridedSegmentStore<int nfields, RISCVWidth width, string opcodestr>
474466// segment store vd, vs3, (rs1), vs2, vm
475467class VIndexedSegmentStore<int nfields, RISCVMOP mop, RISCVWidth width,
476468 string opcodestr>
477- : RVInstVSX<!sub(nfields, 1), width.Value{3} , mop, width.Value{2-0} , (outs),
469+ : RVInstVSX<!sub(nfields, 1), width, mop, (outs),
478470 (ins VR:$vs3, GPRMemZeroOffset:$rs1, VR:$vs2, VMaskOp:$vm),
479471 opcodestr, "$vs3, $rs1, $vs2$vm"> {
480472 assert !and(!ge(nfields, 2), !le(nfields, 8)), "nfields must be 2-8";
0 commit comments