OpenJDK / panama / dev
changeset 59099:9b0a0f3c0d4f vectorIntrinsics
Add matching rule for SqrtVF.
Contributed-by: eric.liu2@arm.com
author | yzhang |
---|---|
date | Thu, 22 Aug 2019 14:26:30 +0800 |
parents | 815e3347fc91 |
children | 5a545ce819e7 |
files | src/hotspot/cpu/aarch64/aarch64.ad |
diffstat | 1 files changed, 22 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/hotspot/cpu/aarch64/aarch64.ad Wed Aug 21 12:31:18 2019 +0800 +++ b/src/hotspot/cpu/aarch64/aarch64.ad Thu Aug 22 14:26:30 2019 +0800 @@ -18304,6 +18304,28 @@ ins_pipe(vsqrt_fp128); %} +instruct vsqrt2F(vecD dst, vecD src) +%{ + predicate(n->as_Vector()->length() == 2); + match(Set dst (SqrtVF src)); + format %{ "fsqrt $dst, $src\t# vector (2F)" %} + ins_encode %{ + __ fsqrt(as_FloatRegister($dst$$reg), __ T2S, as_FloatRegister($src$$reg)); + %} + ins_pipe(vunop_fp64); +%} + +instruct vsqrt4F(vecX dst, vecX src) +%{ + predicate(n->as_Vector()->length() == 4); + match(Set dst (SqrtVF src)); + format %{ "fsqrt $dst, $src\t# vector (4S)" %} + ins_encode %{ + __ fsqrt(as_FloatRegister($dst$$reg), __ T4S, as_FloatRegister($src$$reg)); + %} + ins_pipe(vsqrt_fp128); +%} + // --------------------------------- ABS -------------------------------------- instruct vabs8B(vecD dst, vecD src)