Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/aztec-packages-staging' into azt…
Browse files Browse the repository at this point in the history
…ec-packages
  • Loading branch information
AztecBot committed Feb 22, 2024
2 parents ce8b08c + ce94592 commit e575154
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 44 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ encrypted_logs_hash = [
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000000000000000000000000000",
]
new_commitments = [
new_note_hashes = [
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000000000000000000000000000",
Expand Down
86 changes: 43 additions & 43 deletions test_programs/execution_success/brillig_cow_regression/src/main.nr
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Tests a performance regression found in aztec-packages with brillig cow optimization

global MAX_NEW_COMMITMENTS_PER_TX: Field = 64;
global MAX_NEW_NOTE_HASHES_PER_TX: Field = 64;
global MAX_NEW_NULLIFIERS_PER_TX: Field = 64;
global MAX_NEW_L2_TO_L1_MSGS_PER_TX: Field = 2;
global MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX: Field = 16;
Expand Down Expand Up @@ -30,7 +30,7 @@ impl NewContractData {
}

struct DataToHash {
new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_TX],
new_note_hashes: [Field; MAX_NEW_NOTE_HASHES_PER_TX],
new_nullifiers: [Field; MAX_NEW_NULLIFIERS_PER_TX],
public_data_update_requests: [PublicDataUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX],
new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_TX],
Expand All @@ -47,61 +47,61 @@ struct U256 {
}

impl U256 {
pub fn from_bytes32(bytes : [u8;32]) -> U256 {
pub fn from_bytes32(bytes: [u8; 32]) -> U256 {
// We use addition rather than a bitwise OR as the bitshifts ensure that none of the bytes overlap each other.
let high_0 = ((bytes[0] as u64) << 56)
+ ((bytes[1] as u64) << 48)
+ ((bytes[2] as u64) << 40)
+ ((bytes[3] as u64) << 32)
+ ((bytes[4] as u64) << 24)
+ ((bytes[5] as u64) << 16)
+ ((bytes[6] as u64) << 8)
+ (bytes[7] as u64);
+ ((bytes[1] as u64) << 48)
+ ((bytes[2] as u64) << 40)
+ ((bytes[3] as u64) << 32)
+ ((bytes[4] as u64) << 24)
+ ((bytes[5] as u64) << 16)
+ ((bytes[6] as u64) << 8)
+ (bytes[7] as u64);

let high_1 = ((bytes[8] as u64) << 56)
+ ((bytes[9] as u64) << 48)
+ ((bytes[10] as u64) << 40)
+ ((bytes[11] as u64) << 32)
+ ((bytes[12] as u64) << 24)
+ ((bytes[13] as u64) << 16)
+ ((bytes[14] as u64) << 8)
+ (bytes[15] as u64);
+ ((bytes[9] as u64) << 48)
+ ((bytes[10] as u64) << 40)
+ ((bytes[11] as u64) << 32)
+ ((bytes[12] as u64) << 24)
+ ((bytes[13] as u64) << 16)
+ ((bytes[14] as u64) << 8)
+ (bytes[15] as u64);

let low_0 = ((bytes[16] as u64) << 56)
+ ((bytes[17] as u64) << 48)
+ ((bytes[18] as u64) << 40)
+ ((bytes[19] as u64) << 32)
+ ((bytes[20] as u64) << 24)
+ ((bytes[21] as u64) << 16)
+ ((bytes[22] as u64) << 8)
+ (bytes[23] as u64);
+ ((bytes[17] as u64) << 48)
+ ((bytes[18] as u64) << 40)
+ ((bytes[19] as u64) << 32)
+ ((bytes[20] as u64) << 24)
+ ((bytes[21] as u64) << 16)
+ ((bytes[22] as u64) << 8)
+ (bytes[23] as u64);

let low_1 = ((bytes[24] as u64) << 56)
+ ((bytes[25] as u64) << 48)
+ ((bytes[26] as u64) << 40)
+ ((bytes[27] as u64) << 32)
+ ((bytes[28] as u64) << 24)
+ ((bytes[29] as u64) << 16)
+ ((bytes[30] as u64) << 8)
+ (bytes[31] as u64);

U256{inner : [high_0, high_1, low_0, low_1]}
+ ((bytes[25] as u64) << 48)
+ ((bytes[26] as u64) << 40)
+ ((bytes[27] as u64) << 32)
+ ((bytes[28] as u64) << 24)
+ ((bytes[29] as u64) << 16)
+ ((bytes[30] as u64) << 8)
+ (bytes[31] as u64);

U256 { inner: [high_0, high_1, low_0, low_1] }
}

pub fn to_u128_limbs(self) -> [Field;2] {
pub fn to_u128_limbs(self) -> [Field; 2] {
let two_pow_64 = 2.pow_32(64);

let high = (self.inner[0] as Field) * two_pow_64 + self.inner[1] as Field;
let low = (self.inner[2] as Field) * two_pow_64 + self.inner[3] as Field;
[high,low]

[high, low]
}
}

unconstrained fn main(kernel_data: DataToHash) -> pub [Field; NUM_FIELDS_PER_SHA256] {
let mut calldata_hash_inputs = [0; CALLDATA_HASH_INPUT_SIZE];

let new_commitments = kernel_data.new_commitments;
let new_note_hashes = kernel_data.new_note_hashes;
let new_nullifiers = kernel_data.new_nullifiers;
let public_data_update_requests = kernel_data.public_data_update_requests;
let newL2ToL1msgs = kernel_data.new_l2_to_l1_msgs;
Expand All @@ -110,10 +110,10 @@ unconstrained fn main(kernel_data: DataToHash) -> pub [Field; NUM_FIELDS_PER_SHA

let mut offset = 0;

for j in 0..MAX_NEW_COMMITMENTS_PER_TX {
calldata_hash_inputs[offset + j] = new_commitments[j];
for j in 0..MAX_NEW_NOTE_HASHES_PER_TX {
calldata_hash_inputs[offset + j] = new_note_hashes[j];
}
offset += MAX_NEW_COMMITMENTS_PER_TX ;
offset += MAX_NEW_NOTE_HASHES_PER_TX ;

for j in 0..MAX_NEW_NULLIFIERS_PER_TX {
calldata_hash_inputs[offset + j] = new_nullifiers[j];
Expand Down

0 comments on commit e575154

Please sign in to comment.