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 <jonathan@marek.ca>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Jonathan Marek 2019-12-15 14:18:13 -05:00
parent d4676d7a16
commit b936143327
1 changed files with 3 additions and 0 deletions

View File

@ -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) {