Skip to content
Snippets Groups Projects
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)