summaryrefslogtreecommitdiff
path: root/test/527-checker-array-access-simd/src/Main.java
AgeCommit message (Collapse)Author
2024-03-22Don't use predicated vectorization by default. Artem Serov
This patch sets the traditional vectorization mode to be the default one; previously, if the target supported predicated vectorization (e.g. arm64 SVE), predicated vectorization was be tried for ALL loops. Motivation: this is a prerequisite for the further patches to enable mixed mode vectorization - when most of the loops are vectorized in traditional mode and some others - in predicated. A new env variable - ART_FORCE_TRY_PREDICATED_SIMD - is introduced to force-use the predicated mode; this could be set to true for testing purposes. Checker tests are adjusted accordingly - to also check the ART_FORCE_TRY_PREDICATED_SIMD variable. Test: test-art-target, test-art-host. Test: test-art-target with ART_FORCE_TRY_PREDICATED_SIMD=true. Original author: Artem Serov <Artem.Serov@linaro.org> Test: ./art/test/testrunner/testrunner.py --host --optimizing --jit Test: ./art/test/testrunner/testrunner.py --target --optimizing --jit (with ART_FORCE_TRY_PREDICATED_SIMD=true and without) Test: 661-checker-simd-cf-loops. Test: target tests on arm64 with SVE Change-Id: I57852f3777da6f86d615429d1a3c703cb87fbac8
2021-09-06SVE: Extract Intermediate Address for SVE Vector Memory Operations Raphael Gault
This patch introduces an optimization that extracts and factorizes the "base + offset" common part for the address computation when performing an SVE vector memory operation (VecStore/VecLoad). With SVE enabled by default: Test: ./art/test.py --simulate-arm64 --run-test --optimizing \ (With the VIXL simulator patch) Test: ./art/test.py --target --64 --optimizing \ (On Arm FVP with SVE - See steps in test/README.arm_fvp.md) Test: 527-checker-array-access, 655-checker-simd-arm. Change-Id: Icd49e57d5550d1530445a94e5d49e217a999d06d
2021-02-11ARM64: Adjust SIMD checker tests for SVE. Artem Serov
Adds SVE-specific checker line for SIMD tests using isaHasFeature() function. Test: test-art-target with Neon. 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: I8f2134861b47437823797da48a3ffb680bafc544
2017-05-11ARM64: Share address computation across SIMD LDRs/STRs. Artem Serov
For array accesses the element address has the following structure: Address = CONST_OFFSET + base_addr + index << ELEM_SHIFT Taking into account ARM64 LDR/STR addressing modes address part (CONST_OFFSET + index << ELEM_SHIFT) can be shared across array access with the same data type and index. For example, for the following loop 5 accesses can share address computation: void foo(int[] a, int[] b, int[] c) { for (i...) { a[i] = a[i] + 5; b[i] = b[i] + c[i]; } } Test: test-art-host, test-art-target Change-Id: I46af3b4e4a55004336672cdba3296b7622d815ca