From b936143327cb223ec4d20af349778c56af4101ec Mon Sep 17 00:00:00 2001 From: Jonathan Marek Date: Sun, 15 Dec 2019 14:18:13 -0500 Subject: [PATCH] freedreno/ir3: lower mul_2x32_64 lower_mul_2x32_64 generates mul_high opcodes, and lower_mul_high is done by nir_lower_alu, so call nir_lower_alu after nir_opt_algebraic. Signed-off-by: Jonathan Marek Reviewed-by: Eric Anholt --- src/freedreno/ir3/ir3_nir.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/freedreno/ir3/ir3_nir.c b/src/freedreno/ir3/ir3_nir.c index 17db07616e8..4a45a15ba50 100644 --- a/src/freedreno/ir3/ir3_nir.c +++ b/src/freedreno/ir3/ir3_nir.c @@ -48,6 +48,7 @@ static const nir_shader_compiler_options options = { .lower_uadd_carry = true, .lower_usub_borrow = true, .lower_mul_high = true, + .lower_mul_2x32_64 = true, .fuse_ffma = true, .vertex_id_zero_based = true, .lower_extract_byte = true, @@ -77,6 +78,7 @@ static const nir_shader_compiler_options options_a6xx = { .lower_uadd_carry = true, .lower_usub_borrow = true, .lower_mul_high = true, + .lower_mul_2x32_64 = true, .fuse_ffma = true, .vertex_id_zero_based = false, .lower_extract_byte = true, @@ -150,6 +152,7 @@ ir3_optimize_loop(nir_shader *s) progress |= OPT(s, nir_opt_peephole_select, 16, true, true); progress |= OPT(s, nir_opt_intrinsics); progress |= OPT(s, nir_opt_algebraic); + progress |= OPT(s, nir_lower_alu); progress |= OPT(s, nir_opt_constant_folding); if (lower_flrp != 0) { -- 2.30.2