RFR: 8277777: [Vector API] assert(r->is_XMMRegister()) failed: must be in x86_32.ad

Jie Fu jiefu at openjdk.java.net
Wed Nov 24 12:04:16 UTC 2021


Hi all,

The following vector api tests fail on x86_32/AVX512 with `assert(r->is_XMMRegister()) failed: must be`.

jdk/incubator/vector/Byte64VectorLoadStoreTests.java
jdk/incubator/vector/Byte256VectorLoadStoreTests.java
jdk/incubator/vector/Byte128VectorLoadStoreTests.java
jdk/incubator/vector/ByteMaxVectorLoadStoreTests.java
jdk/incubator/vector/Double256VectorTests.java
jdk/incubator/vector/Double512VectorTests.java
jdk/incubator/vector/DoubleMaxVectorTests.java       
jdk/incubator/vector/Float512VectorTests.java           
jdk/incubator/vector/Float256VectorTests.java
jdk/incubator/vector/FloatMaxVectorTests.java
jdk/incubator/vector/Float128VectorTests.java
jdk/incubator/vector/Short128VectorLoadStoreTests.java
jdk/incubator/vector/Short256VectorLoadStoreTests.java
jdk/incubator/vector/Short64VectorLoadStoreTests.java
jdk/incubator/vector/ShortMaxVectorLoadStoreTests.java


The reason is that `static enum RC rc_class( OptoReg::Name reg )` [1] missed the case for KRegister.
And the AVX-512 opmask specific spilling code [2] should be located before the size assert [3].

Thanks.
Best regards,
Jie

[1] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86_32.ad#L747
[2] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86_32.ad#L1272
[3] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86_32.ad#L1252

-------------

Commit messages:
 - 8277777: [Vector API] assert(r->is_XMMRegister()) failed: must be in x86_32.ad

Changes: https://git.openjdk.java.net/jdk/pull/6535/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=6535&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8277777
  Stats: 41 lines in 1 file changed: 21 ins; 20 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6535.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6535/head:pull/6535

PR: https://git.openjdk.java.net/jdk/pull/6535


More information about the hotspot-compiler-dev mailing list