Zvl32b Extension
Synopsis
The Zvl32b extension requires the implementation to have a vector register length (VLEN) of at least 32 bits.
The Zvl*b extensions are a family of extensions that specify minimum vector register lengths. They allow software to determine the minimum VLEN supported by an implementation without needing to probe at runtime.
With VLEN=32 and the smallest supported SEW of 8 bits, the minimum VLMAX is 4 elements (with LMUL=1).
Instructions
The following instructions are affected by this extension:
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
Vector add with carry and masked |
|
Vector add with carry and masked |
|
Vector add with carry and scalar, masked |
|
Vector-immediate integer addition |
|
Vector-vector integer addition |
|
Vector-scalar integer addition |
|
No synopsis available |
|
Vector-vector bitwise AND |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
Vector floating-point add scalar |
|
Vector floating-point add |
|
No synopsis available |
|
Vector integer to floating-point conversion |
|
Vector unsigned integer to floating-point conversion |
|
Vector floating-point to integer conversion with truncation |
|
Vector floating-point to unsigned integer conversion with truncation |
|
Vector floating-point to integer conversion |
|
Vector floating-point to unsigned integer conversion |
|
Vector floating-point divide scalar |
|
Vector floating-point divide |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
Vector floating-point multiply scalar |
|
Vector floating-point multiply |
|
Vector floating-point to scalar move |
|
Vector scalar to floating-point move |
|
Vector floating-point to vector move |
|
Vector floating-point widening conversion |
|
Vector integer to floating-point widening conversion |
|
Vector unsigned integer to floating-point widening conversion |
|
Vector floating-point format conversion with round-to-odd (widening) |
|
Vector floating-point to integer widening conversion with truncation |
|
Vector floating-point to unsigned integer widening conversion with truncation |
|
Vector floating-point to integer widening conversion |
|
Vector floating-point to unsigned integer widening conversion |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
Vector floating-point subtract scalar |
|
Vector floating-point subtract |
|
Vector floating-point widening addition with scalar |
|
Vector floating-point widening addition |
|
No synopsis available |
|
No synopsis available |
|
Vector floating-point widening conversion |
|
Vector integer to floating-point widening conversion |
|
Vector unsigned integer to floating-point widening conversion |
|
Vector floating-point to integer widening conversion with truncation |
|
Vector floating-point to unsigned integer widening conversion with truncation |
|
Vector floating-point to integer widening conversion |
|
Vector floating-point to unsigned integer widening conversion |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
Vector floating-point widening subtraction with scalar |
|
Vector floating-point widening subtraction |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
Vector load 1 element of 16 bits with register stride |
|
Vector load 1 element of 32 bits with register stride |
|
Vector load 1 element of 64 bits with register stride |
|
Vector load 1 element of 8 bits with register stride |
|
Vector load 2 elements of 16 bits with register stride |
|
Vector load 2 elements of 32 bits with register stride |
|
Vector load 2 elements of 64 bits with register stride |
|
Vector load 2 elements of 8 bits with register stride |
|
Vector load 4 elements of 16 bits with register stride |
|
Vector load 4 elements of 32 bits with register stride |
|
Vector load 4 elements of 64 bits with register stride |
|
Vector load 4 elements of 8 bits with register stride |
|
Vector load 8 elements of 16 bits with register stride |
|
Vector load 8 elements of 32 bits with register stride |
|
Vector load 8 elements of 64 bits with register stride |
|
Vector load 8 elements of 8 bits with register stride |
|
Vector load 16-bit elements |
|
Vector load 16-bit elements, fault-first |
|
Vector load 32-bit elements |
|
Vector load 32-bit elements, fault-first |
|
Vector load 64-bit elements |
|
Vector load 64-bit elements, fault-first |
|
Vector 8-bit unit-stride load |
|
Vector load 8-bit elements, fault-first |
|
Vector load mask |
|
Vector ordered load 1 element of 16 bits with index |
|
Vector ordered load 1 element of 32 bits with index |
|
Vector ordered load 1 element of 64 bits with index |
|
Vector ordered load 1 element of 8 bits with index |
|
Vector ordered load 2 elements of 16 bits with index |
|
Vector ordered load 2 elements of 32 bits with index |
|
Vector ordered load 2 elements of 64 bits with index |
|
Vector ordered load 2 elements of 8 bits with index |
|
Vector ordered load 3 elements of 16 bits with index |
|
Vector ordered load 3 elements of 32 bits with index |
|
Vector ordered load 3 elements of 64 bits with index |
|
Vector ordered load 3 elements of 8 bits with index |
|
Vector ordered load 4 elements of 16 bits with index |
|
Vector ordered load 4 elements of 32 bits with index |
|
Vector ordered load 4 elements of 64 bits with index |
|
Vector ordered load 4 elements of 8 bits with index |
|
Vector ordered load 5 elements of 16 bits with index |
|
Vector ordered load 5 elements of 32 bits with index |
|
Vector ordered load 5 elements of 64 bits with index |
|
Vector ordered load 5 elements of 8 bits with index |
|
Vector ordered load 6 elements of 16 bits with index |
|
Vector ordered load 6 elements of 32 bits with index |
|
Vector ordered load 6 elements of 64 bits with index |
|
Vector ordered load 6 elements of 8 bits with index |
|
Vector ordered load 7 elements of 16 bits with index |
|
Vector ordered load 7 elements of 32 bits with index |
|
Vector ordered load 7 elements of 64 bits with index |
|
Vector ordered load 7 elements of 8 bits with index |
|
Vector ordered load 8 elements of 16 bits with index |
|
Vector ordered load 8 elements of 32 bits with index |
|
Vector ordered load 8 elements of 64 bits with index |
|
Vector ordered load 8 elements of 8 bits with index |
|
Vector load 16-bit elements with stride |
|
Vector load 32-bit elements with stride |
|
Vector strided load 64-bit elements |
|
Vector load 8-bit elements with stride |
|
Vector segmented load 2 elements of 16 bits |
|
Vector segmented load 2 elements of 16 bits, fault-first |
|
Vector segmented load 2 elements of 32 bits |
|
Vector segmented load 2 elements of 32 bits, fault-first |
|
Vector segmented load 2 elements of 64 bits |
|
Vector segmented load 2 elements of 64 bits, fault-first |
|
Vector segmented load 2 elements of 8 bits |
|
Vector segmented load 2 elements of 8 bits, fault-first |
|
Vector segmented load 3 elements of 16 bits |
|
Vector segmented load 3 elements of 16 bits, fault-first |
|
Vector segmented load 3 elements of 32 bits |
|
Vector segmented load 3 elements of 32 bits, fault-first |
|
Vector segmented load 3 elements of 64 bits |
|
Vector segmented load 3 elements of 64 bits, fault-first |
|
Vector segmented load 3 elements of 8 bits |
|
Vector segmented load 3 elements of 8 bits, fault-first |
|
Vector segmented load 4 elements of 16 bits |
|
Vector segmented load 4 elements of 16 bits, fault-first |
|
Vector segmented load 4 elements of 32 bits |
|
Vector segmented load 4 elements of 32 bits, fault-first |
|
Vector segmented load 4 elements of 64 bits |
|
Vector segmented load 4 elements of 64 bits, fault-first |
|
Vector segmented load 4 elements of 8 bits |
|
Vector segmented load 4 elements of 8 bits, fault-first |
|
Vector segmented load 5 elements of 16 bits |
|
Vector segmented load 5 elements of 16 bits, fault-first |
|
Vector segmented load 5 elements of 32 bits |
|
Vector segmented load 5 elements of 32 bits, fault-first |
|
Vector segmented load 5 elements of 64 bits |
|
Vector segmented load 5 elements of 64 bits, fault-first |
|
Vector segmented load 5 elements of 8 bits |
|
Vector segmented load 5 elements of 8 bits, fault-first |
|
Vector segmented load 6 elements of 16 bits |
|
Vector segmented load 6 elements of 16 bits, fault-first |
|
Vector segmented load 6 elements of 32 bits |
|
Vector segmented load 6 elements of 32 bits, fault-first |
|
Vector segmented load 6 elements of 64 bits |
|
Vector segmented load 6 elements of 64 bits, fault-first |
|
Vector segmented load 6 elements of 8 bits |
|
Vector segmented load 6 elements of 8 bits, fault-first |
|
Vector segmented load 7 elements of 16 bits |
|
Vector segmented load 7 elements of 16 bits, fault-first |
|
Vector segmented load 7 elements of 32 bits |
|
Vector segmented load 7 elements of 32 bits, fault-first |
|
Vector segmented load 7 elements of 64 bits |
|
Vector segmented load 7 elements of 64 bits, fault-first |
|
Vector segmented load 7 elements of 8 bits |
|
Vector segmented load 7 elements of 8 bits, fault-first |
|
Vector segmented load 8 elements of 16 bits |
|
Vector segmented load 8 elements of 16 bits, fault-first |
|
Vector segmented load 8 elements of 32 bits |
|
Vector segmented load 8 elements of 32 bits, fault-first |
|
Vector segmented load 8 elements of 64 bits |
|
Vector segmented load 8 elements of 64 bits, fault-first |
|
Vector segmented load 8 elements of 8 bits |
|
Vector segmented load 8 elements of 8 bits, fault-first |
|
Vector segmented load 2 elements of 16 bits with stride |
|
Vector segmented load 2 elements of 32 bits with stride |
|
Vector strided load 2 elements of 64 bits |
|
Vector segmented load 2 elements of 8 bits with stride |
|
Vector segmented load 3 elements of 16 bits with stride |
|
Vector segmented load 3 elements of 32 bits with stride |
|
Vector segmented load 3 elements of 64 bits with stride |
|
Vector segmented load 3 elements of 8 bits with stride |
|
Vector segmented load 4 elements of 16 bits with stride |
|
Vector segmented load 4 elements of 32 bits with stride |
|
Vector strided load 4 elements of 64 bits |
|
Vector strided load 4 elements of 8 bits |
|
Vector segmented load 5 elements of 16 bits with stride |
|
Vector segmented load 5 elements of 32 bits with stride |
|
Vector segmented load 5 elements of 64 bits with stride |
|
Vector strided load 5 elements of 8 bits |
|
Vector strided load 6 elements of 16 bits |
|
Vector strided load 6 elements of 32 bits |
|
Vector segmented load 6 elements of 64 bits with stride |
|
Vector segmented load 6 elements of 8 bits with stride |
|
Vector strided load 7 elements of 16 bits |
|
Vector segmented load 7 elements of 32 bits with stride |
|
Vector segmented load 7 elements of 64 bits with stride |
|
Vector segmented load 7 elements of 8 bits with stride |
|
Vector segmented load 8 elements of 16 bits with stride |
|
Vector segmented load 8 elements of 32 bits with stride |
|
Vector segmented load 8 elements of 64 bits with stride |
|
Vector segmented load 8 elements of 8 bits with stride |
|
Vector unordered load 1 element of 16 bits with index |
|
Vector unordered load 1 element of 32 bits with index |
|
Vector unordered load 1 element of 64 bits with index |
|
Vector unordered load 1 element of 8 bits with index |
|
No synopsis available |
|
No synopsis available |
|
Vector unordered load 2 elements of 64 bits with index |
|
Vector unordered load 2 elements of 8 bits with index |
|
Vector unordered load 3 elements of 16 bits with index |
|
Vector unordered load 3 elements of 32 bits with index |
|
Vector unordered load 3 elements of 64 bits with index |
|
Vector unordered load 3 elements of 8 bits with index |
|
Vector unordered load 4 elements of 16 bits with index |
|
Vector unordered load 4 elements of 32 bits with index |
|
Vector unordered load 4 elements of 64 bits with index |
|
Vector unordered load 4 elements of 8 bits with index |
|
Vector unordered load 5 elements of 16 bits with index |
|
Vector unordered load 5 elements of 32 bits with index |
|
Vector unordered load 5 elements of 64 bits with index |
|
Vector unordered load 5 elements of 8 bits with index |
|
Vector unordered load 6 elements of 16 bits with index |
|
Vector unordered load 6 elements of 32 bits with index |
|
Vector unordered load 6 elements of 64 bits with index |
|
Vector unordered load 6 elements of 8 bits with index |
|
Vector unordered load 7 elements of 16 bits with index |
|
Vector unordered load 7 elements of 32 bits with index |
|
Vector unordered load 7 elements of 64 bits with index |
|
Vector unordered load 7 elements of 8 bits with index |
|
Vector unordered load 8 elements of 16 bits with index |
|
Vector unordered load 8 elements of 32 bits with index |
|
Vector unordered load 8 elements of 64 bits with index |
|
Vector unordered load 8 elements of 8 bits with index |
|
No synopsis available |
|
No synopsis available |
|
Vector multiply-add with carry and immediate |
|
Vector multiply-add with carry and masked |
|
Vector multiply-add with carry |
|
Vector multiply-add with carry and masked |
|
Vector multiply-add with carry and scalar |
|
Vector multiply-add with carry and scalar, masked |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
Vector merge with mask |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
Vector multiply-subtract with carry |
|
No synopsis available |
|
Vector multiply-subtract with carry and scalar |
|
No synopsis available |
|
No synopsis available |
|
Vector mask equal immediate |
|
Vector mask equal |
|
Vector mask equal scalar |
|
Vector mask greater than signed immediate |
|
Vector mask greater than signed scalar |
|
Vector mask greater than unsigned immediate |
|
Vector mask greater than unsigned scalar |
|
No synopsis available |
|
Vector mask less than or equal signed immediate |
|
Vector mask less than or equal signed |
|
Vector mask less than or equal signed scalar |
|
Vector mask less than or equal unsigned immediate |
|
Vector mask less than or equal unsigned |
|
Vector mask less than or equal unsigned scalar |
|
Vector mask less than signed |
|
Vector mask less than signed scalar |
|
Vector mask less than unsigned |
|
Vector mask less than unsigned scalar |
|
Vector mask not equal immediate |
|
Vector mask not equal |
|
Vector mask not equal scalar |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
Vector move immediate to vector register |
|
Vector register move |
|
Vector scalar to vector move |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
Vector widening signed clip with immediate |
|
Vector widening signed clip |
|
Vector widening signed clip with scalar |
|
Vector widening unsigned clip with immediate |
|
Vector widening unsigned clip |
|
Vector widening unsigned clip with scalar |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
Vector widening signed shift right arithmetic with immediate |
|
Vector widening signed shift right arithmetic |
|
Vector widening signed shift right arithmetic with scalar |
|
Vector widening logical shift right with immediate |
|
Vector widening logical shift right |
|
Vector widening logical shift right with scalar |
|
Vector bitwise OR with immediate |
|
Vector-vector bitwise OR |
|
Vector bitwise OR with scalar |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
No synopsis available |
|
Vector remainder |
|
Vector remainder with scalar |
|
Vector unsigned remainder |
|
Vector unsigned remainder with scalar |
|
Vector register gather with immediate index |
|
Vector register gather |
|
Vector register gather with scalar index |
|
No synopsis available |
|
Vector reverse subtract with immediate |
|
Vector reverse subtract with scalar |
|
Vector store 1 element with register stride |
|
Vector store 2 elements |
|
Vector store 4 elements |
|
Vector store 8 elements with register stride |
|
Vector unsigned addition with immediate |
|
Vector unsigned addition |
|
Vector unsigned addition with scalar |
|
Vector signed addition with immediate |
|
Vector signed addition |
|
Vector signed addition with scalar |
|
Vector subtract with borrow and masked |
|
Vector subtract with borrow and scalar, masked |
|
Vector store 16-bit elements |
|
Vector store 32-bit elements |
|
Vector store 64-bit elements |
|
Vector 8-bit unit-stride store |
|
Vector Set Vector Type Immediate and Vector Length Immediate |
|
Vector Set Vector Type and Vector Length |
|
Set vector length immediate |
|
Vector sign-extend by factor of 2 |
|
Vector sign-extend by factor of 4 |
|
Vector sign-extend by factor of 8 |
|
Vector slide down by 1 element with scalar |
|
Vector slide up by 1 element with scalar |
|
Vector slide down with immediate |
|
Vector slide down with scalar |
|
Vector slide up with immediate |
|
Vector slide up with scalar |
|
Vector shift left logical immediate |
|
Vector shift left logical |
|
Vector shift left logical scalar |
|
Vector store mask |
|
Vector signed multiplication |
|
Vector signed multiplication with scalar |
|
Vector ordered store 1 element of 16 bits with index |
|
Vector ordered store 1 element of 32 bits with index |
|
Vector ordered store 1 element of 64 bits with index |
|
Vector ordered store 1 element of 8 bits with index |
|
Vector ordered store 2 elements of 16 bits with index |
|
Vector ordered store 2 elements of 32 bits with index |
|
Vector ordered store 2 elements of 64 bits with index |
|
Vector ordered store 2 elements of 8 bits with index |
|
Vector ordered store 3 elements of 16 bits with index |
|
Vector ordered store 3 elements of 32 bits with index |
|
Vector ordered store 3 elements of 64 bits with index |
|
Vector ordered store 3 elements of 8 bits with index |
|
Vector ordered store 4 elements of 16 bits with index |
|
Vector ordered store 4 elements of 32 bits with index |
|
Vector ordered store 4 elements of 64 bits with index |
|
Vector ordered store 4 elements of 8 bits with index |
|
Vector ordered store 5 elements of 16 bits with index |
|
Vector ordered store 5 elements of 32 bits with index |
|
Vector ordered store 5 elements of 64 bits with index |
|
Vector ordered store 5 elements of 8 bits with index |
|
Vector ordered store 6 elements of 16 bits with index |
|
Vector ordered store 6 elements of 32 bits with index |
|
Vector ordered store 6 elements of 64 bits with index |
|
Vector ordered store 6 elements of 8 bits with index |
|
Vector ordered store 7 elements of 16 bits with index |
|
Vector ordered store 7 elements of 32 bits with index |
|
Vector ordered store 7 elements of 64 bits with index |
|
Vector ordered store 7 elements of 8 bits with index |
|
Vector ordered store 8 elements of 16 bits with index |
|
Vector ordered store 8 elements of 32 bits with index |
|
Vector ordered store 8 elements of 64 bits with index |
|
Vector ordered store 8 elements of 8 bits with index |
|
Vector shift right arithmetic immediate |
|
Vector shift right arithmetic |
|
Vector shift right arithmetic scalar |
|
Vector shift right logical immediate |
|
Vector shift right logical |
|
Vector shift right logical scalar |
|
Vector strided store 16-bit elements |
|
Vector strided store 32-bit elements |
|
Vector store 64-bit elements with stride |
|
Vector store 8-bit elements with stride |
|
Vector segmented store 2 elements of 16 bits |
|
Vector segmented store 2 elements of 32 bits |
|
Vector segmented store 2 elements of 64 bits |
|
Vector segmented store 2 elements of 8 bits |
|
Vector segmented store 3 elements of 16 bits |
|
Vector segmented store 3 elements of 32 bits |
|
Vector segmented store 3 elements of 64 bits |
|
Vector segmented store 3 elements of 8 bits |
|
Vector segmented store 4 elements of 16 bits |
|
Vector segmented store 4 elements of 32 bits |
|
Vector segmented store 4 elements of 64 bits |
|
Vector segmented store 4 elements of 8 bits |
|
Vector segmented store 5 elements of 16 bits |
|
Vector segmented store 5 elements of 32 bits |
|
Vector segmented store 5 elements of 64 bits |
|
Vector segmented store 5 elements of 8 bits |
|
Vector segmented store 6 elements of 16 bits |
|
Vector segmented store 6 elements of 32 bits |
|
Vector segmented store 6 elements of 64 bits |
|
Vector segmented store 6 elements of 8 bits |
|
Vector segmented store 7 elements of 16 bits |
|
Vector segmented store 7 elements of 32 bits |
|
Vector segmented store 7 elements of 64 bits |
|
Vector segmented store 7 elements of 8 bits |
|
Vector segmented store 8 elements of 16 bits |
|
Vector segmented store 8 elements of 32 bits |
|
Vector segmented store 8 elements of 64 bits |
|
Vector segmented store 8 elements of 8 bits |
|
Vector signed shift right arithmetic with immediate |
|
Vector signed shift right arithmetic |
|
Vector signed shift right arithmetic with scalar |
|
Vector shift right logical by immediate |
|
No synopsis available |
|
Vector shift right logical by vector |
|
Vector strided store 2 elements of 16 bits |
|
Vector strided store 2 elements of 32 bits |
|
Vector segmented store 2 elements of 64 bits with stride |
|
Vector strided store 2 elements of 8 bits |
|
Vector strided store 3 elements of 16 bits |
|
Vector strided store 3 elements of 32 bits |
|
Vector segmented store 3 elements of 64 bits with stride |
|
Vector strided store 3 elements of 8 bits |
|
Vector strided store 4 elements of 16 bits |
|
Vector strided store 4 elements of 32 bits |
|
Vector segmented store 4 elements of 64 bits with stride |
|
Vector segmented store 4 elements of 8 bits with stride |
|
Vector segmented store 5 elements of 16 bits with stride |
|
Vector segmented store 5 elements of 32 bits with stride |
|
Vector segmented store 5 elements of 64 bits with stride |
|
Vector segmented store 5 elements of 8 bits with stride |
|
Vector segmented store 6 elements of 16 bits with stride |
|
Vector segmented store 6 elements of 32 bits with stride |
|
Vector strided store 6 elements of 64 bits |
|
Vector segmented store 6 elements of 8 bits with stride |
|
Vector segmented store 7 elements of 16 bits with stride |
|
Vector segmented store 7 elements of 32 bits with stride |
|
Vector strided store 7 elements of 64 bits |
|
Vector segmented store 7 elements of 8 bits with stride |
|
Vector segmented store 8 elements of 16 bits with stride |
|
Vector segmented store 8 elements of 32 bits with stride |
|
Vector segmented store 8 elements of 64 bits with stride |
|
Vector strided store 8 elements of 8 bits |
|
Vector subtraction |
|
Vector subtraction with scalar |
|
Vector unsigned subtraction |
|
Vector unsigned subtraction with scalar |
|
Vector-vector integer subtraction |
|
Vector-scalar integer subtraction |
|
Vector unordered store 1 element of 16 bits with index |
|
Vector unordered store 1 element of 32 bits with index |
|
Vector unordered store 1 element of 64 bits with index |
|
Vector unordered store 1 element of 8 bits with index |
|
Vector unordered store 2 elements of 16 bits with index |
|
Vector unordered store 2 elements of 32 bits with index |
|
Vector unordered store 2 elements of 64 bits with index |
|
Vector unordered store 2 elements of 8 bits with index |
|
Vector unordered store 3 elements of 16 bits with index |
|
Vector unordered store 3 elements of 32 bits with index |
|
Vector unordered store 3 elements of 64 bits with index |
|
Vector unordered store 3 elements of 8 bits with index |
|
Vector unordered store 4 elements of 16 bits with index |
|
Vector unordered store 4 elements of 32 bits with index |
|
Vector unordered store 4 elements of 64 bits with index |
|
Vector unordered store 4 elements of 8 bits with index |
|
Vector unordered store 5 elements of 16 bits with index |
|
Vector unordered store 5 elements of 32 bits with index |
|
Vector unordered store 5 elements of 64 bits with index |
|
Vector unordered store 5 elements of 8 bits with index |
|
Vector unordered store 6 elements of 16 bits with index |
|
Vector unordered store 6 elements of 32 bits with index |
|
Vector unordered store 6 elements of 64 bits with index |
|
Vector unordered store 6 elements of 8 bits with index |
|
Vector unordered store 7 elements of 16 bits with index |
|
Vector unordered store 7 elements of 32 bits with index |
|
Vector unordered store 7 elements of 64 bits with index |
|
Vector unordered store 7 elements of 8 bits with index |
|
Vector unordered store 8 elements of 16 bits with index |
|
Vector unordered store 8 elements of 32 bits with index |
|
Vector unordered store 8 elements of 64 bits with index |
|
Vector unordered store 8 elements of 8 bits with index |
|
Vector widening unsigned addition |
|
Vector widening unsigned addition with scalar |
|
No synopsis available |
|
No synopsis available |
|
Vector widening signed addition |
|
Vector widening signed addition with scalar |
|
No synopsis available |
|
No synopsis available |
|
Vector widening multiply-add |
|
Vector widening multiply-add with scalar |
|
Vector widening signed-unsigned multiply-add |
|
Vector widening signed-unsigned multiply-add with scalar |
|
Vector widening unsigned multiply-add |
|
Vector widening unsigned multiply-add with scalar |
|
Vector widening unsigned multiply-add with scalar, signed |
|
Vector widening signed multiplication |
|
Vector widening signed multiplication with scalar |
|
Vector widening signed-unsigned multiplication |
|
Vector widening signed-unsigned multiplication with scalar |
|
Vector widening unsigned multiplication |
|
Vector widening unsigned multiplication with scalar |
|
No synopsis available |
|
No synopsis available |
|
Vector widening signed subtraction |
|
Vector widening signed subtraction with scalar |
|
No synopsis available |
|
No synopsis available |
|
Vector widening unsigned subtraction |
|
Vector widening unsigned subtraction with scalar |
|
No synopsis available |
|
No synopsis available |
|
Vector bitwise XOR with immediate |
|
Vector-vector bitwise XOR |
|
Vector bitwise XOR with scalar |
|
Vector zero-extend by factor of 2 |
|
Vector zero-extend by factor of 4 |
|
Vector zero-extend by factor of 8 |
Parameters
This extension has the following implementation options (AKA parameters):
- ELEN
-
Type
integer
Valid Values
integer
Description
The maximum size in bits of a vector element that any operation can produce or consume.
- FOLLOW_VTYPE_RESET_RECOMMENDATION
-
Type
boolean
Valid Values
boolean
Description
It is recommended that at reset, vtype.vill is set, the remaining bits in vtype are zero, and vl is set to zero. If this parameter is set to true, this recommendation is followed. If it is false, at reset the respective fields will be UNDEFINED_LEGAL.
- IMPRECISE_VECTOR_TRAP_SETTABLE
-
Type
boolean
Valid Values
boolean
Description
Some profiles may provide a privileged configuration bit that selects between precise and imprecise vector trap behavior, allowing flexibility in how traps and partial updates are reported.
- LEGAL_VSTART
-
Type
string
Valid Values
[1_stride, 2_stride, 4_stride, custom]
Description
- RESERVED_VSET_X0X0_VILL_SET
-
Type
string
Valid Values
[never, always, custom]
Description
When rs1 = x0 and rd = x0, vset instructions act as if the current vector length in vl is used as the AVL. If
villis set or the configuration is reserved, implementations may setvillto indicate unsupported use of these encodings.
- RESERVED_VSET_X0X0_VLMAX_CHANGE
-
Type
string
Valid Values
[never, always, custom]
Description
When rs1=x0 and rd=x0, the instructions operate as if the current vector length in vl is used as the AVL. Use of the vset instructions with a new SEW/LMUL ratio that would result in a change of VLMAX is reserved. Implementations may set vill in either case.
- RVV_VL_WHEN_AVL_LT_DOUBLE_VLMAX
-
Type
string
Valid Values
[ceil(AVL/2), VLMAX, custom]
Description
The value assigned to VL when AVL < 2*VLMAX.
- SEW_MIN
-
Type
integer
Valid Values
[8, 16, 32, 64]
Description
Implementations must provide fractional LMUL settings that allow the narrowest supported element width (SEW) to occupy a fractional portion of a vector register relative to the widest supported SEW. In general, implementations must support LMUL >= SEW_MIN/ELEN, where SEW_MIN is the narrowest supported SEW and ELEN is the widest SEW.
- SUPPORT_FRACTIONAL_LMUL_BEYOND_REQUIRED
-
Type
string
Valid Values
[no_unrequired_supported, custom]
Description
For a given supported fractional LMUL setting, implementations must provide support for SEW settings covering the range from SEW_MIN up to LMUL * ELEN, inclusive. This ensures types narrower than the maximum SEW are supported when fractional LMULs are selected.
- VECTOR_FF_NO_EXCEPTION_TRIM
- VECTOR_FF_SEG_EXCEPTION_PARTIAL_LOAD
-
Type
string
Valid Values
[no_subsegment_loaded, custom]
Description
For fault-only-first segment loads, if an exception occurs partway through the zeroth segment, the trap is taken. If it occurs in a subsequent segment, vl may be reduced to the index of that segment. It is implementation-defined whether a partial subset of the segment is loaded before the trap.
- VECTOR_FF_UPDATE_PAST_TRIM
-
Type
string
Valid Values
[update_none, custom]
Description
Fault-only-first (FF) load instructions may update active destination elements beyond the index that causes vector-length trimming, but not past the original vl. These spurious updates need not reflect the true memory contents; non-idempotent memory should only be accessed when the load is guaranteed not to be retried.
- VECTOR_LOAD_PAST_TRAP
-
Type
boolean
Valid Values
boolean
Description
Vector load instructions may overwrite active destination vector register group elements past the element index where a trap is reported; the behavior for elements beyond the trap index is implementation-defined.
- VECTOR_LOAD_SEG_FF_OVERWRITE_ELEMENTS_AFTER_FAULT
-
Type
string
Valid Values
[no_overwrite, custom]
Description
Fault-only-first segment load instructions may overwrite destination vector register group elements beyond the point where a trap is reported or where vl is trimmed; the exact values written may be implementation-defined.
- VECTOR_LS_INDEX_MAX_EEW
-
Type
string
Valid Values
[8, 16, 32, 64, XLEN]
Description
A profile may place an upper limit on the maximum supported index EEW used by vector load/store indexing. For example, some profiles may limit indexing to sizes no larger than XLEN or a fixed EEW value.
- VECTOR_LS_MISALIGNED_LEGAL
-
Type
boolean
Valid Values
boolean
Description
If an element accessed by a vector memory instruction is not naturally aligned to the size of the element, either the element is transferred successfully or an address misaligned exception is raised on that element. Support for misaligned vector memory accesses is independent of an implementation’s support for misaligned scalar memory accesses.
- VECTOR_LS_SEG_PARTIAL_ACCESS
-
Type
boolean
Valid Values
boolean
Description
If a trap occurs during access to a segment, it is implementation-defined whether some, all, or none of that segment’s element accesses are performed before the trap is taken.
- VECTOR_LS_WHOLEREG_MISALIGNED_LEGAL
-
Type
boolean
Valid Values
boolean
Description
Implementations may raise a misaligned address exception for whole-register loads/stores if the base address is not aligned to the maximum of the encoded EEW size (in bytes) or the implementation’s smallest supported SEW (in bytes).
- VFREDUSUM_FINAL_NODE_ELEMENT_BEHAVIOR
-
Type
string
Valid Values
[additive_identity, copy]
Description
Implementations are permitted to insert an additional additive identity into the final reduction result, which may affect the final outcome when no active elements are present.
- VFREDUSUM_INACTIVE_NODE_ELEMENT_BEHAVIOR
-
Type
string
Valid Values
[additive_identity, copy]
Description
A reduction node that receives an input derived solely from masked-off elements or elements beyond vl may either treat that input as the additive identity for the appropriate element width or copy the other input through unchanged to the node output.
- VFREDUSUM_NAN
-
Type
string
Valid Values
[no_change, custom]
Description
The reduction tree structure must be deterministic for a given vtype and vl; as a consequence, implementations need not preserve NaN payloads when no elements are active. If no elements are active and the scalar input is NaN, implementations may canonicalize it (and raise an exception if it is a signaling NaN) or pass it through unchanged.
- VFREDUSUM_NODE_ROUNDING_BEHAVIOR
-
Type
string
Valid Values
[SEW_precision, custom]
Description
Each reduction operator computes an exact sum using an ideal scalar floating-point addition, then converts that result into a floating- point format with range and precision at least as large as the element SEW, rounding with the current dynamic rounding mode and raising exceptions as needed. Implementations may choose the exact range and precision per operator.
- VILL_SET_ON_RESERVED_VTYPE
-
Type
boolean
Valid Values
boolean
Description
Use of vtype encodings with LMUL < SEW_MIN/ELEN is reserved. Implementations may set the
villstatus bit to indicate such vtype encodings are unsupported, providing a software-visible indication of invalid vtype selections.
- VLEN
-
Type
integer
Valid Values
integer
Description
The number of bits in a single vector register.
- VSSTATUS_VS_EXISTS
-
Type
boolean
Valid Values
boolean
Description
Some implementations provide a vsstatus.VS field even when the misa.V bit is clear. This parameter indicates whether vsstatus.VS exists independently of the misa.V setting.