1// RUN: mlir-opt -split-input-file -verify-diagnostics %s 2 3func @unknown_clause() { 4 // expected-error@+1 {{invalid is not a valid clause for the omp.parallel operation}} 5 omp.parallel invalid { 6 } 7 8 return 9} 10 11// ----- 12 13func @if_once(%n : i1) { 14 // expected-error@+1 {{at most one if clause can appear on the omp.parallel operation}} 15 omp.parallel if(%n : i1) if(%n : i1) { 16 } 17 18 return 19} 20 21// ----- 22 23func @num_threads_once(%n : si32) { 24 // expected-error@+1 {{at most one num_threads clause can appear on the omp.parallel operation}} 25 omp.parallel num_threads(%n : si32) num_threads(%n : si32) { 26 } 27 28 return 29} 30 31// ----- 32 33func @private_once(%n : memref<i32>) { 34 // expected-error@+1 {{at most one private clause can appear on the omp.parallel operation}} 35 omp.parallel private(%n : memref<i32>) private(%n : memref<i32>) { 36 } 37 38 return 39} 40 41// ----- 42 43func @firstprivate_once(%n : memref<i32>) { 44 // expected-error@+1 {{at most one firstprivate clause can appear on the omp.parallel operation}} 45 omp.parallel firstprivate(%n : memref<i32>) firstprivate(%n : memref<i32>) { 46 } 47 48 return 49} 50 51// ----- 52 53func @shared_once(%n : memref<i32>) { 54 // expected-error@+1 {{at most one shared clause can appear on the omp.parallel operation}} 55 omp.parallel shared(%n : memref<i32>) shared(%n : memref<i32>) { 56 } 57 58 return 59} 60 61// ----- 62 63func @copyin_once(%n : memref<i32>) { 64 // expected-error@+1 {{at most one copyin clause can appear on the omp.parallel operation}} 65 omp.parallel copyin(%n : memref<i32>) copyin(%n : memref<i32>) { 66 } 67 68 return 69} 70 71// ----- 72 73func @default_once() { 74 // expected-error@+1 {{at most one default clause can appear on the omp.parallel operation}} 75 omp.parallel default(private) default(firstprivate) { 76 } 77 78 return 79} 80 81// ----- 82 83func @proc_bind_once() { 84 // expected-error@+1 {{at most one proc_bind clause can appear on the omp.parallel operation}} 85 omp.parallel proc_bind(close) proc_bind(spread) { 86 } 87 88 return 89} 90