target/alpha: Use tcg_gen_movcond_i64 in gen_fold_mzero

The setcond + neg + and sequence is a complex method of
performing a conditional move.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2023-08-04 23:40:42 +00:00
parent 4a88387056
commit d55a3211e2

View File

@ -517,10 +517,9 @@ static void gen_fold_mzero(TCGCond cond, TCGv dest, TCGv src)
case TCG_COND_GE: case TCG_COND_GE:
case TCG_COND_LT: case TCG_COND_LT:
/* For >= or <, map -0.0 to +0.0 via comparison and mask. */ /* For >= or <, map -0.0 to +0.0. */
tcg_gen_setcondi_i64(TCG_COND_NE, dest, src, mzero); tcg_gen_movcond_i64(TCG_COND_NE, dest, src, tcg_constant_i64(mzero),
tcg_gen_neg_i64(dest, dest); src, tcg_constant_i64(0));
tcg_gen_and_i64(dest, dest, src);
break; break;
default: default: