bolt/deps/llvm-18.1.8/mlir/utils/tree-sitter-mlir/test/highlight/controlflow.mlir

79 lines
2.1 KiB
MLIR
Raw Normal View History

2025-02-14 19:21:04 +01:00
func.func @simple(i64, i1) -> i64 {
// <- function.builtin
// ^ function
// ^ punctuation.bracket
// ^ type.builtin
// ^ punctuation.delimeter
// ^ type.builtin
// ^ punctuation.bracket
// ^ operator
// ^ type.builtin
// ^ punctuation.bracket
^bb0(%a: i64, %cond: i1):
// <- tag
// ^ variable.parameter
// ^ type.builtin
// ^ variable.parameter
// ^ type.builtin
cf.cond_br %cond, ^bb1, ^bb2
// ^ function.builtin
// ^ variable.parameter
// ^ tag
// ^ tag
^bb1:
// <- tag
cf.br ^bb3(%a: i64) // Branch passes %a as the argument
// ^ function.builtin
// ^ tag
// ^ variable.parameter
// ^ type.builtin
// ^ comment
^bb2:
// <- tag
%b = arith.addi %a, %a : i64
// ^ variable
// ^ operator
// ^ function.builtin
// ^ variable.parameter
// ^ variable.parameter
// ^ type.builtin
cf.br ^bb3(%b: i64) // Branch passes %b as the argument
// ^ function.builtin
// ^ tag
// ^ variable
// ^ type.builtin
// ^ comment
^bb3(%c: i64):
// <- tag
// ^ variable.parameter
// ^ type.builtin
cf.br ^bb4(%c, %a : i64, i64)
// ^ function.builtin
// ^ tag
// ^ variable.parameter
// ^ variable.parameter
// ^ type.builtin
// ^ type.builtin
^bb4(%d : i64, %e : i64):
// <- tag
// ^ variable.parameter
// ^ type.builtin
// ^ variable.parameter
// ^ type.builtin
%0 = arith.addi %d, %e : i64
// ^ variable
// ^ operator
// ^ function.builtin
// ^ variable.parameter
// ^ variable.parameter
// ^ type.builtin
return %0 : i64 // Return is also a terminator.
// ^ function.builtin
// ^ variable
// ^ type.builtin
// ^ comment
}
// <- punctuation.bracket