diff --git a/compiler/noirc_evaluator/src/ssa/acir_gen/acir_ir/acir_variable.rs b/compiler/noirc_evaluator/src/ssa/acir_gen/acir_ir/acir_variable.rs index 5cf70b098f9..13d1ad707c2 100644 --- a/compiler/noirc_evaluator/src/ssa/acir_gen/acir_ir/acir_variable.rs +++ b/compiler/noirc_evaluator/src/ssa/acir_gen/acir_ir/acir_variable.rs @@ -1649,7 +1649,6 @@ impl AcirContext { &mut self, inputs: Vec, bit_size: u32, - predicate: AcirVar, ) -> Result, RuntimeError> { let len = inputs.len(); // Convert the inputs into expressions @@ -1666,25 +1665,16 @@ impl AcirContext { self.acir_ir.permutation(&inputs_expr, &output_expr)?; // Enforce the outputs to be sorted + let true_var = self.add_constant(true); for i in 0..(outputs_var.len() - 1) { - self.less_than_constrain(outputs_var[i], outputs_var[i + 1], bit_size, predicate)?; + let less_than_next_element = + self.more_than_eq_var(outputs_var[i + 1], outputs_var[i], bit_size)?; + self.assert_eq_var(less_than_next_element, true_var, None)?; } Ok(outputs_var) } - /// Constrain lhs to be less than rhs - fn less_than_constrain( - &mut self, - lhs: AcirVar, - rhs: AcirVar, - bit_size: u32, - predicate: AcirVar, - ) -> Result<(), RuntimeError> { - let lhs_less_than_rhs = self.more_than_eq_var(rhs, lhs, bit_size)?; - self.maybe_eq_predicate(lhs_less_than_rhs, predicate) - } - /// Returns a Variable that is constrained to be the result of reading /// from the memory `block_id` at the given `index`. pub(crate) fn read_from_memory( diff --git a/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs b/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs index 5d067737930..211506a6d15 100644 --- a/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs +++ b/compiler/noirc_evaluator/src/ssa/acir_gen/mod.rs @@ -1623,10 +1623,7 @@ impl Context { } } // Generate the sorted output variables - let out_vars = self - .acir_context - .sort(input_vars, bit_size, self.current_side_effects_enabled_var) - .expect("Could not sort"); + let out_vars = self.acir_context.sort(input_vars, bit_size)?; Ok(self.convert_vars_to_values(out_vars, dfg, result_ids)) }