From 3f7e7495fc36a2b167a798169d76be02383d24df Mon Sep 17 00:00:00 2001 From: Icecream95 Date: Tue, 29 Dec 2020 11:21:27 +1300 Subject: [PATCH] pan/bi: Lower umul_high Also lower uadd_carry, which the mul_high lowering generates. Reviewed-by: Alyssa Rosenzweig Part-of: --- src/panfrost/bifrost/bifrost_compile.c | 2 ++ src/panfrost/bifrost/bifrost_compile.h | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c index a6a70cc..dc9b6f9 100644 --- a/src/panfrost/bifrost/bifrost_compile.c +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -2162,6 +2162,8 @@ bi_optimize_nir(nir_shader *nir) NIR_PASS(progress, nir, nir_opt_algebraic); NIR_PASS(progress, nir, nir_opt_constant_folding); + NIR_PASS(progress, nir, nir_lower_alu); + if (lower_flrp != 0) { bool lower_flrp_progress = false; NIR_PASS(lower_flrp_progress, diff --git a/src/panfrost/bifrost/bifrost_compile.h b/src/panfrost/bifrost/bifrost_compile.h index 9c94087..e424a23 100644 --- a/src/panfrost/bifrost/bifrost_compile.h +++ b/src/panfrost/bifrost/bifrost_compile.h @@ -69,6 +69,9 @@ static const nir_shader_compiler_options bifrost_nir_options = { .lower_doubles_options = nir_lower_dmod, /* TODO: Don't lower supported 64-bit operations */ .lower_int64_options = ~0, + /* TODO: Use IMULD on v7 */ + .lower_mul_high = true, + .lower_uadd_carry = true, .lower_bitfield_extract_to_shifts = true, .has_fsub = true, -- 2.7.4