summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/panfrost/bifrost/bifrost_compile.c2
-rw-r--r--src/panfrost/bifrost/bifrost_compile.h3
2 files changed, 5 insertions, 0 deletions
diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c
index a6a70cc0311..dc9b6f9d706 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 9c94087dba2..e424a23a91e 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,