#![feature(core_intrinsics)] | |
// Requires the use of the nightly rust | |
// Compile with -O | |
pub fn sum_array_loop(input: &[i32]) -> i32 { | |
unsafe { | |
std::intrinsics::assume(input.as_ptr() as usize % 64 == 0); | |
} | |
let mut sum: i32 = 0; | |
for i in 0..input.len() { | |
sum += input[i]; | |
} | |
sum | |
} | |
pub fn sum_array_iterator(input: &[i32]) -> i32 { | |
unsafe { | |
std::intrinsics::assume(input.as_ptr() as usize % 64 == 0); | |
} | |
input.iter().sum() | |
} |