vlse16.v
No synopsis available.
This instruction is defined by:
-
V, version >= 0
This instruction is included in the following profiles:
-
RVA22S64 (Optional)
-
RVA22U64 (Optional)
Decode Variables
Bits<3> nf = $encoding[31:29];
Bits<1> vm = $encoding[25];
Bits<5> rs2 = $encoding[24:20];
Bits<5> rs1 = $encoding[19:15];
Bits<5> vd = $encoding[11:7];
Execution
-
IDL
-
Sail
{
let load_width_bytes = vlewidth_bytesnumber(width);
let EEW = load_width_bytes * 8;
let EEW_pow = vlewidth_pow(width);
let SEW_pow = get_sew_pow();
let LMUL_pow = get_lmul_pow();
let EMUL_pow = EEW_pow - SEW_pow + LMUL_pow;
let num_elem = get_num_elem(EMUL_pow, EEW);
let nf_int = nfields_int(nf);
if illegal_load(vd, vm, nf_int, EEW, EMUL_pow) then { handle_illegal(); return RETIRE_FAIL };
process_vlsseg(nf_int, vm, vd, load_width_bytes, rs1, rs2, EMUL_pow, num_elem)
}