Skip to content
This repository has been archived by the owner on Mar 20, 2024. It is now read-only.

Latest commit

 

History

History
3273 lines (2923 loc) · 70.1 KB

listing.adoc

File metadata and controls

3273 lines (2923 loc) · 70.1 KB

WARNING THIS DOCUMENT IS OUT OF DATE WITH THE REST OF THE REPO!

sext(value,size) { /* sign extend from size to vemaxw bits */ }
zext(value,size) { /* zero extend from size to vemaxw bits */ }
nanbox(value,size) { /* fill with '1 from size to vemaxw bis */ }
readmem(addr, size) { /* read 'size' bits from memory */ }
sreadmem(addr, size) { /* read 'size' bits from memory and sign-extend to vemaxw bits */ }
zreadmem(addr, size) { /* read 'size' bits from memory and zero-extend to vemaxw bits */ }
nreadmem(addr, size) { /* read 'size' bits from memory and nanbox to vemaxw bits */ }
jam(value, shftamt)
{
        for (i = 0; i < shftamt; i++ )
        {
                low = low | (value & 0x1);
                value = value >> 1;
        }
        value = value | low;
        return value;
}
rne(value, shftamt)
{
}
rup(value, shftamt)
{
}
clips(value, shftamt, size)
{
    if   ( vxrm[1:0] == 00 ) value = value >> shftamt;
    else ( vxrm[1:0] == 01 ) value = jam(value, shftamt);
    else ( vxrm[1:0] == 10 ) value = rne(value, shftamt);
    else ( vxrm[1:0] == 11 ) value = rup(value, shftamt);
    poslim = (1<<(size-1)) - 1
    neglim = -(1<<(size-1))
    if ( vxcm == 0 ) result = value & ((1<<size)-1);
    if ( vxcm == 1 ) result = max(neglim,min(poslim,value));
    return result;
}
clipu(value, shftamt, size)
{
    if   ( vxrm[1:0] == 00 ) value = value >> shftamt;
    else ( vxrm[1:0] == 01 ) value = jam(value, shftamt);
    else ( vxrm[1:0] == 10 ) value = rne(value, shftamt);
    else ( vxrm[1:0] == 11 ) value = rup(value, shftamt);
    poslim = (1<<size) - 1
    if ( vxcm == 0 ) result = value & ((1<<size)-1);
    if ( vxcm == 1 ) result = max(0,min(poslim,value));
}
== `vadd vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] + vs2{i}[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] + vs2{0}[vemaxw-1:0]: 0;
}
== `vaddi vd, vs1, imm, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] + sext(imm) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] + sext(imm) : 0;
}
== `vaddw vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? sext(vs1{i}[31:0] + vs2{i}[31:0]) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? sext(vs1{0}[31:0] + vs2{0}[31:0]) : 0;
}
== `vaddiw vd, vs1, imm, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? sext(vs1{i}[31:0] + sext(imm)) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? sext(vs1{0}[31:0] + sext(imm)) : 0;
}
== `vsub vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] - vs2{i}[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] - vs2{0}[vemaxw-1:0]: 0;
}
== `vsubi vd, vs1, imm, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] - sext(imm) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] - sext(imm) : 0;
}
== `vmul vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (vs1{i}[vemaxw-1:0] * vs2{i}[vemaxw-1:0])[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (vs1{0}[vemaxw-1:0] * vs2{0}[vemaxw-1:0])[vemaxw-1:0]: 0;
}
== `vmulh vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (vs1{i}[vemaxw-1:0] * vs2{i}[vemaxw-1:0])[2*vemaxw-1:vemaxw] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (vs1{0}[vemaxw-1:0] * vs2{0}[vemaxw-1:0])[2*vemaxw-1:vemaxw]: 0;
}
== `vmulhu vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (vs1{i}[vemaxw-1:0] *u vs2{i}[vemaxw-1:0])[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (vs1{0}[vemaxw-1:0] *u vs2{0}[vemaxw-1:0])[vemaxw-1:0]: 0;
}
== `vmulhsu vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (vs1{i}[vemaxw-1:0] * unsigned(vs2{i}[vemaxw-1:0]))[2*vemaxw-1:vemaxw] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (vs1{0}[vemaxw-1:0] * unsigned(vs2{0}[vemaxw-1:0]))[2*vemaxw-1:vemaxw]: 0;
}
== `vmulwdn vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (vs1{i}[vemaxw/2:0] * vs2{i}[vemaxw/2:0])[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (vs1{0}[vemaxw/2:0] * vs2{0}[vemaxw/2:0])[vemaxw-1:0]: 0;
}
== `vdiv vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (vs1{i}[vemaxw-1:0] / vs2{i}[vemaxw-1:0])[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (vs1{0}[vemaxw-1:0] / vs2{0}[vemaxw-1:0])[vemaxw-1:0]: 0;
}
== `vdivu vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (vs1{i}[vemaxw-1:0] /u vs2{i}[vemaxw-1:0])[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (vs1{0}[vemaxw-1:0] /u vs2{0}[vemaxw-1:0])[vemaxw-1:0]: 0;
}
== `vrem vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (vs1{i}[vemaxw-1:0] % vs2{i}[vemaxw-1:0])[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (vs1{0}[vemaxw-1:0] % vs2{0}[vemaxw-1:0])[vemaxw-1:0]: 0;
}
== `vremu vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (vs1{i}[vemaxw-1:0] %u vs2{i}[vemaxw-1:0])[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (vs1{0}[vemaxw-1:0] %u vs2{0}[vemaxw-1:0])[vemaxw-1:0]: 0;
}
== `vsll vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] << vs2{i}[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] << vs2{0}[vemaxw-1:0]: 0;
}
== `vslli vd, vs1, shamt, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] << shamt[5:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] << shamt[5:0]: 0;
}
== `vsra vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] >>a vs2{i}[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] >>a vs2{0}[vemaxw-1:0]: 0;
}
== `vsrai vd, vs1, shamt, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] >>a shamt[5:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] >>a shamt[5:0]: 0;
}
== `vsrl vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] >> vs2{i}[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] >> vs2{0}[vemaxw-1:0]: 0;
}
== `vsrli vd, vs1, shamt, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] >> shamt[5:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] >> shamt[5:0]: 0;
}
== `vand vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] & vs2{i}[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] & vs2{0}[vemaxw-1:0]: 0;
}
== `vandi vd, vs1, imm, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] & sext(imm) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] & sext(imm) : 0;
}
== `vor vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] | vs2{i}[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] | vs2{0}[vemaxw-1:0]: 0;
}
== `vori vd, vs1, imm, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] | sext(imm) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] | sext(imm) : 0;
}
== `vxor vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] ^ vs2{i}[vemaxw-1:0] : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] ^ vs2{0}[vemaxw-1:0]: 0;
}
== `vxori vd, vs1, imm, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? vs1{i}[vemaxw-1:0] ^ sext(imm) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? vs1{0}[vemaxw-1:0] ^ sext(imm) : 0;
}
== `vmseq vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (vs1{i}[vemaxw-1:0] == vs2{i}[vemaxw-1:0] ? 1 : 0) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (vs1{0}[vemaxw-1:0] == vs2{0}[vemaxw-1:0] ? 1 : 0) : 0;
}
== `vmslt vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (vs1{i}[vemaxw-1:0] <= vs2{i}[vemaxw-1:0] ? 1 : 0) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (vs1{0}[vemaxw-1:0] <= vs2{0}[vemaxw-1:0] ? 1 : 0) : 0;
}
== `vmsltu vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (vs1{i}[vemaxw-1:0] <= static_cast[unsigned](vs2{i}[vemaxw-1:0]) ? 1 : 0) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (vs1{0}[vemaxw-1:0] <= static_cast[unsigned](vs2{0}[vemaxw-1:0]) ? 1 : 0) : 0;
}
== `vclipb vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? clips(vs1{i}[vemaxw-1:0], vs2{i}[vemaxw-1:0], 8) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? clips(vs1{0}[vemaxw-1:0], vs2{0}[vemaxw-1:0], 8) : 0;
}
== `vclipbu vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? clipu(vs1{i}[vemaxw-1:0], vs2{i}[vemaxw-1:0], 8) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? clipu(vs1{0}[vemaxw-1:0], vs2{0}[vemaxw-1:0], 8) : 0;
}
== `vcliph vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? clips(vs1{i}[vemaxw-1:0], vs2{i}[vemaxw-1:0], 16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? clips(vs1{0}[vemaxw-1:0], vs2{0}[vemaxw-1:0], 16) : 0;
}
== `vcliphu vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? clipu(vs1{i}[vemaxw-1:0], vs2{i}[vemaxw-1:0], 16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? clipu(vs1{0}[vemaxw-1:0], vs2{0}[vemaxw-1:0], 16) : 0;
}
== `vclipw vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? clips(vs1{i}[vemaxw-1:0], vs2{i}[vemaxw-1:0], 32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? clips(vs1{0}[vemaxw-1:0], vs2{0}[vemaxw-1:0], 32) : 0;
}
== `vclipwu vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? clipu(vs1{i}[vemaxw-1:0], vs2{i}[vemaxw-1:0], 32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? clipu(vs1{0}[vemaxw-1:0], vs2{0}[vemaxw-1:0], 32) : 0;
}
== `vfadd.h vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{i}[15:0] +f vs2{i}[15:0], 16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{0}[15:0] +f vs2{0}[15:0], 16) : 0;
}
== `vfadd.s vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{i}[31:0] +f vs2{i}[31:0], 32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{0}[31:0] +f vs2{0}[31:0], 32) : 0;
}
== `vfadd.d vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{i}[63:0] +f vs2{i}[63:0], 64) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{0}[63:0] +f vs2{0}[63:0], 64) : 0;
}
== `vfsub.h vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{i}[15:0] -f vs2{i}[15:0], 16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{0}[15:0] -f vs2{0}[15:0], 16) : 0;
}
== `vfsub.s vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{i}[31:0] -f vs2{i}[31:0], 32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{0}[31:0] -f vs2{0}[31:0], 32) : 0;
}
== `vfsub.d vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{i}[63:0] -f vs2{i}[63:0], 64) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{0}[63:0] -f vs2{0}[63:0], 64) : 0;
}
== `vfmul.h vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{i}[15:0] *f vs2{i}[15:0], 16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{0}[15:0] *f vs2{0}[15:0], 16) : 0;
}
== `vfmul.s vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{i}[31:0] *f vs2{i}[31:0], 32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{0}[31:0] *f vs2{0}[31:0], 32) : 0;
}
== `vfmul.d vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{i}[63:0] *f vs2{i}[63:0], 64) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{0}[63:0] *f vs2{0}[63:0], 64) : 0;
}
== `vfdiv.h vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{i}[15:0] /f vs2{i}[15:0], 16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{0}[15:0] /f vs2{0}[15:0], 16) : 0;
}
== `vfdiv.s vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{i}[31:0] /f vs2{i}[31:0], 32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{0}[31:0] /f vs2{0}[31:0], 32) : 0;
}
== `vfdiv.d vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{i}[63:0] /f vs2{i}[63:0], 64) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(vs1{0}[63:0] /f vs2{0}[63:0], 64) : 0;
}
== `vfsgnj.h vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnj(vs1{i}[15:0], vs2{i}[15:0]), 16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnj(vs1{0}[15:0], vs2{0}[15:0]), 16) : 0;
}
== `vfsgnjn.h vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnjn(vs1{i}[15:0], vs2{i}[15:0]), 16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnjn(vs1{0}[15:0], vs2{0}[15:0]), 16) : 0;
}
== `vfsgnjx.h vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnjx(vs1{i}[15:0], vs2{i}[15:0]), 16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnjx(vs1{0}[15:0], vs2{0}[15:0]), 16) : 0;
}
== `vfsgnj.s vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnj(vs1{i}[31:0], vs2{i}[15:0]), 32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnj(vs1{0}[31:0], vs2{0}[15:0]), 32) : 0;
}
== `vfsgnjn.s vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnjn(vs1{i}[31:0], vs2{i}[15:0]), 32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnjn(vs1{0}[31:0], vs2{0}[15:0]), 32) : 0;
}
== `vfsgnjx.s vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnjx(vs1{i}[31:0], vs2{i}[15:0]), 32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnjx(vs1{0}[31:0], vs2{0}[15:0]), 32) : 0;
}
== `vfsgnj.d vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnj(vs1{i}[63:0], vs2{i}[15:0]), 64) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnj(vs1{0}[63:0], vs2{0}[15:0]), 64) : 0;
}
== `vfsgnjn.d vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnjn(vs1{i}[63:0], vs2{i}[15:0]), 64) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fsgnjn(vs1{0}[63:0], vs2{0}[15:0]), 64) : 0;
}
== `vfsgnjx.d vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(sgnjx(vs1{i}[63:0], vs2{i}[63:0]), 64) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(sgnjx(vs1{0}[63:0], vs2{0}[63:0]), 64) : 0;
}
== `vfmax.h vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fmax(vs1{i}[15:0], vs2{i}[15:0]), 16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fmax(vs1{0}[15:0], vs2{0}[15:0]), 16) : 0;
}
== `vfmax.s vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fmax(vs1{i}[31:0], vs2{i}[15:0]), 32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fmax(vs1{0}[31:0], vs2{0}[15:0]), 32) : 0;
}
== `vfmax.d vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fmax(vs1{i}[63:0], vs2{i}[63:0]), 64) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fmax(vs1{0}[63:0], vs2{0}[63:0]), 64) : 0;
}
== `vfmin.h vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fmin(vs1{i}[15:0], vs2{i}[15:0]), 16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fmin(vs1{0}[15:0], vs2{0}[15:0]), 16) : 0;
}
== `vfmin.s vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fmin(vs1{i}[31:0], vs2{i}[15:0]), 32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fmin(vs1{0}[31:0], vs2{0}[15:0]), 32) : 0;
}
== `vfmin.d vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? nanbox(fmin(vs1{i}[63:0], vs2{i}[63:0]), 64) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? nanbox(fmin(vs1{0}[63:0], vs2{0}[63:0]), 64) : 0;
}
== `vmfeq.h vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (feq(vs1{i}[15:0], vs2{i}[15:0]) ? 1 : 0) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (feq(vs1{0}[15:0], vs2{0}[15:0]) ? 1 : 0) : 0;
}
== `vmfeq.s vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (feq(vs1{i}[31:0], vs2{i}[31:0]) ? 1 : 0) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (feq(vs1{0}[31:0], vs2{0}[31:0]) ? 1 : 0) : 0;
}
== `vmfeq.d vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (feq(vs1{i}[63:0], vs2{i}[63:0]) ? 1 : 0) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (feq(vs1{0}[63:0], vs2{0}[63:0]) ? 1 : 0) : 0;
}
== `vmflt.h vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (flt(vs1{i}[15:0], vs2{i}[15:0]) ? 1 : 0) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (flt(vs1{0}[15:0], vs2{0}[15:0]) ? 1 : 0) : 0;
}
== `vmflt.s vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (flt(vs1{i}[31:0], vs2{i}[31:0]) ? 1 : 0) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (flt(vs1{0}[31:0], vs2{0}[31:0]) ? 1 : 0) : 0;
}
== `vmflt.d vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (flt(vs1{i}[63:0], vs2{i}[63:0]) ? 1 : 0) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (flt(vs1{0}[63:0], vs2{0}[63:0]) ? 1 : 0) : 0;
}
== `vmfle.h vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (fle(vs1{i}[15:0], vs2{i}[15:0]) ? 1 : 0) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (fle(vs1{0}[15:0], vs2{0}[15:0]) ? 1 : 0) : 0;
}
== `vmfle.s vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (fle(vs1{i}[31:0], vs2{i}[31:0]) ? 1 : 0) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (fle(vs1{0}[31:0], vs2{0}[31:0]) ? 1 : 0) : 0;
}
== `vmfle.d vd, vs1, vs2, m`
Encoding:

Semantics for m=01,10,11:
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[maxew-1:0] = enable ? (fle(vs1{i}[63:0], vs2{i}[63:0]) ? 1 : 0) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = 0;
}
Semantics for m=00:
[source, c]
for (i = 0; i < maxvl; i++ )
{
        vd{i}[maxew-1:0] = enable ? (fle(vs1{0}[63:0], vs2{0}[63:0]) ? 1 : 0) : 0;
}
== `vlb vd, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? sreadmem(addr,8)) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + 1;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr,8))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlbu vd, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? zreadmem(addr,8)) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + 1;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr,8))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlh vd, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? sreadmem(addr,16)) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + 2;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr,16))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlhu vd, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? zreadmem(addr,16)) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + 2;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr,16))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlw vd, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? sreadmem(addr,32)) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + 4;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr,32))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlwu vd, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? zreadmem(addr,32)) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + 4;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr,32))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vld vd, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? readmem(addr,64)) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + 8;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = readmem(addr,64))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vflh vd, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? nreadmem(addr,16)) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + 2;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = nreadmem(addr,16))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vflw vd, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? nreadmem(addr,32)) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + 4;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = nreadmem(addr,32))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vfld vd, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? readmem(addr,64) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + 8;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = readmem(addr,64)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlsb vd, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? sreadmem(addr,8) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr,8)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlsbu vd, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? zreadmem(addr,8) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr,8)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlsh vd, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? sreadmem(addr,16) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr,16)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlshu vd, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? zreadmem(addr,16) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr,16)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlsw vd, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? sreadmem(addr,32) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr,32)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlswu vd, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? zreadmem(addr,32) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr,32)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlsd vd, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? readmem(addr,64) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = readmem(addr,64)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vflsh vd, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? nreadmem(addr,16) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = nreadmem(addr,16)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vflsw vd, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? nreadmem(addr,32) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = nreadmem(addr,32)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vflsd vd, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? readmem(addr,64) : 0;
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = readmem(addr,64)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlxb vd, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? sreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],8) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],8)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlxbu vd, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? zreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],8) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],8)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlxh vd, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? sreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],16)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlxhu vd, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? zreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],16)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlxw vd, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? sreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],32)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlxwu vd, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? zreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],32)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlxd vd, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? readmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],64) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = readmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],64)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vflxh vd, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? nreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],16) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = nreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],16)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vflxw vd, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? nreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],32) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = nreadmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],32)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vflxd vd, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? readmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],64) : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = readmem(addr[vemaxw-1:0] + vs2{i}[vemaxw-1:0],64)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlob vd, rs1, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr,8));
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? value : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr,8))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlobu vd, rs1, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr,8));
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? value : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr,8))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vloh vd, rs1, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr,16));
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? value : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr,16))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlohu vd, rs1, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr,16));
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? value : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr,16))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlow vd, rs1, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr,32));
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? value : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = sreadmem(addr,32))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlowu vd, rs1, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr,32));
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? value : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = zreadmem(addr,32))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vlod vd, rs1, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = readmem(addr,64));
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? value : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = readmem(addr,64))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vfloh vd, rs1, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = nreadmem(addr,16));
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? value : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = nreadmem(addr,16))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vflow vd, rs1, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = nreadmem(addr,32));
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? value : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = nreadmem(addr,32))
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vflod vd, rs1, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = readmem(addr,64);
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        vd{i}[vemaxw-1:0] = enable ? value : 0;
}
for (     ; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = 0;
}
Semantics for m=00:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
value[vemaxw-1:0] = readmem(addr,64)
for (i = 0; i < maxvl; i++ )
{
        vd{i}[vemaxw-1:0] = value
}
== `vsb vs3, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        if ( enable ) writemem(addr, vs3{i}[7:0], 8);
        addr[XLEN-1:0] = addr[XLEN-1:0] + 1;
}
== `vsh vs3, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        if ( enable ) writemem(addr, vs3{i}[15:0], 16));
        addr[XLEN-1:0] = addr[XLEN-1:0] + 2;
}
== `vsw vs3, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        if ( enable ) writemem(addr, vs3{i}[31:0], 32));
        addr[XLEN-1:0] = addr[XLEN-1:0] + 4;
}
== `vsd vs3, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        if ( enable ) writemem(addr, vs3{i}[63:0], 64));
        addr[XLEN-1:0] = addr[XLEN-1:0] + 8;
}
== `vssb vs3, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        if ( enable ) writemem(addr, vs3{i}[7:0], 8);
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
== `vssh vs3, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        if ( enable ) writemem(addr, vs3{i}[15:0], 16);
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
== `vssw vs3, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        if ( enable ) writemem(addr, vs3{i}[31:0], 32);
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
== `vssd vs3, offset(rs1), rs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        if ( enable ) writemem(addr, vs3{i}[63:0], 64);
        addr[XLEN-1:0] = addr[XLEN-1:0] + rs2[63:0];
}
== `vsxb vs3, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        if ( enable ) writemem(addr[xlen-1:0] + vs2{i}[vemaxw-1:0], vs3{i}[7:0], 8);
}
== `vsxh vs3, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        if ( enable ) writemem(addr[xlen-1:0] + vs2{i}[vemaxw-1:0], vs3{i}[15:0], 16);
}
== `vsxw vs3, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        if ( enable ) writemem(addr[xlen-1:0] + vs2{i}[vemaxw-1:0], vs3{i}[31:0], 32);
}
== `vsxd vs3, offset(rs1), vs2, m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + imm;
for (i = 0; i < vl; i++ )
{
        enable = m[1] == 0 || m[0] == v1{i}[0];
        if ( enable ) writemem(addr[xlen-1:0] + vs2{i}[vemaxw-1:0], vs3{i}[63:0], 64);
}
== `vsob vs3, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + offset;
writemem(addr, vs3{0}[7:0], 8);
== `vsoh vs3, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + offset;
writemem(addr, vs3{0}[15:0], 16);
== `vsow vs3, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + offset;
writemem(addr, vs3{0}[31:0], 32);
== `vsod vs3, offset(rs1), m`
Encoding:

Semantics for m=01,10,11:
[source, c]
addr[XLEN-1:0] = rs1[XLEN-1:0] + offset;
writemem(addr, vs3{0}[63:0], 64);