RFR: 8291809: Convert compiler/c2/cr7200264/TestSSE2IntVect.java to IR verification test
Roberto Castañeda Lozano
rcastanedalo at openjdk.org
Tue Jan 16 08:57:19 UTC 2024
On Mon, 15 Jan 2024 15:13:27 GMT, Daniel Lundén <dlunden at openjdk.org> wrote:
> This changeset translates the tests in `compiler/c2/cr7200264/` to use the IR verification framework.
>
> The proposed translation, to the extent possible, attempts to preserve the semantics of the original tests. We may also want to refactor the tests to better make use of the various features of the IR verification framework. The proposed translated tests takes approximately twice as long to run compared to the original tests.
>
> Testing:
> - [GitHub Actions](https://github.com/dlunde/jdk/actions/runs/7528802846)
> - Ran the new translated tests within all tier1 through tier10 contexts on windows-x64, linux-x64, linux-aarch64, macosx-x64, and macosx-aarch64.
> - Tested that manually adding `-XX:LoopUnrollLimit=0` to the test framework flags caused the translated tests to fail. Note: it is, however, no longer possible to break the tests by passing `-XX:LoopUnrollLimit=0` on the command line.
Thanks for working on this, Daniel!
These tests would be more idiomatic, precise, and possibly even faster if the IR verification was applied to each vectorization method (`test_sum`, `test_addc`, etc.) separately, instead of doing it as a bulk check over the entire `TestIntVect::testInner()`. This can be achieved by using `applyIfCPUFeature` annotations in the IR checks, similarly to e.g. `test/hotspot/jtreg/compiler/loopopts/superword/RedTest_int.java`. I recognize this limitation is pre-existing, but this issue seems a good place to address it.
-------------
Changes requested by rcastanedalo (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/17428#pullrequestreview-1822807360
More information about the hotspot-compiler-dev
mailing list