Signed-off-by: Richard Henderson <richard.hender...@linaro.org> --- target/arm/tcg/sve_helper.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index 3f38e07829..a2ff3b7f11 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -2563,8 +2563,8 @@ void HELPER(sve_ftssel_h)(void *vd, void *vn, void *vm, uint32_t desc) if (mm & 1) { nn = float16_one; } - if ((mm & 2) && !(fpcr_ah && float16_is_any_nan(nn))) { - nn ^= (1 << 15); + if (mm & 2) { + nn = float16_maybe_ah_chs(nn, fpcr_ah); } d[i] = nn; } @@ -2581,8 +2581,8 @@ void HELPER(sve_ftssel_s)(void *vd, void *vn, void *vm, uint32_t desc) if (mm & 1) { nn = float32_one; } - if ((mm & 2) && !(fpcr_ah && float32_is_any_nan(nn))) { - nn ^= (1U << 31); + if (mm & 2) { + nn = float32_maybe_ah_chs(nn, fpcr_ah); } d[i] = nn; } @@ -2599,8 +2599,8 @@ void HELPER(sve_ftssel_d)(void *vd, void *vn, void *vm, uint32_t desc) if (mm & 1) { nn = float64_one; } - if ((mm & 2) && !(fpcr_ah && float64_is_any_nan(nn))) { - nn ^= (1ULL << 63); + if (mm & 2) { + nn = float64_maybe_ah_chs(nn, fpcr_ah); } d[i] = nn; } -- 2.43.0