On Sat, 26 Feb 2022 03:38:32 GMT, Quan Anh Mai <d...@openjdk.java.net> wrote:
>> I believe the indefinite value should be 2^(w - 1) (a.k.a 0x80000000) and >> the documentation is typoed. If you look at `cvtss2si`, the indefinite value >> is also written as 2^w - 1 but yet in `MacroAssembler::convert_f2i` we >> compare it with 0x80000000. In addition, choosing -1 as an indefinite value >> is weird enough and to complicate it as 2^w - 1 is really unusual. > > `MacroAssembler::convert_f2i` > > https://github.com/openjdk/jdk/blob/c5c6058fd57d4b594012035eaf18a57257f4ad85/src/hotspot/cpu/x86/macroAssembler_x86.cpp#L8919 @jatin-bhateja @merykitty You are right, on overflow we observe 2^(w - 1) i.e. 0x8000 0000 so using vector_float_signflip() is correct. ------------- PR: https://git.openjdk.java.net/jdk/pull/7094