79 lines · plain
1func.func @simple(i64, i1) -> i64 {2// <- function.builtin3// ^ function4// ^ punctuation.bracket5// ^ type.builtin6// ^ punctuation.delimeter7// ^ type.builtin8// ^ punctuation.bracket9// ^ operator10// ^ type.builtin11// ^ punctuation.bracket12^bb0(%a: i64, %cond: i1):13// <- tag14// ^ variable.parameter15// ^ type.builtin16// ^ variable.parameter17// ^ type.builtin18 cf.cond_br %cond, ^bb1, ^bb219// ^ function.builtin20// ^ variable.parameter21// ^ tag22// ^ tag23 24^bb1:25// <- tag26 cf.br ^bb3(%a: i64) // Branch passes %a as the argument27// ^ function.builtin28// ^ tag29// ^ variable.parameter30// ^ type.builtin31// ^ comment32 33^bb2:34// <- tag35 %b = arith.addi %a, %a : i6436// ^ variable37// ^ operator38// ^ function.builtin39// ^ variable.parameter40// ^ variable.parameter41// ^ type.builtin42 cf.br ^bb3(%b: i64) // Branch passes %b as the argument43// ^ function.builtin44// ^ tag45// ^ variable46// ^ type.builtin47// ^ comment48^bb3(%c: i64):49// <- tag50// ^ variable.parameter51// ^ type.builtin52 cf.br ^bb4(%c, %a : i64, i64)53// ^ function.builtin54// ^ tag55// ^ variable.parameter56// ^ variable.parameter57// ^ type.builtin58// ^ type.builtin59^bb4(%d : i64, %e : i64):60// <- tag61// ^ variable.parameter62// ^ type.builtin63// ^ variable.parameter64// ^ type.builtin65 %0 = arith.addi %d, %e : i6466// ^ variable67// ^ operator68// ^ function.builtin69// ^ variable.parameter70// ^ variable.parameter71// ^ type.builtin72 return %0 : i64 // Return is also a terminator.73// ^ function.builtin74// ^ variable75// ^ type.builtin76// ^ comment77}78// <- punctuation.bracket79