RFR(S): 8230591: AArch64: Missing intrinsics for Math.ceil, floor, rint
Pengfei Li
Pengfei.Li at arm.com
Fri Jan 10 03:34:38 UTC 2020
Hi Andrew,
> These instructions fall into the category "AdvSIMD two-reg misc". Please put
> them there. Otherwise OK, thanks.
Some of these rounding instructions do not perfectly match category "AdvSIMD two-reg misc". In that category, we use "f((int)(T >> 1), 23, 22)" where the SIMD_Arrangement T is "100", "101" or "111" for "T2S", "T4S" or "T2D" respectively. In this case, the 23rd bit is always set to 1. But for some rounding instructions (FRINTN/FRINTM), the 23rd bit should be 0.
Moreover, I don't think instructions FSQRT/FABS/FNEG should be put into that category as their 23rd bit is not actually derived from the data type (or we say the SIMD_Arrangement T), although there's no error since those bits happen to be 1.
So for better instruction categories, I would like to add a new category (perhaps named "AdvSIMD two-reg arithmetic") and put rounding instructions as well as FSQRT/FABS/FNEG into this. I will upload a new webrev if you agree with me.
--
Thanks,
Pengfei
More information about the hotspot-compiler-dev
mailing list