From 90b56e99f416dfd9e5c34b672990d0ee1cb6a1fa Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Thu, 11 May 2023 19:41:20 +0800 Subject: [PATCH] radeonsi: use nir_umul_high for fast udiv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nir has dedicated alu op for it. Also for removing int64 multiply which aco does not support. Reviewed-by: Marek Olšák Signed-off-by: Qiang Yu Part-of: --- src/gallium/drivers/radeonsi/si_nir_lower_vs_inputs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_nir_lower_vs_inputs.c b/src/gallium/drivers/radeonsi/si_nir_lower_vs_inputs.c index 574b2e4e6c4..a69f56fe627 100644 --- a/src/gallium/drivers/radeonsi/si_nir_lower_vs_inputs.c +++ b/src/gallium/drivers/radeonsi/si_nir_lower_vs_inputs.c @@ -32,8 +32,7 @@ fast_udiv_nuw(nir_builder *b, nir_ssa_def *num, nir_ssa_def *divisor) num = nir_ushr(b, num, pre_shift); num = nir_iadd_nuw(b, num, increment); - num = nir_imul(b, nir_u2u64(b, num), nir_u2u64(b, multiplier)); - num = nir_unpack_64_2x32_split_y(b, num); + num = nir_umul_high(b, num, multiplier); return nir_ushr(b, num, post_shift); }