sum_sample.hir 504 B
fn sum(a: array(f32, 16)) -> f32
zero_idx = constant(u64, 0)
one_idx = constant(u64, 1)
zero_inc = constant(f32, 0)
bound = constant(u64, 16)
loop = region(start, if_true)
idx = phi(loop, zero_idx, idx_inc)
idx_inc = add(idx, one_idx)
red = phi(loop, zero_inc, red_add)
read = read(a, position(idx))
red_add = add(red, read)
in_bounds = lt(idx_inc, bound)
if = if(loop, in_bounds)
if_false = read(if, control(0))
if_true = read(if, control(1))
r = return(if_false, red_add)