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