blob: 345c53d2890b81683b0239628dcc0c707a5fac37 [file] [edit]
// RUN: mlir-opt %s -verify-diagnostics
func.func @omp_canonloop_block_arg(%tc : i32) -> () {
// expected-error@below {{Canonical loop region must have exactly one argument}}
"omp.canonical_loop" (%tc) ({
^bb0(%iv: i32, %somearg: i32):
omp.terminator
}) : (i32) -> ()
return
}
func.func @omp_canonloop_multiple_generators(%tc : i32) -> () {
// expected-error@below {{'omp.new_cli' op CLI must have at most one generator}}
%cli = omp.new_cli
// expected-note@below {{second generator here}}
omp.canonical_loop(%cli) %iv1 : i32 in range(%tc) {
omp.terminator
}
// expected-note@below {{first generator here}}
omp.canonical_loop(%cli) %iv2 : i32 in range(%tc) {
omp.terminator
}
return
}
func.func @omp_canonloop_multiple_consumers() -> () {
// expected-error@below {{'omp.new_cli' op CLI must have at most one consumer}}
%cli = omp.new_cli
%tc = llvm.mlir.constant(4 : i32) : i32
omp.canonical_loop(%cli) %iv1 : i32 in range(%tc) {
omp.terminator
}
// expected-note@below {{second consumer here}}
omp.unroll_heuristic(%cli)
// expected-note@below {{first consumer here}}
omp.unroll_heuristic(%cli)
return
}
func.func @omp_canonloop_no_generator() -> () {
// expected-error@below {{'omp.new_cli' op CLI has no generator}}
%cli = omp.new_cli
// expected-note@below {{see consumer here}}
omp.unroll_heuristic(%cli)
return
}