RFR: aarch64: add support for vectorizing floating-point fabs & fneg
Andrew Haley
aph at redhat.com
Fri Sep 25 16:41:15 UTC 2015
On 24/09/15 14:22, Felix Yang wrote:
> + #define INSN(NAME, opc, opc2) \
> + void NAME(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn) {
> \
> + starti;
> \
> + assert(T == T2S || T == T4S || T == T2D, "invalid arrangement");
> \
> + f(0, 31), f((int)T & 1, 30), f(opc, 29), f(0b01110, 28, 24), f(1, 23);
> \
> + f(T==T2D ? 1:0, 22), f(opc2, 21, 10), rf(Vn, 5), rf(Vd, 0);
> \
> + }
> +
> + INSN(fabs, 0, 0b100000111110);
> + INSN(fneg, 1, 0b100000111110);
> +
FABS and FNEG are instances of the "AdvSIMD two-reg misc" pattern. Please use it.
Please don't use so much space on the right hand side of continuations lines.
Andrew.
More information about the hotspot-compiler-dev
mailing list