Lines Matching full:vector

2 Scalable Vector Extension support for AArch64 Linux
10 order to support use of the ARM Scalable Vector Extension (SVE), including
25 * SVE registers Z0..Z31, P0..P15 and FFR and the current vector length VL, are
32 * The presence of SVE is reported to userspace via HWCAP_SVE in the aux vector
46 be reported in the AT_HWCAP2 aux vector entry. In addition to this,
64 reported in the AT_HWCAP2 aux vector entry. Among other things SME adds
66 separate SME vector length and the same Z/V registers. See sme.rst
90 2. Vector length terminology
93 The size of an SVE vector (Z) register is referred to as the "vector length".
95 To avoid confusion about the units used to express vector length, the kernel
98 * Vector length (VL) = size of a Z-register in bytes
100 * Vector quadwords (VQ) = size of a Z-register in units of 128 bits
125 * All other SVE state of a thread, including the currently configured vector
126 length, the state of the PR_SVE_VL_INHERIT flag, and the deferred vector
146 if set indicates that the thread is in streaming mode and the vector length
147 and register data (if present) describe the streaming SVE data and vector
151 the thread's vector length (in sve_context.vl).
190 * The vector length cannot be changed via signal return. If sve_context.vl in
191 the signal frame does not match the current vector length, the signal return
197 vector length in the new mode.
203 Some new prctl() calls are added to allow programs to manage the SVE vector
208 Sets the vector length of the calling thread and related flags, where
211 vl is the desired vector length, where sve_vl_valid(vl) must be true.
217 Inherit the current vector length across execve(). Otherwise, the
218 vector length is reset to the system default at execve(). (See
223 Defer the requested vector length change until the next execve()
231 This allows launching of a new program with a different vector
240 EINVAL: SVE not supported, invalid vector length requested, or
246 * Either the calling thread's vector length or the deferred vector length
253 * Any previously outstanding deferred vector length change in the calling
257 PR_SVE_GET_VL. The vector length reported in this value is the new
258 current vector length for this thread if PR_SVE_SET_VL_ONEXEC was not
259 present in arg; otherwise, the reported vector length is the deferred
260 vector length that will be applied at the next execve() by the calling
263 * Changing the vector length causes all of P0..P15, FFR and all bits of
266 vector length, or calling PR_SVE_SET_VL with the PR_SVE_SET_VL_ONEXEC
267 flag, does not constitute a change to the vector length for this purpose.
272 Gets the vector length of the calling thread.
278 Vector length will be inherited across execve().
281 vector length change (which would only normally be the case between a
284 To extract the vector length from the result, bitwise and it with
320 thread changes its vector length etc.
324 Target thread's current vector length, in bytes.
328 Maximum possible vector length for the target thread.
370 * The effects of changing the vector length and/or flags are equivalent to
382 case only the vector length and flags are changed (along with any
396 for the vector length actually set. The thread's FPSIMD state is
426 to set the default vector length for userspace processes:
431 default vector length to the specified value, unless the value is greater
432 than the maximum vector length supported by the system in which case the
433 default vector length is set to that maximum.
438 At boot, the default vector length is initially set to 64 or the maximum
439 supported vector length, whichever is smaller. This determines the initial
440 vector length of the init process (PID 1).
442 Reading this file returns the current system default vector length.
444 * At every execve() call, the new vector length of the new process is set to
445 the system default vector length, unless
450 * a deferred vector length change is pending, established via the
453 * Modifying the system default vector length does not affect the vector length
459 * The arm64 specific DWARF standard [5] added the VG (Vector Granule) register
463 * Its value is equivalent to the current SVE vector length (VL) in bits divided
489 * 32 8VL-bit vector registers Z0..Z31
490 For each Zn, Zn bits [127:0] alias the ARMv8-A vector register Vn.
499 * a VL "pseudo-register" that determines the size of each vector register
508 * The maximum vector length is determined by the hardware:
570 * 32 128-bit vector registers V0..V31