summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRhys Perry <[email protected]>2019-09-24 15:15:26 +0100
committerRhys Perry <[email protected]>2019-09-25 15:27:48 +0000
commit641eac953c5fd59f69d3e7abe1443febc38d3a37 (patch)
tree8d9df992785842097c3ab32664833c8ceb5e33cf
parent36e000d8321814de11454c8574f2d3a8da01db8a (diff)
aco: run nir_lower_int64() before nir_lower_idiv()
nir_lower_idiv() asserts on 64-bit integers. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Daniel Schürmann <[email protected]>
-rw-r--r--src/amd/compiler/aco_instruction_selection_setup.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/amd/compiler/aco_instruction_selection_setup.cpp b/src/amd/compiler/aco_instruction_selection_setup.cpp
index 6c4c408e659..f77d12d2364 100644
--- a/src/amd/compiler/aco_instruction_selection_setup.cpp
+++ b/src/amd/compiler/aco_instruction_selection_setup.cpp
@@ -1307,9 +1307,6 @@ setup_isel_context(Program* program,
nir_lower_pack(nir);
/* lower ALU operations */
- nir_opt_idiv_const(nir, 32);
- nir_lower_idiv(nir); // TODO: use the LLVM path once !1239 is merged
-
// TODO: implement logic64 in aco, it's more effective for sgprs
nir_lower_int64(nir, (nir_lower_int64_options) (nir_lower_imul64 |
nir_lower_imul_high64 |
@@ -1320,6 +1317,9 @@ setup_isel_context(Program* program,
nir_lower_iabs64 |
nir_lower_ineg64));
+ nir_opt_idiv_const(nir, 32);
+ nir_lower_idiv(nir); // TODO: use the LLVM path once !1239 is merged
+
/* optimize the lowered ALU operations */
nir_copy_prop(nir);
nir_opt_constant_folding(nir);