// 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 }