Skip to content
Snippets Groups Projects
ccp_example.hir 563 B
fn tricky(x: i32) -> i32
  one = constant(i32, 1)
  two = constant(i32, 2)
  loop = region(start, if2_true)
  idx = phi(loop, x, idx_dec)
  val = phi(loop, one, later_val)
  b = ne(one, val)
  if1 = if(loop, b)
  if1_false = projection(if1, 0)
  if1_true = projection(if1, 1)
  middle = region(if1_false, if1_true)
  inter_val = sub(two, val)
  later_val = phi(middle, inter_val, two)
  idx_dec = sub(idx, one)
  cond = gte(idx_dec, one)
  if2 = if(middle, cond)
  if2_false = projection(if2, 0)
  if2_true = projection(if2, 1)
  r = return(if2_false, later_val)