RFR: 8271078: jdk/incubator/vector/Float128VectorTests.java failed a subtest [v4]

Dean Long dlong at openjdk.java.net
Mon May 16 22:39:33 UTC 2022


On Mon, 16 May 2022 22:22:11 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

>> Dean Long has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Just do full 512-bit memory accesses when -XX:+UseKNLSetting is set
>
> src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp line 237:
> 
>> 235:   } else {
>> 236:     if (VM_Version::supports_evex()) {
>> 237:       // Save upper bank of XMM registers(16..31) for scalar or 16-byte vector usage
> 
> I have a question:
> This is on the else path where save_wide_vectors is false. Why do we need to save the full vector registers here? 
> Could this be a problem at the call site of this method (save_live_registers) from where save_wide_vectors is not being sent as true?

C2 uses SharedRuntime::is_wide_vector(C->max_vector_size()) to determine the value of save_wide_vectors, and is_wide_vector() does
`return size > 16;`
so we need to save vector bytes 0 - 15 even if save_wide_vectors is false.

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

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


More information about the hotspot-compiler-dev mailing list