< prev index next >

src/hotspot/cpu/aarch64/assembler_aarch64.hpp

Print this page
rev 53101 : 8214922: Add vectorization support for fmin/fmax
Reviewed-by: duke

*** 2235,2244 **** --- 2235,2257 ---- INSN(clz, 1, 0b100000010010); INSN(cnt, 0, 0b100000010110); #undef INSN + #define INSN(NAME, opc) \ + void NAME(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn) { \ + starti; \ + assert(T == T4S, "arrangement must be T4S"); \ + f(0b01101110, 31, 24), f(opc, 23), f(0b0110000111110, 22, 10); \ + rf(Vn, 5), rf(Vd, 0); \ + } + + INSN(fmaxv, 0); + INSN(fminv, 1); + + #undef INSN + #define INSN(NAME, op0, cmode0) \ void NAME(FloatRegister Vd, SIMD_Arrangement T, unsigned imm8, unsigned lsl = 0) { \ unsigned cmode = cmode0; \ unsigned op = op0; \ starti; \
*** 2276,2285 **** --- 2289,2300 ---- INSN(fdiv, 1, 0, 0b111111); INSN(fmul, 1, 0, 0b110111); INSN(fsub, 0, 1, 0b110101); INSN(fmla, 0, 0, 0b110011); INSN(fmls, 0, 1, 0b110011); + INSN(fmax, 0, 0, 0b111101); + INSN(fmin, 0, 1, 0b111101); #undef INSN #define INSN(NAME, opc) \ void NAME(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn, FloatRegister Vm) { \
< prev index next >