diff --git a/compiler/noirc_evaluator/src/acir/acir_context/brillig_call.rs b/compiler/noirc_evaluator/src/acir/acir_context/brillig_call.rs index 0cde0a2a1ef..99ee8e58133 100644 --- a/compiler/noirc_evaluator/src/acir/acir_context/brillig_call.rs +++ b/compiler/noirc_evaluator/src/acir/acir_context/brillig_call.rs @@ -185,7 +185,7 @@ impl> AcirContext { // We generate witnesses corresponding to the array values let index_var = self.add_constant(i); - let value_read_var = self.read_from_memory(block_id, &index_var)?; + let value_read_var = self.read_from_memory(block_id, &index_var, None)?; let value_read = AcirValue::Var(value_read_var, AcirType::field()); self.brillig_array_input(var_expressions, value_read)?; diff --git a/compiler/noirc_evaluator/src/acir/acir_context/mod.rs b/compiler/noirc_evaluator/src/acir/acir_context/mod.rs index 3456b013f52..748a665f5d8 100644 --- a/compiler/noirc_evaluator/src/acir/acir_context/mod.rs +++ b/compiler/noirc_evaluator/src/acir/acir_context/mod.rs @@ -1453,7 +1453,7 @@ impl> AcirContext { let index_var = self.add_constant(i); Ok::<(AcirVar, AcirType), InternalError>(( - self.read_from_memory(block_id, &index_var)?, + self.read_from_memory(block_id, &index_var, None)?, value_types[i].into(), )) }) @@ -1485,12 +1485,26 @@ impl> AcirContext { id } + /// Convert an optional predicate to an expression, adding it to the witnesses if necessary. + /// + /// Returns `None` if the predicate is a constant 1. + fn predicate_to_expression( + &mut self, + predicate: Option, + ) -> Result>, InternalError> { + predicate + .filter(|v| !self.is_constant_one(v)) + .map(|v| self.get_or_create_witness_var(v).and_then(|v| self.var_to_expression(v))) + .transpose() + } + /// 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( &mut self, block_id: BlockId, index: &AcirVar, + predicate: Option, ) -> Result { // Fetch the witness corresponding to the index let index_var = self.get_or_create_witness_var(*index)?; @@ -1500,9 +1514,12 @@ impl> AcirContext { let value_read_var = self.add_variable(); let value_read_witness = self.var_to_witness(value_read_var)?; + // Optionally disable the operation with a predicate. + let predicate = self.predicate_to_expression(predicate)?; + // Add the memory read operation to the list of opcodes let op = MemOp::read_at_mem_index(index_witness.into(), value_read_witness); - self.acir_ir.push_opcode(Opcode::MemoryOp { block_id, op, predicate: None }); + self.acir_ir.push_opcode(Opcode::MemoryOp { block_id, op, predicate }); Ok(value_read_var) } @@ -1513,6 +1530,7 @@ impl> AcirContext { block_id: BlockId, index: &AcirVar, value: &AcirVar, + predicate: Option, ) -> Result<(), InternalError> { // Fetch the witness corresponding to the index let index_var = self.get_or_create_witness_var(*index)?; @@ -1522,9 +1540,12 @@ impl> AcirContext { let value_write_var = self.get_or_create_witness_var(*value)?; let value_write_witness = self.var_to_witness(value_write_var)?; + // Optionally disable the operation with a predicate. + let predicate = self.predicate_to_expression(predicate)?; + // Add the memory write operation to the list of opcodes let op = MemOp::write_to_mem_index(index_witness.into(), value_write_witness.into()); - self.acir_ir.push_opcode(Opcode::MemoryOp { block_id, op, predicate: None }); + self.acir_ir.push_opcode(Opcode::MemoryOp { block_id, op, predicate }); Ok(()) } @@ -1591,7 +1612,7 @@ impl> AcirContext { let dynamic_array_values = try_vecmap(0..len, |i| { let index_var = self.add_constant(i); - let read = self.read_from_memory(block_id, &index_var)?; + let read = self.read_from_memory(block_id, &index_var, None)?; Ok::(AcirValue::Var(read, AcirType::field())) })?; for value in dynamic_array_values { diff --git a/compiler/noirc_evaluator/src/acir/arrays.rs b/compiler/noirc_evaluator/src/acir/arrays.rs index f47fbaa3465..ef528347d24 100644 --- a/compiler/noirc_evaluator/src/acir/arrays.rs +++ b/compiler/noirc_evaluator/src/acir/arrays.rs @@ -300,7 +300,7 @@ impl Context<'_> { let mut dummy_predicate_index = predicate_index; // We must setup the dummy value to match the type of the value we wish to store let dummy = - self.array_get_value(&store_type, block_id, &mut dummy_predicate_index)?; + self.array_get_value(&store_type, block_id, &mut dummy_predicate_index, false)?; Some(self.convert_array_set_store_value(&store_value, &dummy)?) } @@ -368,7 +368,7 @@ impl Context<'_> { let values = try_vecmap(0..*len, |i| { let index_var = self.acir_context.add_constant(i); - let read = self.acir_context.read_from_memory(*block_id, &index_var)?; + let read = self.acir_context.read_from_memory(*block_id, &index_var, None)?; Ok::(AcirValue::Var(read, AcirType::field())) })?; @@ -396,7 +396,7 @@ impl Context<'_> { typ: &Type, ) -> Result { match typ { - Type::Numeric(_) => self.array_get_value(typ, call_data_block, offset), + Type::Numeric(_) => self.array_get_value(typ, call_data_block, offset, false), Type::Array(arc, len) => { let mut result = im::Vector::new(); for _i in 0..*len { @@ -440,7 +440,7 @@ impl Context<'_> { !res_typ.contains_slice_element(), "ICE: Nested slice result found during ACIR generation" ); - self.array_get_value(&res_typ, block_id, &mut var_index)? + self.array_get_value(&res_typ, block_id, &mut var_index, false)? }; if let AcirValue::Var(value_var, typ) = &value { @@ -474,12 +474,17 @@ impl Context<'_> { ssa_type: &Type, block_id: BlockId, var_index: &mut AcirVar, + use_predicate: bool, ) -> Result { let one = self.acir_context.add_constant(FieldElement::one()); match ssa_type.clone() { Type::Numeric(numeric_type) => { // Read the value from the array at the specified index - let read = self.acir_context.read_from_memory(block_id, var_index)?; + let read = self.acir_context.read_from_memory( + block_id, + var_index, + use_predicate.then_some(self.current_side_effects_enabled_var), + )?; // Increment the var_index in case of a nested array *var_index = self.acir_context.add_var(*var_index, one)?; @@ -491,13 +496,18 @@ impl Context<'_> { let mut values = im::Vector::new(); for _ in 0..len { for typ in element_types.as_ref() { - values.push_back(self.array_get_value(typ, block_id, var_index)?); + values.push_back(self.array_get_value( + typ, + block_id, + var_index, + use_predicate, + )?); } } Ok(AcirValue::Array(values)) } Type::Reference(reference_type) => { - self.array_get_value(reference_type.as_ref(), block_id, var_index) + self.array_get_value(reference_type.as_ref(), block_id, var_index, use_predicate) } _ => unreachable!("ICE: Expected an array or numeric but got {ssa_type:?}"), } @@ -620,7 +630,7 @@ impl Context<'_> { match value { AcirValue::Var(store_var, _) => { // Write the new value into the new array at the specified index - self.acir_context.write_to_memory(block_id, var_index, store_var)?; + self.acir_context.write_to_memory(block_id, var_index, store_var, None)?; // Increment the var_index in case of a nested array *var_index = self.acir_context.add_var(*var_index, one)?; } @@ -633,7 +643,8 @@ impl Context<'_> { let values = try_vecmap(0..*len, |i| { let index_var = self.acir_context.add_constant(i); - let read = self.acir_context.read_from_memory(*inner_block_id, &index_var)?; + let read = + self.acir_context.read_from_memory(*inner_block_id, &index_var, None)?; Ok::(AcirValue::Var(read, AcirType::field())) })?; self.array_set_value(&AcirValue::Array(values.into()), block_id, var_index)?; @@ -779,8 +790,7 @@ impl Context<'_> { ) -> Result, RuntimeError> { let init_values = try_vecmap(0..array_len, |i| { let index_var = self.acir_context.add_constant(i); - - let read = self.acir_context.read_from_memory(source, &index_var)?; + let read = self.acir_context.read_from_memory(source, &index_var, None)?; Ok::(AcirValue::Var(read, AcirType::field())) })?; Ok(init_values.into()) @@ -815,7 +825,7 @@ impl Context<'_> { self.acir_context.mul_var(var_index, self.current_side_effects_enabled_var)?; self.acir_context - .read_from_memory(element_type_sizes, &predicate_index) + .read_from_memory(element_type_sizes, &predicate_index, None) .map_err(RuntimeError::from) } } diff --git a/compiler/noirc_evaluator/src/acir/mod.rs b/compiler/noirc_evaluator/src/acir/mod.rs index d6791b2c82c..f10e33fcf04 100644 --- a/compiler/noirc_evaluator/src/acir/mod.rs +++ b/compiler/noirc_evaluator/src/acir/mod.rs @@ -1401,8 +1401,12 @@ impl<'a> Context<'a> { let mut popped_elements = Vec::new(); for res in &result_ids[2..] { - let elem = - self.array_get_value(&dfg.type_of_value(*res), block_id, &mut var_index)?; + let elem = self.array_get_value( + &dfg.type_of_value(*res), + block_id, + &mut var_index, + true, + )?; popped_elements.push(elem); } @@ -1443,8 +1447,12 @@ impl<'a> Context<'a> { // In the case of non-nested slice the logic is simple as we do not // need to account for the internal slice sizes or flattening the index. for res in &result_ids[..element_size] { - let element = - self.array_get_value(&dfg.type_of_value(*res), block_id, &mut var_index)?; + let element = self.array_get_value( + &dfg.type_of_value(*res), + block_id, + &mut var_index, + true, + )?; let elem_size = arrays::flattened_value_size(&element); popped_elements_size += elem_size; popped_elements.push(element); @@ -1543,8 +1551,11 @@ impl<'a> Context<'a> { self.acir_context.add_var(use_shifted_index_pred, use_current_index_pred)? }; - let value_shifted_index = - self.acir_context.read_from_memory(block_id, &shifted_index)?; + let value_shifted_index = self.acir_context.read_from_memory( + block_id, + &shifted_index, + Some(self.current_side_effects_enabled_var), + )?; // Final predicate to determine whether we are within the insertion bounds let should_insert_value_pred = @@ -1565,6 +1576,7 @@ impl<'a> Context<'a> { result_block_id, ¤t_index, &new_value, + Some(self.current_side_effects_enabled_var), )?; current_insert_index += 1; @@ -1645,8 +1657,12 @@ impl<'a> Context<'a> { // the index internally. let mut temp_index = flat_user_index; for res in &result_ids[2..(2 + element_size)] { - let element = - self.array_get_value(&dfg.type_of_value(*res), block_id, &mut temp_index)?; + let element = self.array_get_value( + &dfg.type_of_value(*res), + block_id, + &mut temp_index, + true, + )?; let elem_size = arrays::flattened_value_size(&element); popped_elements_size += elem_size; popped_elements.push(element); @@ -1673,8 +1689,11 @@ impl<'a> Context<'a> { let shifted_index = self.acir_context.add_constant(i + popped_elements_size); - let value_shifted_index = - self.acir_context.read_from_memory(block_id, &shifted_index)?; + let value_shifted_index = self.acir_context.read_from_memory( + block_id, + &shifted_index, + Some(self.current_side_effects_enabled_var), + )?; let use_shifted_value = self.acir_context.more_than_eq_var( current_index, @@ -1695,6 +1714,7 @@ impl<'a> Context<'a> { result_block_id, ¤t_index, &new_value, + Some(self.current_side_effects_enabled_var), )?; }; } diff --git a/compiler/noirc_evaluator/src/acir/tests/intrinsics.rs b/compiler/noirc_evaluator/src/acir/tests/intrinsics.rs index 4c1e16e3ef1..5d578ffc050 100644 --- a/compiler/noirc_evaluator/src/acir/tests/intrinsics.rs +++ b/compiler/noirc_evaluator/src/acir/tests/intrinsics.rs @@ -43,7 +43,7 @@ fn slice_push_front_not_affected_by_predicate() { } #[test] -fn slice_pop_back_not_affected_by_predicate() { +fn slice_pop_back_affected_by_predicate() { let func_with_pred = &get_slice_intrinsic_acir( "v9, v10, v11, v12", &Intrinsic::SlicePopBack.to_string(), @@ -57,11 +57,11 @@ fn slice_pop_back_not_affected_by_predicate() { false, )[0]; assert_eq!(func_with_pred.current_witness_index(), func_no_pred.current_witness_index()); - assert_eq!(func_with_pred.opcodes(), func_no_pred.opcodes()); + assert_ne!(func_with_pred.opcodes(), func_no_pred.opcodes()); } #[test] -fn slice_pop_front_not_affected_by_predicate() { +fn slice_pop_front_affected_by_predicate() { let func_with_pred = &get_slice_intrinsic_acir( "v9, v10, v11, v12", &Intrinsic::SlicePopFront.to_string(), @@ -75,7 +75,7 @@ fn slice_pop_front_not_affected_by_predicate() { false, )[0]; assert_eq!(func_with_pred.current_witness_index(), func_no_pred.current_witness_index()); - assert_eq!(func_with_pred.opcodes(), func_no_pred.opcodes()); + assert_ne!(func_with_pred.opcodes(), func_no_pred.opcodes()); } #[test] diff --git a/compiler/noirc_evaluator/src/ssa/ir/instruction.rs b/compiler/noirc_evaluator/src/ssa/ir/instruction.rs index 4dc2022cf82..8ac99d80c6d 100644 --- a/compiler/noirc_evaluator/src/ssa/ir/instruction.rs +++ b/compiler/noirc_evaluator/src/ssa/ir/instruction.rs @@ -393,7 +393,13 @@ impl Instruction { Value::Intrinsic(intrinsic) => { // These utilize `noirc_evaluator::acir::Context::get_flattened_index` internally // which uses the side effects predicate. - matches!(intrinsic, Intrinsic::SliceInsert | Intrinsic::SliceRemove) + matches!( + intrinsic, + Intrinsic::SliceInsert + | Intrinsic::SliceRemove + | Intrinsic::SlicePopBack + | Intrinsic::SlicePopFront + ) } _ => false, }, diff --git a/compiler/noirc_evaluator/src/ssa/opt/remove_enable_side_effects.rs b/compiler/noirc_evaluator/src/ssa/opt/remove_enable_side_effects.rs index 25f063fcd94..bf5487f74e7 100644 --- a/compiler/noirc_evaluator/src/ssa/opt/remove_enable_side_effects.rs +++ b/compiler/noirc_evaluator/src/ssa/opt/remove_enable_side_effects.rs @@ -275,23 +275,23 @@ mod test { } #[test] - fn remove_enable_side_effects_for_slice_pop_back() { + fn keep_enable_side_effects_for_slice_pop_back() { let src = get_slice_intrinsic_src( "v13, v14, v15", &Intrinsic::SlicePopBack.to_string(), ") -> (u32, [Field], Field)", ); - verify_all_enable_side_effects_removed(&src); + verify_ssa_unchanged(&src); } #[test] - fn remove_enable_side_effects_for_slice_pop_front() { + fn keep_enable_side_effects_for_slice_pop_front() { let src = get_slice_intrinsic_src( "v13, v14, v15", &Intrinsic::SlicePopFront.to_string(), ") -> (Field, u32, [Field])", ); - verify_all_enable_side_effects_removed(&src); + verify_ssa_unchanged(&src); } #[test] diff --git a/test_programs/execution_success/regression_9467/Nargo.toml b/test_programs/execution_success/regression_9467/Nargo.toml new file mode 100644 index 00000000000..2873017b9c3 --- /dev/null +++ b/test_programs/execution_success/regression_9467/Nargo.toml @@ -0,0 +1,6 @@ +[package] +name = "regression_9467" +type = "bin" +authors = [""] + +[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/regression_9467/Prover.toml b/test_programs/execution_success/regression_9467/Prover.toml new file mode 100644 index 00000000000..63d591f2c64 --- /dev/null +++ b/test_programs/execution_success/regression_9467/Prover.toml @@ -0,0 +1,2 @@ +return = [1, 1] +b = false diff --git a/test_programs/execution_success/regression_9467/src/main.nr b/test_programs/execution_success/regression_9467/src/main.nr new file mode 100644 index 00000000000..92d7c3b4ec9 --- /dev/null +++ b/test_programs/execution_success/regression_9467/src/main.nr @@ -0,0 +1,8 @@ +global G_A: [u32] = &[]; +fn main(b: bool) -> pub (u32, u32) { + if b { + (G_A.pop_front().0, G_A.remove(0).1) + } else { + (1, 1) + } +} diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__expanded.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__expanded.snap new file mode 100644 index 00000000000..41522faf38b --- /dev/null +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__expanded.snap @@ -0,0 +1,13 @@ +--- +source: tooling/nargo_cli/tests/execute.rs +expression: expanded_code +--- +global G_A: [u32] = &[]; + +fn main(b: bool) -> pub (u32, u32) { + if b { + (G_A.pop_front().0, G_A.remove(0_u32).1) + } else { + (1_u32, 1_u32) + } +} diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_false_inliner_-9223372036854775808.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_false_inliner_-9223372036854775808.snap new file mode 100644 index 00000000000..ebab55e8255 --- /dev/null +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_false_inliner_-9223372036854775808.snap @@ -0,0 +1,70 @@ +--- +source: tooling/nargo_cli/tests/execute.rs +expression: artifact +--- +{ + "noir_version": "[noir_version]", + "hash": "[hash]", + "abi": { + "parameters": [ + { + "name": "b", + "type": { + "kind": "boolean" + }, + "visibility": "private" + } + ], + "return_type": { + "abi_type": { + "kind": "tuple", + "fields": [ + { + "kind": "integer", + "sign": "unsigned", + "width": 32 + }, + { + "kind": "integer", + "sign": "unsigned", + "width": 32 + } + ] + }, + "visibility": "public" + }, + "error_types": { + "14225679739041873922": { + "error_kind": "string", + "string": "Index out of bounds" + } + } + }, + "bytecode": [ + "func 0", + "current witness index : _5", + "private parameters indices : [_0]", + "public parameters indices : []", + "return value indices : [_1, _2]", + "INIT (id: 0, len: 0, witnesses: [])", + "EXPR [ (-1, _3) 0 ]", + "MEM PREDICATE: EXPR [ (1, _0) 0 ]", + "(id: 0, read at: EXPR [ (1, _3) 0 ], value: EXPR [ (1, _4) 0 ]) ", + "EXPR [ (-1, _0) 0 ]", + "MEM PREDICATE: EXPR [ 0 ]", + "(id: 0, read at: EXPR [ (1, _3) 0 ], value: EXPR [ (1, _5) 0 ]) ", + "EXPR [ (1, _1) -1 ]", + "EXPR [ (1, _2) -1 ]" + ], + "debug_symbols": "jZDBCsMgDIbfJWcPuq2w9VXGKNamRRCVVAej9N2XSru1h8Euicmfz+g/QYdtHhrr+zBCfZ+gJeucHRoXjE42eO5Os4CtbBIhcgt2OlNRE/oEtc/OCXhql8vQGLUvOWliVQpA33HmC3vrcDnN4kvL3+j1tLK36gNXf9NKqhVXSh34B1faWDr8FyQPClAlnko8Q80vuHCclzVkdetw9abP3uysSq+4KZuZkYLBLhMua4rGi98=", + "file_map": { + "50": { + "source": "global G_A: [u32] = &[];\nfn main(b: bool) -> pub (u32, u32) {\n if b {\n (G_A.pop_front().0, G_A.remove(0).1)\n } else {\n (1, 1)\n }\n}\n", + "path": "" + } + }, + "names": [ + "main" + ], + "brillig_names": [] +} diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_false_inliner_0.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_false_inliner_0.snap new file mode 100644 index 00000000000..ebab55e8255 --- /dev/null +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_false_inliner_0.snap @@ -0,0 +1,70 @@ +--- +source: tooling/nargo_cli/tests/execute.rs +expression: artifact +--- +{ + "noir_version": "[noir_version]", + "hash": "[hash]", + "abi": { + "parameters": [ + { + "name": "b", + "type": { + "kind": "boolean" + }, + "visibility": "private" + } + ], + "return_type": { + "abi_type": { + "kind": "tuple", + "fields": [ + { + "kind": "integer", + "sign": "unsigned", + "width": 32 + }, + { + "kind": "integer", + "sign": "unsigned", + "width": 32 + } + ] + }, + "visibility": "public" + }, + "error_types": { + "14225679739041873922": { + "error_kind": "string", + "string": "Index out of bounds" + } + } + }, + "bytecode": [ + "func 0", + "current witness index : _5", + "private parameters indices : [_0]", + "public parameters indices : []", + "return value indices : [_1, _2]", + "INIT (id: 0, len: 0, witnesses: [])", + "EXPR [ (-1, _3) 0 ]", + "MEM PREDICATE: EXPR [ (1, _0) 0 ]", + "(id: 0, read at: EXPR [ (1, _3) 0 ], value: EXPR [ (1, _4) 0 ]) ", + "EXPR [ (-1, _0) 0 ]", + "MEM PREDICATE: EXPR [ 0 ]", + "(id: 0, read at: EXPR [ (1, _3) 0 ], value: EXPR [ (1, _5) 0 ]) ", + "EXPR [ (1, _1) -1 ]", + "EXPR [ (1, _2) -1 ]" + ], + "debug_symbols": "jZDBCsMgDIbfJWcPuq2w9VXGKNamRRCVVAej9N2XSru1h8Euicmfz+g/QYdtHhrr+zBCfZ+gJeucHRoXjE42eO5Os4CtbBIhcgt2OlNRE/oEtc/OCXhql8vQGLUvOWliVQpA33HmC3vrcDnN4kvL3+j1tLK36gNXf9NKqhVXSh34B1faWDr8FyQPClAlnko8Q80vuHCclzVkdetw9abP3uysSq+4KZuZkYLBLhMua4rGi98=", + "file_map": { + "50": { + "source": "global G_A: [u32] = &[];\nfn main(b: bool) -> pub (u32, u32) {\n if b {\n (G_A.pop_front().0, G_A.remove(0).1)\n } else {\n (1, 1)\n }\n}\n", + "path": "" + } + }, + "names": [ + "main" + ], + "brillig_names": [] +} diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_false_inliner_9223372036854775807.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_false_inliner_9223372036854775807.snap new file mode 100644 index 00000000000..ebab55e8255 --- /dev/null +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_false_inliner_9223372036854775807.snap @@ -0,0 +1,70 @@ +--- +source: tooling/nargo_cli/tests/execute.rs +expression: artifact +--- +{ + "noir_version": "[noir_version]", + "hash": "[hash]", + "abi": { + "parameters": [ + { + "name": "b", + "type": { + "kind": "boolean" + }, + "visibility": "private" + } + ], + "return_type": { + "abi_type": { + "kind": "tuple", + "fields": [ + { + "kind": "integer", + "sign": "unsigned", + "width": 32 + }, + { + "kind": "integer", + "sign": "unsigned", + "width": 32 + } + ] + }, + "visibility": "public" + }, + "error_types": { + "14225679739041873922": { + "error_kind": "string", + "string": "Index out of bounds" + } + } + }, + "bytecode": [ + "func 0", + "current witness index : _5", + "private parameters indices : [_0]", + "public parameters indices : []", + "return value indices : [_1, _2]", + "INIT (id: 0, len: 0, witnesses: [])", + "EXPR [ (-1, _3) 0 ]", + "MEM PREDICATE: EXPR [ (1, _0) 0 ]", + "(id: 0, read at: EXPR [ (1, _3) 0 ], value: EXPR [ (1, _4) 0 ]) ", + "EXPR [ (-1, _0) 0 ]", + "MEM PREDICATE: EXPR [ 0 ]", + "(id: 0, read at: EXPR [ (1, _3) 0 ], value: EXPR [ (1, _5) 0 ]) ", + "EXPR [ (1, _1) -1 ]", + "EXPR [ (1, _2) -1 ]" + ], + "debug_symbols": "jZDBCsMgDIbfJWcPuq2w9VXGKNamRRCVVAej9N2XSru1h8Euicmfz+g/QYdtHhrr+zBCfZ+gJeucHRoXjE42eO5Os4CtbBIhcgt2OlNRE/oEtc/OCXhql8vQGLUvOWliVQpA33HmC3vrcDnN4kvL3+j1tLK36gNXf9NKqhVXSh34B1faWDr8FyQPClAlnko8Q80vuHCclzVkdetw9abP3uysSq+4KZuZkYLBLhMua4rGi98=", + "file_map": { + "50": { + "source": "global G_A: [u32] = &[];\nfn main(b: bool) -> pub (u32, u32) {\n if b {\n (G_A.pop_front().0, G_A.remove(0).1)\n } else {\n (1, 1)\n }\n}\n", + "path": "" + } + }, + "names": [ + "main" + ], + "brillig_names": [] +} diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_true_inliner_-9223372036854775808.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_true_inliner_-9223372036854775808.snap new file mode 100644 index 00000000000..06ce60c8ca5 --- /dev/null +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_true_inliner_-9223372036854775808.snap @@ -0,0 +1,70 @@ +--- +source: tooling/nargo_cli/tests/execute.rs +expression: artifact +--- +{ + "noir_version": "[noir_version]", + "hash": "[hash]", + "abi": { + "parameters": [ + { + "name": "b", + "type": { + "kind": "boolean" + }, + "visibility": "private" + } + ], + "return_type": { + "abi_type": { + "kind": "tuple", + "fields": [ + { + "kind": "integer", + "sign": "unsigned", + "width": 32 + }, + { + "kind": "integer", + "sign": "unsigned", + "width": 32 + } + ] + }, + "visibility": "public" + }, + "error_types": { + "14225679739041873922": { + "error_kind": "string", + "string": "Index out of bounds" + }, + "17843811134343075018": { + "error_kind": "string", + "string": "Stack too deep" + } + } + }, + "bytecode": [ + "func 0", + "current witness index : _2", + "private parameters indices : [_0]", + "public parameters indices : []", + "return value indices : [_1, _2]", + "BRILLIG CALL func 0: inputs: [EXPR [ (1, _0) 0 ]], outputs: [_1, _2]", + "unconstrained func 0", + "[Const { destination: Direct(2), bit_size: Integer(U32), value: 1 }, Const { destination: Direct(1), bit_size: Integer(U32), value: 32839 }, Const { destination: Direct(0), bit_size: Integer(U32), value: 3 }, Const { destination: Relative(2), bit_size: Integer(U32), value: 1 }, Const { destination: Relative(3), bit_size: Integer(U32), value: 0 }, CalldataCopy { destination_address: Direct(32836), size_address: Relative(2), offset_address: Relative(3) }, Cast { destination: Direct(32836), source: Direct(32836), bit_size: Integer(U1) }, Mov { destination: Relative(1), source: Direct(32836) }, Call { location: 15 }, Call { location: 16 }, Mov { destination: Direct(32837), source: Relative(1) }, Mov { destination: Direct(32838), source: Relative(2) }, Const { destination: Relative(3), bit_size: Integer(U32), value: 32837 }, Const { destination: Relative(4), bit_size: Integer(U32), value: 2 }, Stop { return_data: HeapVector { pointer: Relative(3), size: Relative(4) } }, Return, Call { location: 29 }, JumpIf { condition: Relative(1), location: 24 }, Jump { location: 19 }, Const { destination: Relative(3), bit_size: Integer(U32), value: 1 }, Mov { destination: Relative(1), source: Relative(3) }, Mov { destination: Relative(2), source: Relative(3) }, Jump { location: 23 }, Return, Const { destination: Relative(1), bit_size: Integer(U1), value: 0 }, Const { destination: Relative(2), bit_size: Integer(U1), value: 1 }, BinaryIntOp { destination: Relative(3), op: Equals, bit_size: U1, lhs: Relative(1), rhs: Relative(2) }, JumpIf { condition: Relative(3), location: 29 }, Call { location: 35 }, Const { destination: Direct(32772), bit_size: Integer(U32), value: 30720 }, BinaryIntOp { destination: Direct(32771), op: LessThan, bit_size: U32, lhs: Direct(0), rhs: Direct(32772) }, JumpIf { condition: Direct(32771), location: 34 }, IndirectConst { destination_pointer: Direct(1), bit_size: Integer(U64), value: 17843811134343075018 }, Trap { revert_data: HeapVector { pointer: Direct(1), size: Direct(2) } }, Return, IndirectConst { destination_pointer: Direct(1), bit_size: Integer(U64), value: 14225679739041873922 }, Trap { revert_data: HeapVector { pointer: Direct(1), size: Direct(2) } }, Return]" + ], + "debug_symbols": "dZDLDoMgEEX/ZdYsfNT6+BVjDOpoSAgShCaN4d87+Kh20c1chsu5ZGaFATs3tUKN8wJVvUJnhJRiauXccytmRbcrRKEkD6hiBkm2y3OXfJeCxHsGJ9ZagxioWw6la25QWaiUk5LBi0u3PVo0V5tabsiNGKAaSClwFBLDybOLjv6jRXKwZfaFM6Ib6ngvzM9cPuQYwTuJRzs61d9c+9anc+5Fm7nHwRkMSddyYqp1UrL00TCIY2rSjKV548PXHw==", + "file_map": { + "50": { + "source": "global G_A: [u32] = &[];\nfn main(b: bool) -> pub (u32, u32) {\n if b {\n (G_A.pop_front().0, G_A.remove(0).1)\n } else {\n (1, 1)\n }\n}\n", + "path": "" + } + }, + "names": [ + "main" + ], + "brillig_names": [ + "main" + ] +} diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_true_inliner_0.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_true_inliner_0.snap new file mode 100644 index 00000000000..06ce60c8ca5 --- /dev/null +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_true_inliner_0.snap @@ -0,0 +1,70 @@ +--- +source: tooling/nargo_cli/tests/execute.rs +expression: artifact +--- +{ + "noir_version": "[noir_version]", + "hash": "[hash]", + "abi": { + "parameters": [ + { + "name": "b", + "type": { + "kind": "boolean" + }, + "visibility": "private" + } + ], + "return_type": { + "abi_type": { + "kind": "tuple", + "fields": [ + { + "kind": "integer", + "sign": "unsigned", + "width": 32 + }, + { + "kind": "integer", + "sign": "unsigned", + "width": 32 + } + ] + }, + "visibility": "public" + }, + "error_types": { + "14225679739041873922": { + "error_kind": "string", + "string": "Index out of bounds" + }, + "17843811134343075018": { + "error_kind": "string", + "string": "Stack too deep" + } + } + }, + "bytecode": [ + "func 0", + "current witness index : _2", + "private parameters indices : [_0]", + "public parameters indices : []", + "return value indices : [_1, _2]", + "BRILLIG CALL func 0: inputs: [EXPR [ (1, _0) 0 ]], outputs: [_1, _2]", + "unconstrained func 0", + "[Const { destination: Direct(2), bit_size: Integer(U32), value: 1 }, Const { destination: Direct(1), bit_size: Integer(U32), value: 32839 }, Const { destination: Direct(0), bit_size: Integer(U32), value: 3 }, Const { destination: Relative(2), bit_size: Integer(U32), value: 1 }, Const { destination: Relative(3), bit_size: Integer(U32), value: 0 }, CalldataCopy { destination_address: Direct(32836), size_address: Relative(2), offset_address: Relative(3) }, Cast { destination: Direct(32836), source: Direct(32836), bit_size: Integer(U1) }, Mov { destination: Relative(1), source: Direct(32836) }, Call { location: 15 }, Call { location: 16 }, Mov { destination: Direct(32837), source: Relative(1) }, Mov { destination: Direct(32838), source: Relative(2) }, Const { destination: Relative(3), bit_size: Integer(U32), value: 32837 }, Const { destination: Relative(4), bit_size: Integer(U32), value: 2 }, Stop { return_data: HeapVector { pointer: Relative(3), size: Relative(4) } }, Return, Call { location: 29 }, JumpIf { condition: Relative(1), location: 24 }, Jump { location: 19 }, Const { destination: Relative(3), bit_size: Integer(U32), value: 1 }, Mov { destination: Relative(1), source: Relative(3) }, Mov { destination: Relative(2), source: Relative(3) }, Jump { location: 23 }, Return, Const { destination: Relative(1), bit_size: Integer(U1), value: 0 }, Const { destination: Relative(2), bit_size: Integer(U1), value: 1 }, BinaryIntOp { destination: Relative(3), op: Equals, bit_size: U1, lhs: Relative(1), rhs: Relative(2) }, JumpIf { condition: Relative(3), location: 29 }, Call { location: 35 }, Const { destination: Direct(32772), bit_size: Integer(U32), value: 30720 }, BinaryIntOp { destination: Direct(32771), op: LessThan, bit_size: U32, lhs: Direct(0), rhs: Direct(32772) }, JumpIf { condition: Direct(32771), location: 34 }, IndirectConst { destination_pointer: Direct(1), bit_size: Integer(U64), value: 17843811134343075018 }, Trap { revert_data: HeapVector { pointer: Direct(1), size: Direct(2) } }, Return, IndirectConst { destination_pointer: Direct(1), bit_size: Integer(U64), value: 14225679739041873922 }, Trap { revert_data: HeapVector { pointer: Direct(1), size: Direct(2) } }, Return]" + ], + "debug_symbols": "dZDLDoMgEEX/ZdYsfNT6+BVjDOpoSAgShCaN4d87+Kh20c1chsu5ZGaFATs3tUKN8wJVvUJnhJRiauXccytmRbcrRKEkD6hiBkm2y3OXfJeCxHsGJ9ZagxioWw6la25QWaiUk5LBi0u3PVo0V5tabsiNGKAaSClwFBLDybOLjv6jRXKwZfaFM6Ib6ngvzM9cPuQYwTuJRzs61d9c+9anc+5Fm7nHwRkMSddyYqp1UrL00TCIY2rSjKV548PXHw==", + "file_map": { + "50": { + "source": "global G_A: [u32] = &[];\nfn main(b: bool) -> pub (u32, u32) {\n if b {\n (G_A.pop_front().0, G_A.remove(0).1)\n } else {\n (1, 1)\n }\n}\n", + "path": "" + } + }, + "names": [ + "main" + ], + "brillig_names": [ + "main" + ] +} diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_true_inliner_9223372036854775807.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_true_inliner_9223372036854775807.snap new file mode 100644 index 00000000000..06ce60c8ca5 --- /dev/null +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__force_brillig_true_inliner_9223372036854775807.snap @@ -0,0 +1,70 @@ +--- +source: tooling/nargo_cli/tests/execute.rs +expression: artifact +--- +{ + "noir_version": "[noir_version]", + "hash": "[hash]", + "abi": { + "parameters": [ + { + "name": "b", + "type": { + "kind": "boolean" + }, + "visibility": "private" + } + ], + "return_type": { + "abi_type": { + "kind": "tuple", + "fields": [ + { + "kind": "integer", + "sign": "unsigned", + "width": 32 + }, + { + "kind": "integer", + "sign": "unsigned", + "width": 32 + } + ] + }, + "visibility": "public" + }, + "error_types": { + "14225679739041873922": { + "error_kind": "string", + "string": "Index out of bounds" + }, + "17843811134343075018": { + "error_kind": "string", + "string": "Stack too deep" + } + } + }, + "bytecode": [ + "func 0", + "current witness index : _2", + "private parameters indices : [_0]", + "public parameters indices : []", + "return value indices : [_1, _2]", + "BRILLIG CALL func 0: inputs: [EXPR [ (1, _0) 0 ]], outputs: [_1, _2]", + "unconstrained func 0", + "[Const { destination: Direct(2), bit_size: Integer(U32), value: 1 }, Const { destination: Direct(1), bit_size: Integer(U32), value: 32839 }, Const { destination: Direct(0), bit_size: Integer(U32), value: 3 }, Const { destination: Relative(2), bit_size: Integer(U32), value: 1 }, Const { destination: Relative(3), bit_size: Integer(U32), value: 0 }, CalldataCopy { destination_address: Direct(32836), size_address: Relative(2), offset_address: Relative(3) }, Cast { destination: Direct(32836), source: Direct(32836), bit_size: Integer(U1) }, Mov { destination: Relative(1), source: Direct(32836) }, Call { location: 15 }, Call { location: 16 }, Mov { destination: Direct(32837), source: Relative(1) }, Mov { destination: Direct(32838), source: Relative(2) }, Const { destination: Relative(3), bit_size: Integer(U32), value: 32837 }, Const { destination: Relative(4), bit_size: Integer(U32), value: 2 }, Stop { return_data: HeapVector { pointer: Relative(3), size: Relative(4) } }, Return, Call { location: 29 }, JumpIf { condition: Relative(1), location: 24 }, Jump { location: 19 }, Const { destination: Relative(3), bit_size: Integer(U32), value: 1 }, Mov { destination: Relative(1), source: Relative(3) }, Mov { destination: Relative(2), source: Relative(3) }, Jump { location: 23 }, Return, Const { destination: Relative(1), bit_size: Integer(U1), value: 0 }, Const { destination: Relative(2), bit_size: Integer(U1), value: 1 }, BinaryIntOp { destination: Relative(3), op: Equals, bit_size: U1, lhs: Relative(1), rhs: Relative(2) }, JumpIf { condition: Relative(3), location: 29 }, Call { location: 35 }, Const { destination: Direct(32772), bit_size: Integer(U32), value: 30720 }, BinaryIntOp { destination: Direct(32771), op: LessThan, bit_size: U32, lhs: Direct(0), rhs: Direct(32772) }, JumpIf { condition: Direct(32771), location: 34 }, IndirectConst { destination_pointer: Direct(1), bit_size: Integer(U64), value: 17843811134343075018 }, Trap { revert_data: HeapVector { pointer: Direct(1), size: Direct(2) } }, Return, IndirectConst { destination_pointer: Direct(1), bit_size: Integer(U64), value: 14225679739041873922 }, Trap { revert_data: HeapVector { pointer: Direct(1), size: Direct(2) } }, Return]" + ], + "debug_symbols": "dZDLDoMgEEX/ZdYsfNT6+BVjDOpoSAgShCaN4d87+Kh20c1chsu5ZGaFATs3tUKN8wJVvUJnhJRiauXccytmRbcrRKEkD6hiBkm2y3OXfJeCxHsGJ9ZagxioWw6la25QWaiUk5LBi0u3PVo0V5tabsiNGKAaSClwFBLDybOLjv6jRXKwZfaFM6Ib6ngvzM9cPuQYwTuJRzs61d9c+9anc+5Fm7nHwRkMSddyYqp1UrL00TCIY2rSjKV548PXHw==", + "file_map": { + "50": { + "source": "global G_A: [u32] = &[];\nfn main(b: bool) -> pub (u32, u32) {\n if b {\n (G_A.pop_front().0, G_A.remove(0).1)\n } else {\n (1, 1)\n }\n}\n", + "path": "" + } + }, + "names": [ + "main" + ], + "brillig_names": [ + "main" + ] +} diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__stdout.snap b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__stdout.snap new file mode 100644 index 00000000000..acc5a928171 --- /dev/null +++ b/tooling/nargo_cli/tests/snapshots/execution_success/regression_9467/execute__tests__stdout.snap @@ -0,0 +1,5 @@ +--- +source: tooling/nargo_cli/tests/execute.rs +expression: stdout +--- +[regression_9467] Circuit output: (1, 1) diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/slice_dynamic_index/execute__tests__force_brillig_false_inliner_-9223372036854775808.snap b/tooling/nargo_cli/tests/snapshots/execution_success/slice_dynamic_index/execute__tests__force_brillig_false_inliner_-9223372036854775808.snap index 959b95c1370..9485b022b7a 100644 --- a/tooling/nargo_cli/tests/snapshots/execution_success/slice_dynamic_index/execute__tests__force_brillig_false_inliner_-9223372036854775808.snap +++ b/tooling/nargo_cli/tests/snapshots/execution_success/slice_dynamic_index/execute__tests__force_brillig_false_inliner_-9223372036854775808.snap @@ -377,10 +377,12 @@ expression: artifact "INIT (id: 17, len: 8, witnesses: [_237, _236, _229, _230, _231, _232, _233, _235])", "EXPR [ (1, _57, _233) (-30, _57) 0 ]", "EXPR [ (-1, _238) 7 ]", - "MEM (id: 17, read at: EXPR [ (1, _238) 0 ], value: EXPR [ (1, _239) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 17, read at: EXPR [ (1, _238) 0 ], value: EXPR [ (1, _239) 0 ]) ", "INIT (id: 18, len: 8, witnesses: [_237, _236, _229, _230, _231, _232, _233, _235])", "EXPR [ (1, _57, _239) (-10, _57) 0 ]", - "MEM (id: 18, read at: EXPR [ (1, _5) 0 ], value: EXPR [ (1, _240) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 18, read at: EXPR [ (1, _5) 0 ], value: EXPR [ (1, _240) 0 ]) ", "INIT (id: 19, len: 7, witnesses: [_236, _229, _230, _231, _232, _233, _235])", "EXPR [ (1, _57, _240) (-12, _57) 0 ]", "EXPR [ (1, _1, _57) (-2, _57) (-1, _241) 0 ]", @@ -399,10 +401,12 @@ expression: artifact "BLACKBOX::RANGE [(_246, 1)] []", "BLACKBOX::RANGE [(_247, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _246) (-1, _247) 18446744073709551615 ]", - "MEM (id: 19, read at: EXPR [ (1, _5) 0 ], value: EXPR [ (1, _248) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _5) 0 ], value: EXPR [ (1, _248) 0 ]) ", "EXPR [ (1, _244, _246) (-1, _244) (-1, _249) 1 ]", "EXPR [ (-20, _244, _246) (1, _248, _249) (20, _244) (-1, _250) 0 ]", - "MEM (id: 20, write EXPR [ (1, _250) 0 ] at: EXPR [ (1, _5) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _250) 0 ] at: EXPR [ (1, _5) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551617 ], EXPR [ 18446744073709551616 ]], outputs: [_251, _252]", "BLACKBOX::RANGE [(_251, 1)] []", "BLACKBOX::RANGE [(_252, 64)] []", @@ -412,10 +416,12 @@ expression: artifact "BLACKBOX::RANGE [(_254, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _253) (-1, _254) 18446744073709551616 ]", "EXPR [ (-1, _251) (-1, _255) 1 ]", - "MEM (id: 19, read at: EXPR [ (1, _255) 0 ], value: EXPR [ (1, _256) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _255) 0 ], value: EXPR [ (1, _256) 0 ]) ", "EXPR [ (1, _251, _253) (-1, _251) (-1, _257) 1 ]", "EXPR [ (-20, _251, _253) (1, _256, _257) (20, _251) (-1, _258) 0 ]", - "MEM (id: 20, write EXPR [ (1, _258) 0 ] at: EXPR [ (1, _6) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _258) 0 ] at: EXPR [ (1, _6) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551618 ], EXPR [ 18446744073709551616 ]], outputs: [_259, _260]", "BLACKBOX::RANGE [(_259, 1)] []", "BLACKBOX::RANGE [(_260, 64)] []", @@ -425,10 +431,12 @@ expression: artifact "BLACKBOX::RANGE [(_262, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _261) (-1, _262) 18446744073709551617 ]", "EXPR [ (-1, _259) (-1, _263) 2 ]", - "MEM (id: 19, read at: EXPR [ (1, _263) 0 ], value: EXPR [ (1, _264) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _263) 0 ], value: EXPR [ (1, _264) 0 ]) ", "EXPR [ (1, _259, _261) (-1, _259) (-1, _265) 1 ]", "EXPR [ (-20, _259, _261) (1, _264, _265) (20, _259) (-1, _266) 0 ]", - "MEM (id: 20, write EXPR [ (1, _266) 0 ] at: EXPR [ (1, _7) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _266) 0 ] at: EXPR [ (1, _7) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551619 ], EXPR [ 18446744073709551616 ]], outputs: [_267, _268]", "BLACKBOX::RANGE [(_267, 1)] []", "BLACKBOX::RANGE [(_268, 64)] []", @@ -438,10 +446,12 @@ expression: artifact "BLACKBOX::RANGE [(_270, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _269) (-1, _270) 18446744073709551618 ]", "EXPR [ (-1, _267) (-1, _271) 3 ]", - "MEM (id: 19, read at: EXPR [ (1, _271) 0 ], value: EXPR [ (1, _272) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _271) 0 ], value: EXPR [ (1, _272) 0 ]) ", "EXPR [ (1, _267, _269) (-1, _267) (-1, _273) 1 ]", "EXPR [ (-20, _267, _269) (1, _272, _273) (20, _267) (-1, _274) 0 ]", - "MEM (id: 20, write EXPR [ (1, _274) 0 ] at: EXPR [ (1, _8) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _274) 0 ] at: EXPR [ (1, _8) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551620 ], EXPR [ 18446744073709551616 ]], outputs: [_275, _276]", "BLACKBOX::RANGE [(_275, 1)] []", "BLACKBOX::RANGE [(_276, 64)] []", @@ -451,10 +461,12 @@ expression: artifact "BLACKBOX::RANGE [(_278, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _277) (-1, _278) 18446744073709551619 ]", "EXPR [ (-1, _275) (-1, _279) 4 ]", - "MEM (id: 19, read at: EXPR [ (1, _279) 0 ], value: EXPR [ (1, _280) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _279) 0 ], value: EXPR [ (1, _280) 0 ]) ", "EXPR [ (1, _275, _277) (-1, _275) (-1, _281) 1 ]", "EXPR [ (-20, _275, _277) (1, _280, _281) (20, _275) (-1, _282) 0 ]", - "MEM (id: 20, write EXPR [ (1, _282) 0 ] at: EXPR [ (1, _9) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _282) 0 ] at: EXPR [ (1, _9) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551621 ], EXPR [ 18446744073709551616 ]], outputs: [_283, _284]", "BLACKBOX::RANGE [(_283, 1)] []", "BLACKBOX::RANGE [(_284, 64)] []", @@ -464,10 +476,12 @@ expression: artifact "BLACKBOX::RANGE [(_286, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _285) (-1, _286) 18446744073709551620 ]", "EXPR [ (-1, _283) (-1, _287) 5 ]", - "MEM (id: 19, read at: EXPR [ (1, _287) 0 ], value: EXPR [ (1, _288) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _287) 0 ], value: EXPR [ (1, _288) 0 ]) ", "EXPR [ (1, _283, _285) (-1, _283) (-1, _289) 1 ]", "EXPR [ (-20, _283, _285) (1, _288, _289) (20, _283) (-1, _290) 0 ]", - "MEM (id: 20, write EXPR [ (1, _290) 0 ] at: EXPR [ (1, _234) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _290) 0 ] at: EXPR [ (1, _234) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551622 ], EXPR [ 18446744073709551616 ]], outputs: [_291, _292]", "BLACKBOX::RANGE [(_291, 1)] []", "BLACKBOX::RANGE [(_292, 64)] []", @@ -477,11 +491,13 @@ expression: artifact "BLACKBOX::RANGE [(_294, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _293) (-1, _294) 18446744073709551621 ]", "EXPR [ (-1, _291) (-1, _295) 6 ]", - "MEM (id: 19, read at: EXPR [ (1, _295) 0 ], value: EXPR [ (1, _296) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _295) 0 ], value: EXPR [ (1, _296) 0 ]) ", "EXPR [ (1, _291, _293) (-1, _291) (-1, _297) 1 ]", "EXPR [ (-1, _298) 6 ]", "EXPR [ (-20, _291, _293) (1, _296, _297) (20, _291) (-1, _299) 0 ]", - "MEM (id: 20, write EXPR [ (1, _299) 0 ] at: EXPR [ (1, _298) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _299) 0 ] at: EXPR [ (1, _298) 0 ]) ", "EXPR [ (2, _57) (-1, _300) 0 ]", "MEM (id: 20, read at: EXPR [ (1, _300) 0 ], value: EXPR [ (1, _301) 0 ]) ", "EXPR [ (1, _57, _301) (-20, _57) 0 ]", @@ -500,50 +516,63 @@ expression: artifact "MEM (id: 20, read at: EXPR [ (1, _9) 0 ], value: EXPR [ (1, _310) 0 ]) ", "MEM (id: 20, read at: EXPR [ (1, _234) 0 ], value: EXPR [ (1, _311) 0 ]) ", "MEM (id: 20, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _312) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _28) 0 ], value: EXPR [ (1, _313) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _28) 0 ], value: EXPR [ (1, _313) 0 ]) ", "INIT (id: 21, len: 7, witnesses: [_306, _307, _308, _309, _310, _311, _312])", - "MEM (id: 20, read at: EXPR [ (1, _6) 0 ], value: EXPR [ (1, _314) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _6) 0 ], value: EXPR [ (1, _314) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551616 ], EXPR [ 18446744073709551616 ]], outputs: [_315, _316]", "BLACKBOX::RANGE [(_315, 1)] []", "BLACKBOX::RANGE [(_316, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _315) (-1, _316) 18446744073709551616 ]", "EXPR [ (-1, _306, _315) (1, _314, _315) (1, _306) (-1, _317) 0 ]", - "MEM (id: 21, write EXPR [ (1, _317) 0 ] at: EXPR [ (1, _5) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _7) 0 ], value: EXPR [ (1, _318) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _317) 0 ] at: EXPR [ (1, _5) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _7) 0 ], value: EXPR [ (1, _318) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551617 ], EXPR [ 18446744073709551616 ]], outputs: [_319, _320]", "BLACKBOX::RANGE [(_319, 1)] []", "BLACKBOX::RANGE [(_320, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _319) (-1, _320) 18446744073709551617 ]", "EXPR [ (-1, _307, _319) (1, _318, _319) (1, _307) (-1, _321) 0 ]", - "MEM (id: 21, write EXPR [ (1, _321) 0 ] at: EXPR [ (1, _6) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _8) 0 ], value: EXPR [ (1, _322) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _321) 0 ] at: EXPR [ (1, _6) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _8) 0 ], value: EXPR [ (1, _322) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551618 ], EXPR [ 18446744073709551616 ]], outputs: [_323, _324]", "BLACKBOX::RANGE [(_323, 1)] []", "BLACKBOX::RANGE [(_324, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _323) (-1, _324) 18446744073709551618 ]", "EXPR [ (-1, _308, _323) (1, _322, _323) (1, _308) (-1, _325) 0 ]", - "MEM (id: 21, write EXPR [ (1, _325) 0 ] at: EXPR [ (1, _7) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _9) 0 ], value: EXPR [ (1, _326) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _325) 0 ] at: EXPR [ (1, _7) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _9) 0 ], value: EXPR [ (1, _326) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551619 ], EXPR [ 18446744073709551616 ]], outputs: [_327, _328]", "BLACKBOX::RANGE [(_327, 1)] []", "BLACKBOX::RANGE [(_328, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _327) (-1, _328) 18446744073709551619 ]", "EXPR [ (-1, _309, _327) (1, _326, _327) (1, _309) (-1, _329) 0 ]", - "MEM (id: 21, write EXPR [ (1, _329) 0 ] at: EXPR [ (1, _8) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _234) 0 ], value: EXPR [ (1, _330) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _329) 0 ] at: EXPR [ (1, _8) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _234) 0 ], value: EXPR [ (1, _330) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551620 ], EXPR [ 18446744073709551616 ]], outputs: [_331, _332]", "BLACKBOX::RANGE [(_331, 1)] []", "BLACKBOX::RANGE [(_332, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _331) (-1, _332) 18446744073709551620 ]", "EXPR [ (-1, _310, _331) (1, _330, _331) (1, _310) (-1, _333) 0 ]", - "MEM (id: 21, write EXPR [ (1, _333) 0 ] at: EXPR [ (1, _9) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _334) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _333) 0 ] at: EXPR [ (1, _9) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _334) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551621 ], EXPR [ 18446744073709551616 ]], outputs: [_335, _336]", "BLACKBOX::RANGE [(_335, 1)] []", "BLACKBOX::RANGE [(_336, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _335) (-1, _336) 18446744073709551621 ]", "EXPR [ (-1, _311, _335) (1, _334, _335) (1, _311) (-1, _337) 0 ]", - "MEM (id: 21, write EXPR [ (1, _337) 0 ] at: EXPR [ (1, _234) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _337) 0 ] at: EXPR [ (1, _234) 0 ]) ", "EXPR [ (5, _57) (-1, _338) 0 ]", "MEM (id: 21, read at: EXPR [ (1, _338) 0 ], value: EXPR [ (1, _339) 0 ]) ", "EXPR [ (1, _57, _313) (-1, _57) 0 ]", @@ -796,7 +825,8 @@ expression: artifact "MEM (id: 0, read at: EXPR [ (1, _8) 0 ], value: EXPR [ (1, _544) 0 ]) ", "MEM (id: 0, read at: EXPR [ (1, _9) 0 ], value: EXPR [ (1, _545) 0 ]) ", "INIT (id: 36, len: 7, witnesses: [_541, _542, _543, _544, _545, _2, _1])", - "MEM (id: 36, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _546) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _394) 0 ]", + "(id: 36, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _546) 0 ]) ", "EXPR [ (-1, _1, _394) (1, _394, _546) 0 ]", "EXPR [ (1, _394, _542) (1, _375) (-1, _547) 0 ]", "EXPR [ (1, _394, _543) (2, _375) (-1, _548) 0 ]", diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/slice_dynamic_index/execute__tests__force_brillig_false_inliner_0.snap b/tooling/nargo_cli/tests/snapshots/execution_success/slice_dynamic_index/execute__tests__force_brillig_false_inliner_0.snap index 959b95c1370..9485b022b7a 100644 --- a/tooling/nargo_cli/tests/snapshots/execution_success/slice_dynamic_index/execute__tests__force_brillig_false_inliner_0.snap +++ b/tooling/nargo_cli/tests/snapshots/execution_success/slice_dynamic_index/execute__tests__force_brillig_false_inliner_0.snap @@ -377,10 +377,12 @@ expression: artifact "INIT (id: 17, len: 8, witnesses: [_237, _236, _229, _230, _231, _232, _233, _235])", "EXPR [ (1, _57, _233) (-30, _57) 0 ]", "EXPR [ (-1, _238) 7 ]", - "MEM (id: 17, read at: EXPR [ (1, _238) 0 ], value: EXPR [ (1, _239) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 17, read at: EXPR [ (1, _238) 0 ], value: EXPR [ (1, _239) 0 ]) ", "INIT (id: 18, len: 8, witnesses: [_237, _236, _229, _230, _231, _232, _233, _235])", "EXPR [ (1, _57, _239) (-10, _57) 0 ]", - "MEM (id: 18, read at: EXPR [ (1, _5) 0 ], value: EXPR [ (1, _240) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 18, read at: EXPR [ (1, _5) 0 ], value: EXPR [ (1, _240) 0 ]) ", "INIT (id: 19, len: 7, witnesses: [_236, _229, _230, _231, _232, _233, _235])", "EXPR [ (1, _57, _240) (-12, _57) 0 ]", "EXPR [ (1, _1, _57) (-2, _57) (-1, _241) 0 ]", @@ -399,10 +401,12 @@ expression: artifact "BLACKBOX::RANGE [(_246, 1)] []", "BLACKBOX::RANGE [(_247, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _246) (-1, _247) 18446744073709551615 ]", - "MEM (id: 19, read at: EXPR [ (1, _5) 0 ], value: EXPR [ (1, _248) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _5) 0 ], value: EXPR [ (1, _248) 0 ]) ", "EXPR [ (1, _244, _246) (-1, _244) (-1, _249) 1 ]", "EXPR [ (-20, _244, _246) (1, _248, _249) (20, _244) (-1, _250) 0 ]", - "MEM (id: 20, write EXPR [ (1, _250) 0 ] at: EXPR [ (1, _5) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _250) 0 ] at: EXPR [ (1, _5) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551617 ], EXPR [ 18446744073709551616 ]], outputs: [_251, _252]", "BLACKBOX::RANGE [(_251, 1)] []", "BLACKBOX::RANGE [(_252, 64)] []", @@ -412,10 +416,12 @@ expression: artifact "BLACKBOX::RANGE [(_254, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _253) (-1, _254) 18446744073709551616 ]", "EXPR [ (-1, _251) (-1, _255) 1 ]", - "MEM (id: 19, read at: EXPR [ (1, _255) 0 ], value: EXPR [ (1, _256) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _255) 0 ], value: EXPR [ (1, _256) 0 ]) ", "EXPR [ (1, _251, _253) (-1, _251) (-1, _257) 1 ]", "EXPR [ (-20, _251, _253) (1, _256, _257) (20, _251) (-1, _258) 0 ]", - "MEM (id: 20, write EXPR [ (1, _258) 0 ] at: EXPR [ (1, _6) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _258) 0 ] at: EXPR [ (1, _6) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551618 ], EXPR [ 18446744073709551616 ]], outputs: [_259, _260]", "BLACKBOX::RANGE [(_259, 1)] []", "BLACKBOX::RANGE [(_260, 64)] []", @@ -425,10 +431,12 @@ expression: artifact "BLACKBOX::RANGE [(_262, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _261) (-1, _262) 18446744073709551617 ]", "EXPR [ (-1, _259) (-1, _263) 2 ]", - "MEM (id: 19, read at: EXPR [ (1, _263) 0 ], value: EXPR [ (1, _264) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _263) 0 ], value: EXPR [ (1, _264) 0 ]) ", "EXPR [ (1, _259, _261) (-1, _259) (-1, _265) 1 ]", "EXPR [ (-20, _259, _261) (1, _264, _265) (20, _259) (-1, _266) 0 ]", - "MEM (id: 20, write EXPR [ (1, _266) 0 ] at: EXPR [ (1, _7) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _266) 0 ] at: EXPR [ (1, _7) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551619 ], EXPR [ 18446744073709551616 ]], outputs: [_267, _268]", "BLACKBOX::RANGE [(_267, 1)] []", "BLACKBOX::RANGE [(_268, 64)] []", @@ -438,10 +446,12 @@ expression: artifact "BLACKBOX::RANGE [(_270, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _269) (-1, _270) 18446744073709551618 ]", "EXPR [ (-1, _267) (-1, _271) 3 ]", - "MEM (id: 19, read at: EXPR [ (1, _271) 0 ], value: EXPR [ (1, _272) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _271) 0 ], value: EXPR [ (1, _272) 0 ]) ", "EXPR [ (1, _267, _269) (-1, _267) (-1, _273) 1 ]", "EXPR [ (-20, _267, _269) (1, _272, _273) (20, _267) (-1, _274) 0 ]", - "MEM (id: 20, write EXPR [ (1, _274) 0 ] at: EXPR [ (1, _8) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _274) 0 ] at: EXPR [ (1, _8) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551620 ], EXPR [ 18446744073709551616 ]], outputs: [_275, _276]", "BLACKBOX::RANGE [(_275, 1)] []", "BLACKBOX::RANGE [(_276, 64)] []", @@ -451,10 +461,12 @@ expression: artifact "BLACKBOX::RANGE [(_278, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _277) (-1, _278) 18446744073709551619 ]", "EXPR [ (-1, _275) (-1, _279) 4 ]", - "MEM (id: 19, read at: EXPR [ (1, _279) 0 ], value: EXPR [ (1, _280) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _279) 0 ], value: EXPR [ (1, _280) 0 ]) ", "EXPR [ (1, _275, _277) (-1, _275) (-1, _281) 1 ]", "EXPR [ (-20, _275, _277) (1, _280, _281) (20, _275) (-1, _282) 0 ]", - "MEM (id: 20, write EXPR [ (1, _282) 0 ] at: EXPR [ (1, _9) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _282) 0 ] at: EXPR [ (1, _9) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551621 ], EXPR [ 18446744073709551616 ]], outputs: [_283, _284]", "BLACKBOX::RANGE [(_283, 1)] []", "BLACKBOX::RANGE [(_284, 64)] []", @@ -464,10 +476,12 @@ expression: artifact "BLACKBOX::RANGE [(_286, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _285) (-1, _286) 18446744073709551620 ]", "EXPR [ (-1, _283) (-1, _287) 5 ]", - "MEM (id: 19, read at: EXPR [ (1, _287) 0 ], value: EXPR [ (1, _288) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _287) 0 ], value: EXPR [ (1, _288) 0 ]) ", "EXPR [ (1, _283, _285) (-1, _283) (-1, _289) 1 ]", "EXPR [ (-20, _283, _285) (1, _288, _289) (20, _283) (-1, _290) 0 ]", - "MEM (id: 20, write EXPR [ (1, _290) 0 ] at: EXPR [ (1, _234) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _290) 0 ] at: EXPR [ (1, _234) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551622 ], EXPR [ 18446744073709551616 ]], outputs: [_291, _292]", "BLACKBOX::RANGE [(_291, 1)] []", "BLACKBOX::RANGE [(_292, 64)] []", @@ -477,11 +491,13 @@ expression: artifact "BLACKBOX::RANGE [(_294, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _293) (-1, _294) 18446744073709551621 ]", "EXPR [ (-1, _291) (-1, _295) 6 ]", - "MEM (id: 19, read at: EXPR [ (1, _295) 0 ], value: EXPR [ (1, _296) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _295) 0 ], value: EXPR [ (1, _296) 0 ]) ", "EXPR [ (1, _291, _293) (-1, _291) (-1, _297) 1 ]", "EXPR [ (-1, _298) 6 ]", "EXPR [ (-20, _291, _293) (1, _296, _297) (20, _291) (-1, _299) 0 ]", - "MEM (id: 20, write EXPR [ (1, _299) 0 ] at: EXPR [ (1, _298) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _299) 0 ] at: EXPR [ (1, _298) 0 ]) ", "EXPR [ (2, _57) (-1, _300) 0 ]", "MEM (id: 20, read at: EXPR [ (1, _300) 0 ], value: EXPR [ (1, _301) 0 ]) ", "EXPR [ (1, _57, _301) (-20, _57) 0 ]", @@ -500,50 +516,63 @@ expression: artifact "MEM (id: 20, read at: EXPR [ (1, _9) 0 ], value: EXPR [ (1, _310) 0 ]) ", "MEM (id: 20, read at: EXPR [ (1, _234) 0 ], value: EXPR [ (1, _311) 0 ]) ", "MEM (id: 20, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _312) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _28) 0 ], value: EXPR [ (1, _313) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _28) 0 ], value: EXPR [ (1, _313) 0 ]) ", "INIT (id: 21, len: 7, witnesses: [_306, _307, _308, _309, _310, _311, _312])", - "MEM (id: 20, read at: EXPR [ (1, _6) 0 ], value: EXPR [ (1, _314) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _6) 0 ], value: EXPR [ (1, _314) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551616 ], EXPR [ 18446744073709551616 ]], outputs: [_315, _316]", "BLACKBOX::RANGE [(_315, 1)] []", "BLACKBOX::RANGE [(_316, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _315) (-1, _316) 18446744073709551616 ]", "EXPR [ (-1, _306, _315) (1, _314, _315) (1, _306) (-1, _317) 0 ]", - "MEM (id: 21, write EXPR [ (1, _317) 0 ] at: EXPR [ (1, _5) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _7) 0 ], value: EXPR [ (1, _318) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _317) 0 ] at: EXPR [ (1, _5) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _7) 0 ], value: EXPR [ (1, _318) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551617 ], EXPR [ 18446744073709551616 ]], outputs: [_319, _320]", "BLACKBOX::RANGE [(_319, 1)] []", "BLACKBOX::RANGE [(_320, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _319) (-1, _320) 18446744073709551617 ]", "EXPR [ (-1, _307, _319) (1, _318, _319) (1, _307) (-1, _321) 0 ]", - "MEM (id: 21, write EXPR [ (1, _321) 0 ] at: EXPR [ (1, _6) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _8) 0 ], value: EXPR [ (1, _322) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _321) 0 ] at: EXPR [ (1, _6) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _8) 0 ], value: EXPR [ (1, _322) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551618 ], EXPR [ 18446744073709551616 ]], outputs: [_323, _324]", "BLACKBOX::RANGE [(_323, 1)] []", "BLACKBOX::RANGE [(_324, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _323) (-1, _324) 18446744073709551618 ]", "EXPR [ (-1, _308, _323) (1, _322, _323) (1, _308) (-1, _325) 0 ]", - "MEM (id: 21, write EXPR [ (1, _325) 0 ] at: EXPR [ (1, _7) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _9) 0 ], value: EXPR [ (1, _326) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _325) 0 ] at: EXPR [ (1, _7) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _9) 0 ], value: EXPR [ (1, _326) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551619 ], EXPR [ 18446744073709551616 ]], outputs: [_327, _328]", "BLACKBOX::RANGE [(_327, 1)] []", "BLACKBOX::RANGE [(_328, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _327) (-1, _328) 18446744073709551619 ]", "EXPR [ (-1, _309, _327) (1, _326, _327) (1, _309) (-1, _329) 0 ]", - "MEM (id: 21, write EXPR [ (1, _329) 0 ] at: EXPR [ (1, _8) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _234) 0 ], value: EXPR [ (1, _330) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _329) 0 ] at: EXPR [ (1, _8) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _234) 0 ], value: EXPR [ (1, _330) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551620 ], EXPR [ 18446744073709551616 ]], outputs: [_331, _332]", "BLACKBOX::RANGE [(_331, 1)] []", "BLACKBOX::RANGE [(_332, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _331) (-1, _332) 18446744073709551620 ]", "EXPR [ (-1, _310, _331) (1, _330, _331) (1, _310) (-1, _333) 0 ]", - "MEM (id: 21, write EXPR [ (1, _333) 0 ] at: EXPR [ (1, _9) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _334) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _333) 0 ] at: EXPR [ (1, _9) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _334) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551621 ], EXPR [ 18446744073709551616 ]], outputs: [_335, _336]", "BLACKBOX::RANGE [(_335, 1)] []", "BLACKBOX::RANGE [(_336, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _335) (-1, _336) 18446744073709551621 ]", "EXPR [ (-1, _311, _335) (1, _334, _335) (1, _311) (-1, _337) 0 ]", - "MEM (id: 21, write EXPR [ (1, _337) 0 ] at: EXPR [ (1, _234) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _337) 0 ] at: EXPR [ (1, _234) 0 ]) ", "EXPR [ (5, _57) (-1, _338) 0 ]", "MEM (id: 21, read at: EXPR [ (1, _338) 0 ], value: EXPR [ (1, _339) 0 ]) ", "EXPR [ (1, _57, _313) (-1, _57) 0 ]", @@ -796,7 +825,8 @@ expression: artifact "MEM (id: 0, read at: EXPR [ (1, _8) 0 ], value: EXPR [ (1, _544) 0 ]) ", "MEM (id: 0, read at: EXPR [ (1, _9) 0 ], value: EXPR [ (1, _545) 0 ]) ", "INIT (id: 36, len: 7, witnesses: [_541, _542, _543, _544, _545, _2, _1])", - "MEM (id: 36, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _546) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _394) 0 ]", + "(id: 36, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _546) 0 ]) ", "EXPR [ (-1, _1, _394) (1, _394, _546) 0 ]", "EXPR [ (1, _394, _542) (1, _375) (-1, _547) 0 ]", "EXPR [ (1, _394, _543) (2, _375) (-1, _548) 0 ]", diff --git a/tooling/nargo_cli/tests/snapshots/execution_success/slice_dynamic_index/execute__tests__force_brillig_false_inliner_9223372036854775807.snap b/tooling/nargo_cli/tests/snapshots/execution_success/slice_dynamic_index/execute__tests__force_brillig_false_inliner_9223372036854775807.snap index 959b95c1370..9485b022b7a 100644 --- a/tooling/nargo_cli/tests/snapshots/execution_success/slice_dynamic_index/execute__tests__force_brillig_false_inliner_9223372036854775807.snap +++ b/tooling/nargo_cli/tests/snapshots/execution_success/slice_dynamic_index/execute__tests__force_brillig_false_inliner_9223372036854775807.snap @@ -377,10 +377,12 @@ expression: artifact "INIT (id: 17, len: 8, witnesses: [_237, _236, _229, _230, _231, _232, _233, _235])", "EXPR [ (1, _57, _233) (-30, _57) 0 ]", "EXPR [ (-1, _238) 7 ]", - "MEM (id: 17, read at: EXPR [ (1, _238) 0 ], value: EXPR [ (1, _239) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 17, read at: EXPR [ (1, _238) 0 ], value: EXPR [ (1, _239) 0 ]) ", "INIT (id: 18, len: 8, witnesses: [_237, _236, _229, _230, _231, _232, _233, _235])", "EXPR [ (1, _57, _239) (-10, _57) 0 ]", - "MEM (id: 18, read at: EXPR [ (1, _5) 0 ], value: EXPR [ (1, _240) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 18, read at: EXPR [ (1, _5) 0 ], value: EXPR [ (1, _240) 0 ]) ", "INIT (id: 19, len: 7, witnesses: [_236, _229, _230, _231, _232, _233, _235])", "EXPR [ (1, _57, _240) (-12, _57) 0 ]", "EXPR [ (1, _1, _57) (-2, _57) (-1, _241) 0 ]", @@ -399,10 +401,12 @@ expression: artifact "BLACKBOX::RANGE [(_246, 1)] []", "BLACKBOX::RANGE [(_247, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _246) (-1, _247) 18446744073709551615 ]", - "MEM (id: 19, read at: EXPR [ (1, _5) 0 ], value: EXPR [ (1, _248) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _5) 0 ], value: EXPR [ (1, _248) 0 ]) ", "EXPR [ (1, _244, _246) (-1, _244) (-1, _249) 1 ]", "EXPR [ (-20, _244, _246) (1, _248, _249) (20, _244) (-1, _250) 0 ]", - "MEM (id: 20, write EXPR [ (1, _250) 0 ] at: EXPR [ (1, _5) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _250) 0 ] at: EXPR [ (1, _5) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551617 ], EXPR [ 18446744073709551616 ]], outputs: [_251, _252]", "BLACKBOX::RANGE [(_251, 1)] []", "BLACKBOX::RANGE [(_252, 64)] []", @@ -412,10 +416,12 @@ expression: artifact "BLACKBOX::RANGE [(_254, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _253) (-1, _254) 18446744073709551616 ]", "EXPR [ (-1, _251) (-1, _255) 1 ]", - "MEM (id: 19, read at: EXPR [ (1, _255) 0 ], value: EXPR [ (1, _256) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _255) 0 ], value: EXPR [ (1, _256) 0 ]) ", "EXPR [ (1, _251, _253) (-1, _251) (-1, _257) 1 ]", "EXPR [ (-20, _251, _253) (1, _256, _257) (20, _251) (-1, _258) 0 ]", - "MEM (id: 20, write EXPR [ (1, _258) 0 ] at: EXPR [ (1, _6) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _258) 0 ] at: EXPR [ (1, _6) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551618 ], EXPR [ 18446744073709551616 ]], outputs: [_259, _260]", "BLACKBOX::RANGE [(_259, 1)] []", "BLACKBOX::RANGE [(_260, 64)] []", @@ -425,10 +431,12 @@ expression: artifact "BLACKBOX::RANGE [(_262, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _261) (-1, _262) 18446744073709551617 ]", "EXPR [ (-1, _259) (-1, _263) 2 ]", - "MEM (id: 19, read at: EXPR [ (1, _263) 0 ], value: EXPR [ (1, _264) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _263) 0 ], value: EXPR [ (1, _264) 0 ]) ", "EXPR [ (1, _259, _261) (-1, _259) (-1, _265) 1 ]", "EXPR [ (-20, _259, _261) (1, _264, _265) (20, _259) (-1, _266) 0 ]", - "MEM (id: 20, write EXPR [ (1, _266) 0 ] at: EXPR [ (1, _7) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _266) 0 ] at: EXPR [ (1, _7) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551619 ], EXPR [ 18446744073709551616 ]], outputs: [_267, _268]", "BLACKBOX::RANGE [(_267, 1)] []", "BLACKBOX::RANGE [(_268, 64)] []", @@ -438,10 +446,12 @@ expression: artifact "BLACKBOX::RANGE [(_270, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _269) (-1, _270) 18446744073709551618 ]", "EXPR [ (-1, _267) (-1, _271) 3 ]", - "MEM (id: 19, read at: EXPR [ (1, _271) 0 ], value: EXPR [ (1, _272) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _271) 0 ], value: EXPR [ (1, _272) 0 ]) ", "EXPR [ (1, _267, _269) (-1, _267) (-1, _273) 1 ]", "EXPR [ (-20, _267, _269) (1, _272, _273) (20, _267) (-1, _274) 0 ]", - "MEM (id: 20, write EXPR [ (1, _274) 0 ] at: EXPR [ (1, _8) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _274) 0 ] at: EXPR [ (1, _8) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551620 ], EXPR [ 18446744073709551616 ]], outputs: [_275, _276]", "BLACKBOX::RANGE [(_275, 1)] []", "BLACKBOX::RANGE [(_276, 64)] []", @@ -451,10 +461,12 @@ expression: artifact "BLACKBOX::RANGE [(_278, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _277) (-1, _278) 18446744073709551619 ]", "EXPR [ (-1, _275) (-1, _279) 4 ]", - "MEM (id: 19, read at: EXPR [ (1, _279) 0 ], value: EXPR [ (1, _280) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _279) 0 ], value: EXPR [ (1, _280) 0 ]) ", "EXPR [ (1, _275, _277) (-1, _275) (-1, _281) 1 ]", "EXPR [ (-20, _275, _277) (1, _280, _281) (20, _275) (-1, _282) 0 ]", - "MEM (id: 20, write EXPR [ (1, _282) 0 ] at: EXPR [ (1, _9) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _282) 0 ] at: EXPR [ (1, _9) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551621 ], EXPR [ 18446744073709551616 ]], outputs: [_283, _284]", "BLACKBOX::RANGE [(_283, 1)] []", "BLACKBOX::RANGE [(_284, 64)] []", @@ -464,10 +476,12 @@ expression: artifact "BLACKBOX::RANGE [(_286, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _285) (-1, _286) 18446744073709551620 ]", "EXPR [ (-1, _283) (-1, _287) 5 ]", - "MEM (id: 19, read at: EXPR [ (1, _287) 0 ], value: EXPR [ (1, _288) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _287) 0 ], value: EXPR [ (1, _288) 0 ]) ", "EXPR [ (1, _283, _285) (-1, _283) (-1, _289) 1 ]", "EXPR [ (-20, _283, _285) (1, _288, _289) (20, _283) (-1, _290) 0 ]", - "MEM (id: 20, write EXPR [ (1, _290) 0 ] at: EXPR [ (1, _234) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _290) 0 ] at: EXPR [ (1, _234) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _241) 18446744073709551622 ], EXPR [ 18446744073709551616 ]], outputs: [_291, _292]", "BLACKBOX::RANGE [(_291, 1)] []", "BLACKBOX::RANGE [(_292, 64)] []", @@ -477,11 +491,13 @@ expression: artifact "BLACKBOX::RANGE [(_294, 64)] []", "EXPR [ (-1, _241) (-18446744073709551616, _293) (-1, _294) 18446744073709551621 ]", "EXPR [ (-1, _291) (-1, _295) 6 ]", - "MEM (id: 19, read at: EXPR [ (1, _295) 0 ], value: EXPR [ (1, _296) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 19, read at: EXPR [ (1, _295) 0 ], value: EXPR [ (1, _296) 0 ]) ", "EXPR [ (1, _291, _293) (-1, _291) (-1, _297) 1 ]", "EXPR [ (-1, _298) 6 ]", "EXPR [ (-20, _291, _293) (1, _296, _297) (20, _291) (-1, _299) 0 ]", - "MEM (id: 20, write EXPR [ (1, _299) 0 ] at: EXPR [ (1, _298) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, write EXPR [ (1, _299) 0 ] at: EXPR [ (1, _298) 0 ]) ", "EXPR [ (2, _57) (-1, _300) 0 ]", "MEM (id: 20, read at: EXPR [ (1, _300) 0 ], value: EXPR [ (1, _301) 0 ]) ", "EXPR [ (1, _57, _301) (-20, _57) 0 ]", @@ -500,50 +516,63 @@ expression: artifact "MEM (id: 20, read at: EXPR [ (1, _9) 0 ], value: EXPR [ (1, _310) 0 ]) ", "MEM (id: 20, read at: EXPR [ (1, _234) 0 ], value: EXPR [ (1, _311) 0 ]) ", "MEM (id: 20, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _312) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _28) 0 ], value: EXPR [ (1, _313) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _28) 0 ], value: EXPR [ (1, _313) 0 ]) ", "INIT (id: 21, len: 7, witnesses: [_306, _307, _308, _309, _310, _311, _312])", - "MEM (id: 20, read at: EXPR [ (1, _6) 0 ], value: EXPR [ (1, _314) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _6) 0 ], value: EXPR [ (1, _314) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551616 ], EXPR [ 18446744073709551616 ]], outputs: [_315, _316]", "BLACKBOX::RANGE [(_315, 1)] []", "BLACKBOX::RANGE [(_316, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _315) (-1, _316) 18446744073709551616 ]", "EXPR [ (-1, _306, _315) (1, _314, _315) (1, _306) (-1, _317) 0 ]", - "MEM (id: 21, write EXPR [ (1, _317) 0 ] at: EXPR [ (1, _5) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _7) 0 ], value: EXPR [ (1, _318) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _317) 0 ] at: EXPR [ (1, _5) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _7) 0 ], value: EXPR [ (1, _318) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551617 ], EXPR [ 18446744073709551616 ]], outputs: [_319, _320]", "BLACKBOX::RANGE [(_319, 1)] []", "BLACKBOX::RANGE [(_320, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _319) (-1, _320) 18446744073709551617 ]", "EXPR [ (-1, _307, _319) (1, _318, _319) (1, _307) (-1, _321) 0 ]", - "MEM (id: 21, write EXPR [ (1, _321) 0 ] at: EXPR [ (1, _6) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _8) 0 ], value: EXPR [ (1, _322) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _321) 0 ] at: EXPR [ (1, _6) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _8) 0 ], value: EXPR [ (1, _322) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551618 ], EXPR [ 18446744073709551616 ]], outputs: [_323, _324]", "BLACKBOX::RANGE [(_323, 1)] []", "BLACKBOX::RANGE [(_324, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _323) (-1, _324) 18446744073709551618 ]", "EXPR [ (-1, _308, _323) (1, _322, _323) (1, _308) (-1, _325) 0 ]", - "MEM (id: 21, write EXPR [ (1, _325) 0 ] at: EXPR [ (1, _7) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _9) 0 ], value: EXPR [ (1, _326) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _325) 0 ] at: EXPR [ (1, _7) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _9) 0 ], value: EXPR [ (1, _326) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551619 ], EXPR [ 18446744073709551616 ]], outputs: [_327, _328]", "BLACKBOX::RANGE [(_327, 1)] []", "BLACKBOX::RANGE [(_328, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _327) (-1, _328) 18446744073709551619 ]", "EXPR [ (-1, _309, _327) (1, _326, _327) (1, _309) (-1, _329) 0 ]", - "MEM (id: 21, write EXPR [ (1, _329) 0 ] at: EXPR [ (1, _8) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _234) 0 ], value: EXPR [ (1, _330) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _329) 0 ] at: EXPR [ (1, _8) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _234) 0 ], value: EXPR [ (1, _330) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551620 ], EXPR [ 18446744073709551616 ]], outputs: [_331, _332]", "BLACKBOX::RANGE [(_331, 1)] []", "BLACKBOX::RANGE [(_332, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _331) (-1, _332) 18446744073709551620 ]", "EXPR [ (-1, _310, _331) (1, _330, _331) (1, _310) (-1, _333) 0 ]", - "MEM (id: 21, write EXPR [ (1, _333) 0 ] at: EXPR [ (1, _9) 0 ]) ", - "MEM (id: 20, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _334) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _333) 0 ] at: EXPR [ (1, _9) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 20, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _334) 0 ]) ", "BRILLIG CALL func 0: inputs: [EXPR [ (-1, _28) 18446744073709551621 ], EXPR [ 18446744073709551616 ]], outputs: [_335, _336]", "BLACKBOX::RANGE [(_335, 1)] []", "BLACKBOX::RANGE [(_336, 64)] []", "EXPR [ (-1, _28) (-18446744073709551616, _335) (-1, _336) 18446744073709551621 ]", "EXPR [ (-1, _311, _335) (1, _334, _335) (1, _311) (-1, _337) 0 ]", - "MEM (id: 21, write EXPR [ (1, _337) 0 ] at: EXPR [ (1, _234) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _57) 0 ]", + "(id: 21, write EXPR [ (1, _337) 0 ] at: EXPR [ (1, _234) 0 ]) ", "EXPR [ (5, _57) (-1, _338) 0 ]", "MEM (id: 21, read at: EXPR [ (1, _338) 0 ], value: EXPR [ (1, _339) 0 ]) ", "EXPR [ (1, _57, _313) (-1, _57) 0 ]", @@ -796,7 +825,8 @@ expression: artifact "MEM (id: 0, read at: EXPR [ (1, _8) 0 ], value: EXPR [ (1, _544) 0 ]) ", "MEM (id: 0, read at: EXPR [ (1, _9) 0 ], value: EXPR [ (1, _545) 0 ]) ", "INIT (id: 36, len: 7, witnesses: [_541, _542, _543, _544, _545, _2, _1])", - "MEM (id: 36, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _546) 0 ]) ", + "MEM PREDICATE: EXPR [ (1, _394) 0 ]", + "(id: 36, read at: EXPR [ (1, _298) 0 ], value: EXPR [ (1, _546) 0 ]) ", "EXPR [ (-1, _1, _394) (1, _394, _546) 0 ]", "EXPR [ (1, _394, _542) (1, _375) (-1, _547) 0 ]", "EXPR [ (1, _394, _543) (2, _375) (-1, _548) 0 ]",