brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.6 KiB · 731a632 Raw
461 lines · plain
1// RUN: mlir-translate -mlir-to-llvmir -split-input-file -verify-diagnostics %s2 3 4llvm.func @atomic_hint(%v : !llvm.ptr, %x : !llvm.ptr, %expr : i32) {5  // expected-warning@below {{hint clause discarded}}6  omp.atomic.capture hint(uncontended) {7    omp.atomic.read %x = %v : !llvm.ptr, !llvm.ptr, i328    omp.atomic.write %v = %expr : !llvm.ptr, i329  }10 11  // expected-warning@below {{hint clause discarded}}12  omp.atomic.read %x = %v hint(contended) : !llvm.ptr, !llvm.ptr, i3213 14  // expected-warning@below {{hint clause discarded}}15  omp.atomic.write %v = %expr hint(nonspeculative) : !llvm.ptr, i3216 17  // expected-warning@below {{hint clause discarded}}18  omp.atomic.update hint(speculative) %x : !llvm.ptr {19  ^bb0(%arg0: i32):20    %result = llvm.add %arg0, %expr : i3221    omp.yield(%result : i32)22  }23 24  llvm.return25}26 27// -----28 29llvm.func @distribute_allocate(%lb : i32, %ub : i32, %step : i32, %x : !llvm.ptr) {30  // expected-error@below {{not yet implemented: Unhandled clause allocate in omp.distribute operation}}31  // expected-error@below {{LLVM Translation failed for operation: omp.distribute}}32  omp.distribute allocate(%x : !llvm.ptr -> %x : !llvm.ptr) {33    omp.loop_nest (%iv) : i32 = (%lb) to (%ub) step (%step) {34      omp.yield35    }36  }37  llvm.return38}39 40// -----41 42llvm.func @distribute_order(%lb : i32, %ub : i32, %step : i32) {43  // expected-error@below {{not yet implemented: Unhandled clause order in omp.distribute operation}}44  // expected-error@below {{LLVM Translation failed for operation: omp.distribute}}45  omp.distribute order(concurrent) {46    omp.loop_nest (%iv) : i32 = (%lb) to (%ub) step (%step) {47      omp.yield48    }49  }50  llvm.return51}52 53// -----54 55llvm.func @ordered_region_par_level_simd() {56  // expected-error@below {{not yet implemented: Unhandled clause parallelization-level in omp.ordered.region operation}}57  // expected-error@below {{LLVM Translation failed for operation: omp.ordered.region}}58  omp.ordered.region par_level_simd {59    omp.terminator60  }61  llvm.return62}63 64// -----65 66llvm.func @parallel_allocate(%x : !llvm.ptr) {67  // expected-error@below {{not yet implemented: Unhandled clause allocate in omp.parallel operation}}68  // expected-error@below {{LLVM Translation failed for operation: omp.parallel}}69  omp.parallel allocate(%x : !llvm.ptr -> %x : !llvm.ptr) {70    omp.terminator71  }72  llvm.return73}74 75// -----76 77llvm.func @sections_allocate(%x : !llvm.ptr) {78  // expected-error@below {{not yet implemented: Unhandled clause allocate in omp.sections operation}}79  // expected-error@below {{LLVM Translation failed for operation: omp.sections}}80  omp.sections allocate(%x : !llvm.ptr -> %x : !llvm.ptr) {81    omp.terminator82  }83  llvm.return84}85 86// -----87 88omp.private {type = private} @x.privatizer : i32 init {89^bb0(%mold: !llvm.ptr, %private: !llvm.ptr):90  %c0 = llvm.mlir.constant(0 : i32) : i3291  llvm.store %c0, %private : i32, !llvm.ptr92  omp.yield(%private: !llvm.ptr)93}94llvm.func @sections_private(%x : !llvm.ptr) {95  // expected-error@below {{not yet implemented: Unhandled clause privatization in omp.sections operation}}96  // expected-error@below {{LLVM Translation failed for operation: omp.sections}}97  omp.sections private(@x.privatizer %x -> %arg0 : !llvm.ptr) {98    omp.terminator99  }100  llvm.return101}102 103 104// -----105 106llvm.func @simd_linear(%lb : i32, %ub : i32, %step : i32, %x : !llvm.ptr) {107  // expected-error@below {{not yet implemented: Unhandled clause linear in omp.simd operation}}108  // expected-error@below {{LLVM Translation failed for operation: omp.simd}}109  omp.simd linear(%x = %step : !llvm.ptr) {110    omp.loop_nest (%iv) : i32 = (%lb) to (%ub) step (%step) {111      omp.yield112    }113  }114  llvm.return115}116 117// -----118 119omp.declare_reduction @add_f32 : f32120init {121^bb0(%arg: f32):122  %0 = llvm.mlir.constant(0.0 : f32) : f32123  omp.yield (%0 : f32)124}125combiner {126^bb1(%arg0: f32, %arg1: f32):127  %1 = llvm.fadd %arg0, %arg1 : f32128  omp.yield (%1 : f32)129}130atomic {131^bb2(%arg2: !llvm.ptr, %arg3: !llvm.ptr):132  %2 = llvm.load %arg3 : !llvm.ptr -> f32133  llvm.atomicrmw fadd %arg2, %2 monotonic : !llvm.ptr, f32134  omp.yield135}136llvm.func @scan_reduction(%lb : i32, %ub : i32, %step : i32, %x : !llvm.ptr) {137  // expected-error@below {{not yet implemented: Unhandled clause reduction with modifier in omp.wsloop operation}}138  // expected-error@below {{LLVM Translation failed for operation: omp.wsloop}}139  omp.wsloop reduction(mod:inscan, @add_f32 %x -> %prv : !llvm.ptr) {140    omp.loop_nest (%iv) : i32 = (%lb) to (%ub) step (%step) {141      omp.scan inclusive(%prv : !llvm.ptr)142      omp.yield143    }144  }145  llvm.return146}147 148// -----149 150llvm.func @single_allocate(%x : !llvm.ptr) {151  // expected-error@below {{not yet implemented: Unhandled clause allocate in omp.single operation}}152  // expected-error@below {{LLVM Translation failed for operation: omp.single}}153  omp.single allocate(%x : !llvm.ptr -> %x : !llvm.ptr) {154    omp.terminator155  }156  llvm.return157}158 159// -----160 161omp.private {type = private} @x.privatizer : i32 init {162^bb0(%mold: !llvm.ptr, %private: !llvm.ptr):163  %c0 = llvm.mlir.constant(0 : i32) : i32164  llvm.store %c0, %private : i32, !llvm.ptr165  omp.yield(%private: !llvm.ptr)166}167llvm.func @single_private(%x : !llvm.ptr) {168  // expected-error@below {{not yet implemented: Unhandled clause privatization in omp.single operation}}169  // expected-error@below {{LLVM Translation failed for operation: omp.single}}170  omp.single private(@x.privatizer %x -> %arg0 : !llvm.ptr) {171    omp.terminator172  }173  llvm.return174}175 176// -----177 178llvm.func @target_allocate(%x : !llvm.ptr) {179  // expected-error@below {{not yet implemented: Unhandled clause allocate in omp.target operation}}180  // expected-error@below {{LLVM Translation failed for operation: omp.target}}181  omp.target allocate(%x : !llvm.ptr -> %x : !llvm.ptr) {182    omp.terminator183  }184  llvm.return185}186 187// -----188 189llvm.func @target_device(%x : i32) {190  // expected-error@below {{not yet implemented: Unhandled clause device in omp.target operation}}191  // expected-error@below {{LLVM Translation failed for operation: omp.target}}192  omp.target device(%x : i32) {193    omp.terminator194  }195  llvm.return196}197 198// -----199 200omp.declare_reduction @add_f32 : f32201init {202^bb0(%arg: f32):203  %0 = llvm.mlir.constant(0.0 : f32) : f32204  omp.yield (%0 : f32)205}206combiner {207^bb1(%arg0: f32, %arg1: f32):208  %1 = llvm.fadd %arg0, %arg1 : f32209  omp.yield (%1 : f32)210}211atomic {212^bb2(%arg2: !llvm.ptr, %arg3: !llvm.ptr):213  %2 = llvm.load %arg3 : !llvm.ptr -> f32214  llvm.atomicrmw fadd %arg2, %2 monotonic : !llvm.ptr, f32215  omp.yield216}217llvm.func @target_in_reduction(%x : !llvm.ptr) {218  // expected-error@below {{not yet implemented: Unhandled clause in_reduction in omp.target operation}}219  // expected-error@below {{LLVM Translation failed for operation: omp.target}}220  omp.target in_reduction(@add_f32 %x -> %prv : !llvm.ptr) {221    omp.terminator222  }223  llvm.return224}225 226// -----227 228llvm.func @target_is_device_ptr(%x : !llvm.ptr) {229  // expected-error@below {{not yet implemented: Unhandled clause is_device_ptr in omp.target operation}}230  // expected-error@below {{LLVM Translation failed for operation: omp.target}}231  omp.target is_device_ptr(%x : !llvm.ptr) {232    omp.terminator233  }234  llvm.return235}236 237// -----238 239llvm.func @target_enter_data_depend(%x: !llvm.ptr) {240  // expected-error@below {{not yet implemented: Unhandled clause depend in omp.target_enter_data operation}}241  // expected-error@below {{LLVM Translation failed for operation: omp.target_enter_data}}242  omp.target_enter_data depend(taskdependin -> %x : !llvm.ptr) {243    omp.terminator244  }245  llvm.return246}247 248// -----249 250llvm.func @target_exit_data_depend(%x: !llvm.ptr) {251  // expected-error@below {{not yet implemented: Unhandled clause depend in omp.target_exit_data operation}}252  // expected-error@below {{LLVM Translation failed for operation: omp.target_exit_data}}253  omp.target_exit_data depend(taskdependin -> %x : !llvm.ptr) {254    omp.terminator255  }256  llvm.return257}258 259// -----260 261llvm.func @target_update_depend(%x: !llvm.ptr) {262  // expected-error@below {{not yet implemented: Unhandled clause depend in omp.target_update operation}}263  // expected-error@below {{LLVM Translation failed for operation: omp.target_update}}264  omp.target_update depend(taskdependin -> %x : !llvm.ptr) {265    omp.terminator266  }267  llvm.return268}269 270// -----271 272llvm.func @task_allocate(%x : !llvm.ptr) {273  // expected-error@below {{not yet implemented: Unhandled clause allocate in omp.task operation}}274  // expected-error@below {{LLVM Translation failed for operation: omp.task}}275  omp.task allocate(%x : !llvm.ptr -> %x : !llvm.ptr) {276    omp.terminator277  }278  llvm.return279}280 281// -----282 283omp.declare_reduction @add_f32 : f32284init {285^bb0(%arg: f32):286  %0 = llvm.mlir.constant(0.0 : f32) : f32287  omp.yield (%0 : f32)288}289combiner {290^bb1(%arg0: f32, %arg1: f32):291  %1 = llvm.fadd %arg0, %arg1 : f32292  omp.yield (%1 : f32)293}294atomic {295^bb2(%arg2: !llvm.ptr, %arg3: !llvm.ptr):296  %2 = llvm.load %arg3 : !llvm.ptr -> f32297  llvm.atomicrmw fadd %arg2, %2 monotonic : !llvm.ptr, f32298  omp.yield299}300llvm.func @task_in_reduction(%x : !llvm.ptr) {301  // expected-error@below {{not yet implemented: Unhandled clause in_reduction in omp.task operation}}302  // expected-error@below {{LLVM Translation failed for operation: omp.task}}303  omp.task in_reduction(@add_f32 %x -> %prv : !llvm.ptr) {304    omp.terminator305  }306  llvm.return307}308 309// -----310 311llvm.func @taskgroup_allocate(%x : !llvm.ptr) {312  // expected-error@below {{not yet implemented: Unhandled clause allocate in omp.taskgroup operation}}313  // expected-error@below {{LLVM Translation failed for operation: omp.taskgroup}}314  omp.taskgroup allocate(%x : !llvm.ptr -> %x : !llvm.ptr) {315    omp.terminator316  }317  llvm.return318}319 320// -----321 322omp.declare_reduction @add_f32 : f32323init {324^bb0(%arg: f32):325  %0 = llvm.mlir.constant(0.0 : f32) : f32326  omp.yield (%0 : f32)327}328combiner {329^bb1(%arg0: f32, %arg1: f32):330  %1 = llvm.fadd %arg0, %arg1 : f32331  omp.yield (%1 : f32)332}333atomic {334^bb2(%arg2: !llvm.ptr, %arg3: !llvm.ptr):335  %2 = llvm.load %arg3 : !llvm.ptr -> f32336  llvm.atomicrmw fadd %arg2, %2 monotonic : !llvm.ptr, f32337  omp.yield338}339llvm.func @taskgroup_task_reduction(%x : !llvm.ptr) {340  // expected-error@below {{not yet implemented: Unhandled clause task_reduction in omp.taskgroup operation}}341  // expected-error@below {{LLVM Translation failed for operation: omp.taskgroup}}342  omp.taskgroup task_reduction(@add_f32 %x -> %prv : !llvm.ptr) {343    omp.terminator344  }345  llvm.return346}347 348// -----349 350llvm.func @taskloop(%lb : i32, %ub : i32, %step : i32) {351  // expected-error@below {{not yet implemented: omp.taskloop}}352  // expected-error@below {{LLVM Translation failed for operation: omp.taskloop}}353  omp.taskloop {354    omp.loop_nest (%iv) : i32 = (%lb) to (%ub) step (%step) {355      omp.yield356    }357  }358  llvm.return359}360 361// -----362 363llvm.func @taskloop_untied(%lb : i32, %ub : i32, %step : i32) {364  // expected-error@below {{not yet implemented: omp.taskloop}}365  // expected-error@below {{LLVM Translation failed for operation: omp.taskloop}}366  omp.taskloop untied {367    omp.loop_nest (%iv) : i32 = (%lb) to (%ub) step (%step) {368      omp.yield369    }370  }371  llvm.return372}373 374// -----375 376llvm.func @taskwait_depend(%x: !llvm.ptr) {377  // expected-error@below {{not yet implemented: Unhandled clause depend in omp.taskwait operation}}378  // expected-error@below {{LLVM Translation failed for operation: omp.taskwait}}379  omp.taskwait depend(taskdependin -> %x : !llvm.ptr) {380    omp.terminator381  }382  llvm.return383}384 385// -----386 387llvm.func @taskwait_nowait() {388  // expected-error@below {{not yet implemented: Unhandled clause nowait in omp.taskwait operation}}389  // expected-error@below {{LLVM Translation failed for operation: omp.taskwait}}390  omp.taskwait nowait {391    omp.terminator392  }393  llvm.return394}395 396// -----397 398llvm.func @teams_allocate(%x : !llvm.ptr) {399  // expected-error@below {{not yet implemented: Unhandled clause allocate in omp.teams operation}}400  // expected-error@below {{LLVM Translation failed for operation: omp.teams}}401  omp.teams allocate(%x : !llvm.ptr -> %x : !llvm.ptr) {402    omp.terminator403  }404  llvm.return405}406 407// -----408 409omp.private {type = private} @x.privatizer : i32 init {410^bb0(%mold: !llvm.ptr, %private: !llvm.ptr):411  %c0 = llvm.mlir.constant(0 : i32) : i32412  llvm.store %c0, %private : i32, !llvm.ptr413  omp.yield(%private: !llvm.ptr)414}415llvm.func @teams_private(%x : !llvm.ptr) {416  // expected-error@below {{not yet implemented: Unhandled clause privatization in omp.teams operation}}417  // expected-error@below {{LLVM Translation failed for operation: omp.teams}}418  omp.teams private(@x.privatizer %x -> %arg0 : !llvm.ptr) {419    omp.terminator420  }421  llvm.return422}423 424// -----425 426llvm.func @wsloop_allocate(%lb : i32, %ub : i32, %step : i32, %x : !llvm.ptr) {427  // expected-error@below {{not yet implemented: Unhandled clause allocate in omp.wsloop operation}}428  // expected-error@below {{LLVM Translation failed for operation: omp.wsloop}}429  omp.wsloop allocate(%x : !llvm.ptr -> %x : !llvm.ptr) {430    omp.loop_nest (%iv) : i32 = (%lb) to (%ub) step (%step) {431      omp.yield432    }433  }434  llvm.return435}436 437// -----438 439llvm.func @wsloop_linear(%lb : i32, %ub : i32, %step : i32, %x : !llvm.ptr) {440  // expected-error@below {{not yet implemented: Unhandled clause linear in omp.wsloop operation}}441  // expected-error@below {{LLVM Translation failed for operation: omp.wsloop}}442  omp.wsloop linear(%x = %step : !llvm.ptr) {443    omp.loop_nest (%iv) : i32 = (%lb) to (%ub) step (%step) {444      omp.yield445    }446  }447  llvm.return448}449 450// -----451llvm.func @wsloop_order(%lb : i32, %ub : i32, %step : i32) {452  // expected-error@below {{not yet implemented: Unhandled clause order in omp.wsloop operation}}453  // expected-error@below {{LLVM Translation failed for operation: omp.wsloop}}454  omp.wsloop order(concurrent) {455    omp.loop_nest (%iv) : i32 = (%lb) to (%ub) step (%step) {456      omp.yield457    }458  }459  llvm.return460}461