mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
target/arm: Implement FP16 for Neon VADD, VSUB, VABD, VMUL
Implement FP16 support for the Neon insns which use the DO_3S_FP_GVEC macro: VADD, VSUB, VABD, VMUL. For VABD this requires us to implement a new gvec_fabd_h helper using the machinery we have already for the other helpers. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20200828183354.27913-24-peter.maydell@linaro.org
This commit is contained in:
parent
46a4b85452
commit
e4a6d4a69e
3 changed files with 26 additions and 17 deletions
|
@ -707,6 +707,11 @@ static float64 float64_ftsmul(float64 op1, uint64_t op2, float_status *stat)
|
|||
return result;
|
||||
}
|
||||
|
||||
static float16 float16_abd(float16 op1, float16 op2, float_status *stat)
|
||||
{
|
||||
return float16_abs(float16_sub(op1, op2, stat));
|
||||
}
|
||||
|
||||
static float32 float32_abd(float32 op1, float32 op2, float_status *stat)
|
||||
{
|
||||
return float32_abs(float32_sub(op1, op2, stat));
|
||||
|
@ -739,6 +744,7 @@ DO_3OP(gvec_ftsmul_h, float16_ftsmul, float16)
|
|||
DO_3OP(gvec_ftsmul_s, float32_ftsmul, float32)
|
||||
DO_3OP(gvec_ftsmul_d, float64_ftsmul, float64)
|
||||
|
||||
DO_3OP(gvec_fabd_h, float16_abd, float16)
|
||||
DO_3OP(gvec_fabd_s, float32_abd, float32)
|
||||
|
||||
#ifdef TARGET_AARCH64
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue