diff options
author | 2020-04-27 21:02:28 +0100 | |
---|---|---|
committer | 2021-02-05 11:34:38 +0000 | |
commit | 55ab7e84c4682c492b6fa18375b87ffc5d0b23bb (patch) | |
tree | 5fcc2567a1a4e6ae73dead2f70c69bc03b0a64bb /libartbase/arch/instruction_set.h | |
parent | ac27ac01490f53f9e2413dc9b66fbb2880904c96 (diff) |
ARM64: Support SVE VL other than 128-bit.
Arm SVE register size is not fixed and can be a
multiple of 128 bits. To support that the patch
removes explicit assumptions on the SIMD register
size to be 128 bit from the vectorizer and code
generators and enables configurable SVE vector
length autovectorization, e.g. extends SIMD register
save/restore routines.
Test: art SIMD tests on VIXL simulator.
Test: art tests on FVP (steps in test/README.arm_fvp.md)
with FVP arg:
-C SVE.ScalableVectorExtension.veclen=[2,4]
(SVE vector [128,256] bits wide)
Change-Id: Icb46e7eb17f21d3bd38b16dd50f735c29b316427
Diffstat (limited to 'libartbase/arch/instruction_set.h')
-rw-r--r-- | libartbase/arch/instruction_set.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libartbase/arch/instruction_set.h b/libartbase/arch/instruction_set.h index 2fd8773d0e..dbaacda946 100644 --- a/libartbase/arch/instruction_set.h +++ b/libartbase/arch/instruction_set.h @@ -61,6 +61,9 @@ static constexpr size_t kArmAlignment = 8; // ARM64 instruction alignment. This is the recommended alignment for maximum performance. static constexpr size_t kArm64Alignment = 16; +// ARM64 default SVE vector length. +static constexpr size_t kArm64DefaultSVEVectorLength = 256; + // X86 instruction alignment. This is the recommended alignment for maximum performance. static constexpr size_t kX86Alignment = 16; |