vle16.v
No synopsis available.
This instruction is defined by:
-
V, version >= 0
This instruction is included in the following profiles:
-
RVA22U64 (Optional)
Decode Variables
Bits<1> vm = $encoding[25];
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); /* # of element of each register group */
let nf_int = nfields_int(nf);
if illegal_load(vd, vm, nf_int, EEW, EMUL_pow) then { handle_illegal(); return RETIRE_FAIL };
process_vlseg(nf_int, vm, vd, load_width_bytes, rs1, EMUL_pow, num_elem)
}