OSDN Git Service

target/arm: Implement MVE saturating doubling multiply accumulates
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 13 Aug 2021 16:11:54 +0000 (17:11 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Wed, 25 Aug 2021 09:48:50 +0000 (10:48 +0100)
commit8be9a25058f9a5505d6864f06de86ee01d42fc59
tree456f650bc3e584b160f8f05b52f0967cf41cfe67
parentc69e34c6debfb567f6118b59e6efa96a20765dda
target/arm: Implement MVE saturating doubling multiply accumulates

Implement the MVE saturating doubling multiply accumulate insns
VQDMLAH, VQRDMLAH, VQDMLASH and VQRDMLASH.  These perform a multiply,
double, add the accumulator shifted by the element size, possibly
round, saturate to twice the element size, then take the high half of
the result.  The *MLAH insns do vector * scalar + vector, and the
*MLASH insns do vector * vector + scalar.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
target/arm/helper-mve.h
target/arm/mve.decode
target/arm/mve_helper.c
target/arm/translate-mve.c