1608 lines · plain
1! This test checks lowering of OpenMP IF clauses.2 3! The "if" clause was added to the "simd" directive in OpenMP 5.0, and4! to the "teams" directive in OpenMP 5.2.5! RUN: bbc -fopenmp -fopenmp-version=52 -emit-hlfir %s -o - | FileCheck %s6! RUN: %flang_fc1 -fopenmp -fopenmp-version=52 -emit-hlfir %s -o - | FileCheck %s7 8program main9 integer :: i10 11 ! TODO When they are supported, add tests for:12 ! - PARALLEL SECTIONS13 ! - PARALLEL WORKSHARE14 ! - TARGET UPDATE15 ! - TASKLOOP SIMD16 17 ! ----------------------------------------------------------------------------18 ! DISTRIBUTE PARALLEL DO19 ! ----------------------------------------------------------------------------20 !$omp teams21 22 ! CHECK: omp.parallel23 ! CHECK-NOT: if({{.*}})24 ! CHECK-SAME: {25 ! CHECK: omp.distribute26 ! CHECK-NOT: if({{.*}})27 ! CHECK-SAME: {28 ! CHECK-NEXT: omp.wsloop29 ! CHECK-NOT: if({{.*}})30 ! CHECK-SAME: {31 ! CHECK-NEXT: omp.loop_nest32 !$omp distribute parallel do33 do i = 1, 1034 end do35 !$omp end distribute parallel do36 37 ! CHECK: omp.parallel38 ! CHECK-SAME: if({{.*}})39 ! CHECK: omp.distribute40 ! CHECK-NOT: if({{.*}})41 ! CHECK-SAME: {42 ! CHECK-NEXT: omp.wsloop43 ! CHECK-NOT: if({{.*}})44 ! CHECK-SAME: {45 ! CHECK-NEXT: omp.loop_nest46 !$omp distribute parallel do if(.true.)47 do i = 1, 1048 end do49 !$omp end distribute parallel do50 51 ! CHECK: omp.parallel52 ! CHECK-SAME: if({{.*}})53 ! CHECK: omp.distribute54 ! CHECK-NOT: if({{.*}})55 ! CHECK-SAME: {56 ! CHECK-NEXT: omp.wsloop57 ! CHECK-NOT: if({{.*}})58 ! CHECK-SAME: {59 ! CHECK-NEXT: omp.loop_nest60 !$omp distribute parallel do if(parallel: .true.)61 do i = 1, 1062 end do63 !$omp end distribute parallel do64 65 !$omp end teams66 67 ! ----------------------------------------------------------------------------68 ! DISTRIBUTE PARALLEL DO SIMD69 ! ----------------------------------------------------------------------------70 !$omp teams71 72 ! CHECK: omp.parallel73 ! CHECK-NOT: if({{.*}})74 ! CHECK-SAME: {75 ! CHECK: omp.distribute76 ! CHECK-NOT: if({{.*}})77 ! CHECK-SAME: {78 ! CHECK-NEXT: omp.wsloop79 ! CHECK-NOT: if({{.*}})80 ! CHECK-SAME: {81 ! CHECK-NEXT: omp.simd82 ! CHECK-NOT: if({{.*}})83 ! CHECK-SAME: {84 ! CHECK-NEXT: omp.loop_nest85 !$omp distribute parallel do simd86 do i = 1, 1087 end do88 !$omp end distribute parallel do simd89 90 ! CHECK: omp.parallel91 ! CHECK-SAME: if({{.*}})92 ! CHECK: omp.distribute93 ! CHECK-NOT: if({{.*}})94 ! CHECK-SAME: {95 ! CHECK-NEXT: omp.wsloop96 ! CHECK-NOT: if({{.*}})97 ! CHECK-SAME: {98 ! CHECK-NEXT: omp.simd99 ! CHECK-SAME: if({{.*}})100 ! CHECK-NEXT: omp.loop_nest101 !$omp distribute parallel do simd if(.true.)102 do i = 1, 10103 end do104 !$omp end distribute parallel do simd105 106 ! CHECK: omp.parallel107 ! CHECK-SAME: if({{.*}})108 ! CHECK: omp.distribute109 ! CHECK-NOT: if({{.*}})110 ! CHECK-SAME: {111 ! CHECK-NEXT: omp.wsloop112 ! CHECK-NOT: if({{.*}})113 ! CHECK-SAME: {114 ! CHECK-NEXT: omp.simd115 ! CHECK-SAME: if({{.*}})116 ! CHECK-NEXT: omp.loop_nest117 !$omp distribute parallel do simd if(parallel: .true.) if(simd: .false.)118 do i = 1, 10119 end do120 !$omp end distribute parallel do simd121 122 ! CHECK: omp.parallel123 ! CHECK-SAME: if({{.*}})124 ! CHECK: omp.distribute125 ! CHECK-NOT: if({{.*}})126 ! CHECK-SAME: {127 ! CHECK-NEXT: omp.wsloop128 ! CHECK-NOT: if({{.*}})129 ! CHECK-SAME: {130 ! CHECK-NEXT: omp.simd131 ! CHECK-NOT: if({{.*}})132 ! CHECK-SAME: {133 ! CHECK-NEXT: omp.loop_nest134 !$omp distribute parallel do simd if(parallel: .true.)135 do i = 1, 10136 end do137 !$omp end distribute parallel do simd138 139 ! CHECK: omp.parallel140 ! CHECK-NOT: if({{.*}})141 ! CHECK-SAME: {142 ! CHECK: omp.distribute143 ! CHECK-NOT: if({{.*}})144 ! CHECK-SAME: {145 ! CHECK-NEXT: omp.wsloop146 ! CHECK-NOT: if({{.*}})147 ! CHECK-SAME: {148 ! CHECK-NEXT: omp.simd149 ! CHECK-SAME: if({{.*}})150 ! CHECK-NEXT: omp.loop_nest151 !$omp distribute parallel do simd if(simd: .true.)152 do i = 1, 10153 end do154 !$omp end distribute parallel do simd155 156 !$omp end teams157 158 ! ----------------------------------------------------------------------------159 ! DISTRIBUTE SIMD160 ! ----------------------------------------------------------------------------161 !$omp teams162 163 ! CHECK: omp.distribute164 ! CHECK-NOT: if({{.*}})165 ! CHECK-SAME: {166 ! CHECK-NEXT: omp.simd167 ! CHECK-NOT: if({{.*}})168 ! CHECK-SAME: {169 ! CHECK-NEXT: omp.loop_nest170 !$omp distribute simd171 do i = 1, 10172 end do173 !$omp end distribute simd174 175 ! CHECK: omp.distribute176 ! CHECK-NOT: if({{.*}})177 ! CHECK-SAME: {178 ! CHECK-NEXT: omp.simd179 ! CHECK-SAME: if({{.*}})180 ! CHECK-NEXT: omp.loop_nest181 !$omp distribute simd if(.true.)182 do i = 1, 10183 end do184 !$omp end distribute simd185 186 ! CHECK: omp.distribute187 ! CHECK-NOT: if({{.*}})188 ! CHECK-SAME: {189 ! CHECK-NEXT: omp.simd190 ! CHECK-SAME: if({{.*}})191 ! CHECK-NEXT: omp.loop_nest192 !$omp distribute simd if(simd: .true.)193 do i = 1, 10194 end do195 !$omp end distribute simd196 197 !$omp end teams198 199 ! ----------------------------------------------------------------------------200 ! DO SIMD201 ! ----------------------------------------------------------------------------202 ! CHECK: omp.wsloop203 ! CHECK-NOT: if({{.*}})204 ! CHECK-SAME: {205 ! CHECK-NEXT: omp.simd206 ! CHECK-NOT: if({{.*}})207 ! CHECK-SAME: {208 ! CHECK-NEXT: omp.loop_nest209 !$omp do simd210 do i = 1, 10211 end do212 !$omp end do simd213 214 ! CHECK: omp.wsloop215 ! CHECK-NOT: if({{.*}})216 ! CHECK-SAME: {217 ! CHECK-NEXT: omp.simd218 ! CHECK-SAME: if({{.*}})219 ! CHECK-NEXT: omp.loop_nest220 !$omp do simd if(.true.)221 do i = 1, 10222 end do223 !$omp end do simd224 225 ! CHECK: omp.wsloop226 ! CHECK-NOT: if({{.*}})227 ! CHECK-SAME: {228 ! CHECK-NEXT: omp.simd229 ! CHECK-SAME: if({{.*}})230 ! CHECK-NEXT: omp.loop_nest231 !$omp do simd if(simd: .true.)232 do i = 1, 10233 end do234 !$omp end do simd235 236 ! ----------------------------------------------------------------------------237 ! PARALLEL238 ! ----------------------------------------------------------------------------239 ! CHECK: omp.parallel240 ! CHECK-NOT: if({{.*}})241 ! CHECK-SAME: {242 !$omp parallel243 i = 10244 !$omp end parallel245 246 ! CHECK: omp.parallel247 ! CHECK-SAME: if({{.*}})248 !$omp parallel if(.true.)249 i = 10250 !$omp end parallel251 252 ! CHECK: omp.parallel253 ! CHECK-SAME: if({{.*}})254 !$omp parallel if(parallel: .true.)255 i = 10256 !$omp end parallel257 258 ! ----------------------------------------------------------------------------259 ! PARALLEL DO260 ! ----------------------------------------------------------------------------261 ! CHECK: omp.parallel262 ! CHECK-NOT: if({{.*}})263 ! CHECK-SAME: {264 ! CHECK: omp.wsloop265 ! CHECK-NOT: if({{.*}})266 ! CHECK-SAME: {267 ! CHECK-NEXT: omp.loop_nest268 !$omp parallel do269 do i = 1, 10270 end do271 !$omp end parallel do272 273 ! CHECK: omp.parallel274 ! CHECK-SAME: if({{.*}})275 ! CHECK: omp.wsloop276 ! CHECK-NOT: if({{.*}})277 ! CHECK-SAME: {278 ! CHECK-NEXT: omp.loop_nest279 !$omp parallel do if(.true.)280 do i = 1, 10281 end do282 !$omp end parallel do283 284 ! CHECK: omp.parallel285 ! CHECK-SAME: if({{.*}})286 ! CHECK: omp.wsloop287 ! CHECK-NOT: if({{.*}})288 ! CHECK-SAME: {289 ! CHECK-NEXT: omp.loop_nest290 !$omp parallel do if(parallel: .true.)291 do i = 1, 10292 end do293 !$omp end parallel do294 295 ! ----------------------------------------------------------------------------296 ! PARALLEL DO SIMD297 ! ----------------------------------------------------------------------------298 ! CHECK: omp.parallel299 ! CHECK-NOT: if({{.*}})300 ! CHECK-SAME: {301 ! CHECK: omp.wsloop302 ! CHECK-NOT: if({{.*}})303 ! CHECK-SAME: {304 ! CHECK-NEXT: omp.simd305 ! CHECK-NOT: if({{.*}})306 ! CHECK-SAME: {307 ! CHECK-NEXT: omp.loop_nest308 !$omp parallel do simd309 do i = 1, 10310 end do311 !$omp end parallel do simd312 313 ! CHECK: omp.parallel314 ! CHECK-SAME: if({{.*}})315 ! CHECK: omp.wsloop316 ! CHECK-NOT: if({{.*}})317 ! CHECK-SAME: {318 ! CHECK-NEXT: omp.simd319 ! CHECK-SAME: if({{.*}})320 ! CHECK-NEXT: omp.loop_nest321 !$omp parallel do simd if(.true.)322 do i = 1, 10323 end do324 !$omp end parallel do simd325 326 ! CHECK: omp.parallel327 ! CHECK-SAME: if({{.*}})328 ! CHECK: omp.wsloop329 ! CHECK-NOT: if({{.*}})330 ! CHECK-SAME: {331 ! CHECK-NEXT: omp.simd332 ! CHECK-SAME: if({{.*}})333 ! CHECK-NEXT: omp.loop_nest334 !$omp parallel do simd if(parallel: .true.) if(simd: .false.)335 do i = 1, 10336 end do337 !$omp end parallel do simd338 339 ! CHECK: omp.parallel340 ! CHECK-SAME: if({{.*}})341 ! CHECK: omp.wsloop342 ! CHECK-NOT: if({{.*}})343 ! CHECK-SAME: {344 ! CHECK-NEXT: omp.simd345 ! CHECK-NOT: if({{.*}})346 ! CHECK-SAME: {347 ! CHECK-NEXT: omp.loop_nest348 !$omp parallel do simd if(parallel: .true.)349 do i = 1, 10350 end do351 !$omp end parallel do simd352 353 ! CHECK: omp.parallel354 ! CHECK-NOT: if({{.*}})355 ! CHECK-SAME: {356 ! CHECK: omp.wsloop357 ! CHECK-NOT: if({{.*}})358 ! CHECK-SAME: {359 ! CHECK-NEXT: omp.simd360 ! CHECK-SAME: if({{.*}})361 ! CHECK-NEXT: omp.loop_nest362 !$omp parallel do simd if(simd: .true.)363 do i = 1, 10364 end do365 !$omp end parallel do simd366 367 ! ----------------------------------------------------------------------------368 ! SIMD369 ! ----------------------------------------------------------------------------370 ! CHECK: omp.simd371 ! CHECK-NOT: if({{.*}})372 ! CHECK-SAME: {373 ! CHECK-NEXT: omp.loop_nest374 !$omp simd375 do i = 1, 10376 end do377 !$omp end simd378 379 ! CHECK: omp.simd380 ! CHECK-SAME: if({{.*}})381 ! CHECK-NEXT: omp.loop_nest382 !$omp simd if(.true.)383 do i = 1, 10384 end do385 !$omp end simd386 387 ! CHECK: omp.simd388 ! CHECK-SAME: if({{.*}})389 ! CHECK-NEXT: omp.loop_nest390 !$omp simd if(simd: .true.)391 do i = 1, 10392 end do393 !$omp end simd394 395 ! ----------------------------------------------------------------------------396 ! TARGET397 ! ----------------------------------------------------------------------------398 ! CHECK: omp.target399 ! CHECK-NOT: if({{.*}})400 ! CHECK-SAME: {401 !$omp target402 !$omp end target403 404 ! CHECK: omp.target405 ! CHECK-SAME: if({{.*}})406 !$omp target if(.true.)407 !$omp end target408 409 ! CHECK: omp.target410 ! CHECK-SAME: if({{.*}})411 !$omp target if(target: .true.)412 !$omp end target413 414 ! ----------------------------------------------------------------------------415 ! TARGET DATA416 ! ----------------------------------------------------------------------------417 ! CHECK: omp.target_data418 ! CHECK-NOT: if({{.*}})419 ! CHECK-SAME: {420 !$omp target data map(tofrom: i)421 !$omp end target data422 423 ! CHECK: omp.target_data424 ! CHECK-SAME: if({{.*}})425 !$omp target data map(tofrom: i) if(.true.)426 !$omp end target data427 428 ! CHECK: omp.target_data429 ! CHECK-SAME: if({{.*}})430 !$omp target data map(tofrom: i) if(target data: .true.)431 !$omp end target data432 433 ! ----------------------------------------------------------------------------434 ! TARGET ENTER DATA435 ! ----------------------------------------------------------------------------436 ! CHECK: omp.target_enter_data437 ! CHECK-NOT: if({{.*}})438 ! CHECK-SAME: map439 !$omp target enter data map(to: i)440 441 ! CHECK: omp.target_enter_data442 ! CHECK-SAME: if({{.*}})443 !$omp target enter data map(to: i) if(.true.)444 445 ! CHECK: omp.target_enter_data446 ! CHECK-SAME: if({{.*}})447 !$omp target enter data map(to: i) if(target enter data: .true.)448 449 ! ----------------------------------------------------------------------------450 ! TARGET EXIT DATA451 ! ----------------------------------------------------------------------------452 ! CHECK: omp.target_exit_data453 ! CHECK-NOT: if({{.*}})454 ! CHECK-SAME: map455 !$omp target exit data map(from: i)456 457 ! CHECK: omp.target_exit_data458 ! CHECK-SAME: if({{.*}})459 !$omp target exit data map(from: i) if(.true.)460 461 ! CHECK: omp.target_exit_data462 ! CHECK-SAME: if({{.*}})463 !$omp target exit data map(from: i) if(target exit data: .true.)464 465 ! ----------------------------------------------------------------------------466 ! TARGET PARALLEL DO467 ! ----------------------------------------------------------------------------468 ! CHECK: omp.target469 ! CHECK-NOT: if({{.*}})470 ! CHECK-SAME: {471 ! CHECK: omp.parallel472 ! CHECK-NOT: if({{.*}})473 ! CHECK-SAME: {474 ! CHECK: omp.wsloop475 ! CHECK-NOT: if({{.*}})476 ! CHECK-SAME: {477 ! CHECK-NEXT: omp.loop_nest478 !$omp target parallel do479 do i = 1, 10480 end do481 !$omp end target parallel do482 483 ! CHECK: omp.target484 ! CHECK-SAME: if({{.*}})485 ! CHECK: omp.parallel486 ! CHECK-SAME: if({{.*}})487 ! CHECK: omp.wsloop488 ! CHECK-NOT: if({{.*}})489 ! CHECK-SAME: {490 ! CHECK-NEXT: omp.loop_nest491 !$omp target parallel do if(.true.)492 do i = 1, 10493 end do494 !$omp end target parallel do495 496 ! CHECK: omp.target497 ! CHECK-SAME: if({{.*}})498 ! CHECK: omp.parallel499 ! CHECK-SAME: if({{.*}})500 ! CHECK: omp.wsloop501 ! CHECK-NOT: if({{.*}})502 ! CHECK-SAME: {503 ! CHECK-NEXT: omp.loop_nest504 !$omp target parallel do if(target: .true.) if(parallel: .false.)505 do i = 1, 10506 end do507 !$omp end target parallel do508 509 ! CHECK: omp.target510 ! CHECK-SAME: if({{.*}})511 ! CHECK: omp.parallel512 ! CHECK-NOT: if({{.*}})513 ! CHECK-SAME: {514 ! CHECK: omp.wsloop515 ! CHECK-NOT: if({{.*}})516 ! CHECK-SAME: {517 ! CHECK-NEXT: omp.loop_nest518 !$omp target parallel do if(target: .true.)519 do i = 1, 10520 end do521 !$omp end target parallel do522 523 ! CHECK: omp.target524 ! CHECK-NOT: if({{.*}})525 ! CHECK-SAME: {526 ! CHECK: omp.parallel527 ! CHECK-SAME: if({{.*}})528 ! CHECK: omp.wsloop529 ! CHECK-NOT: if({{.*}})530 ! CHECK-SAME: {531 ! CHECK-NEXT: omp.loop_nest532 !$omp target parallel do if(parallel: .true.)533 do i = 1, 10534 end do535 !$omp end target parallel do536 537 ! ----------------------------------------------------------------------------538 ! TARGET PARALLEL DO SIMD539 ! ----------------------------------------------------------------------------540 ! CHECK: omp.target541 ! CHECK-NOT: if({{.*}})542 ! CHECK-SAME: {543 ! CHECK: omp.parallel544 ! CHECK-NOT: if({{.*}})545 ! CHECK-SAME: {546 ! CHECK: omp.wsloop547 ! CHECK-NOT: if({{.*}})548 ! CHECK-SAME: {549 ! CHECK-NEXT: omp.simd550 ! CHECK-NOT: if({{.*}})551 ! CHECK-SAME: {552 ! CHECK-NEXT: omp.loop_nest553 !$omp target parallel do simd554 do i = 1, 10555 end do556 !$omp end target parallel do simd557 558 ! CHECK: omp.target559 ! CHECK-SAME: if({{.*}})560 ! CHECK: omp.parallel561 ! CHECK-SAME: if({{.*}})562 ! CHECK: omp.wsloop563 ! CHECK-NOT: if({{.*}})564 ! CHECK-SAME: {565 ! CHECK-NEXT: omp.simd566 ! CHECK-SAME: if({{.*}})567 ! CHECK-NEXT: omp.loop_nest568 !$omp target parallel do simd if(.true.)569 do i = 1, 10570 end do571 !$omp end target parallel do simd572 573 ! CHECK: omp.target574 ! CHECK-SAME: if({{.*}})575 ! CHECK: omp.parallel576 ! CHECK-SAME: if({{.*}})577 ! CHECK: omp.wsloop578 ! CHECK-NOT: if({{.*}})579 ! CHECK-SAME: {580 ! CHECK-NEXT: omp.simd581 ! CHECK-SAME: if({{.*}})582 ! CHECK-NEXT: omp.loop_nest583 !$omp target parallel do simd if(target: .true.) if(parallel: .false.) &584 !$omp& if(simd: .true.)585 do i = 1, 10586 end do587 !$omp end target parallel do simd588 589 ! CHECK: omp.target590 ! CHECK-SAME: if({{.*}})591 ! CHECK: omp.parallel592 ! CHECK-NOT: if({{.*}})593 ! CHECK-SAME: {594 ! CHECK: omp.wsloop595 ! CHECK-NOT: if({{.*}})596 ! CHECK-SAME: {597 ! CHECK-NEXT: omp.simd598 ! CHECK-NOT: if({{.*}})599 ! CHECK-SAME: {600 ! CHECK-NEXT: omp.loop_nest601 !$omp target parallel do simd if(target: .true.)602 do i = 1, 10603 end do604 !$omp end target parallel do simd605 606 ! CHECK: omp.target607 ! CHECK-NOT: if({{.*}})608 ! CHECK-SAME: {609 ! CHECK: omp.parallel610 ! CHECK-SAME: if({{.*}})611 ! CHECK: omp.wsloop612 ! CHECK-NOT: if({{.*}})613 ! CHECK-SAME: {614 ! CHECK-NEXT: omp.simd615 ! CHECK-SAME: if({{.*}})616 ! CHECK-NEXT: omp.loop_nest617 !$omp target parallel do simd if(parallel: .true.) if(simd: .false.)618 do i = 1, 10619 end do620 !$omp end target parallel do simd621 622 ! ----------------------------------------------------------------------------623 ! TARGET PARALLEL624 ! ----------------------------------------------------------------------------625 ! CHECK: omp.target626 ! CHECK-NOT: if({{.*}})627 ! CHECK-SAME: {628 ! CHECK: omp.parallel629 ! CHECK-NOT: if({{.*}})630 ! CHECK-SAME: {631 !$omp target parallel632 i = 1633 !$omp end target parallel634 635 ! CHECK: omp.target636 ! CHECK-SAME: if({{.*}})637 ! CHECK: omp.parallel638 ! CHECK-SAME: if({{.*}})639 !$omp target parallel if(.true.)640 i = 1641 !$omp end target parallel642 643 ! CHECK: omp.target644 ! CHECK-SAME: if({{.*}})645 ! CHECK: omp.parallel646 ! CHECK-SAME: if({{.*}})647 !$omp target parallel if(target: .true.) if(parallel: .false.)648 i = 1649 !$omp end target parallel650 651 ! CHECK: omp.target652 ! CHECK-SAME: if({{.*}})653 ! CHECK: omp.parallel654 ! CHECK-NOT: if({{.*}})655 ! CHECK-SAME: {656 !$omp target parallel if(target: .true.)657 i = 1658 !$omp end target parallel659 660 ! CHECK: omp.target661 ! CHECK-NOT: if({{.*}})662 ! CHECK-SAME: {663 ! CHECK: omp.parallel664 ! CHECK-SAME: if({{.*}})665 !$omp target parallel if(parallel: .true.)666 i = 1667 !$omp end target parallel668 669 ! ----------------------------------------------------------------------------670 ! TARGET SIMD671 ! ----------------------------------------------------------------------------672 ! CHECK: omp.target673 ! CHECK-NOT: if({{.*}})674 ! CHECK-SAME: {675 ! CHECK: omp.simd676 ! CHECK-NOT: if({{.*}})677 ! CHECK-SAME: {678 ! CHECK-NEXT: omp.loop_nest679 !$omp target simd680 do i = 1, 10681 end do682 !$omp end target simd683 684 ! CHECK: omp.target685 ! CHECK-SAME: if({{.*}})686 ! CHECK: omp.simd687 ! CHECK-SAME: if({{.*}})688 ! CHECK-NEXT: omp.loop_nest689 !$omp target simd if(.true.)690 do i = 1, 10691 end do692 !$omp end target simd693 694 ! CHECK: omp.target695 ! CHECK-SAME: if({{.*}})696 ! CHECK: omp.simd697 ! CHECK-SAME: if({{.*}})698 ! CHECK-NEXT: omp.loop_nest699 !$omp target simd if(target: .true.) if(simd: .false.)700 do i = 1, 10701 end do702 !$omp end target simd703 704 ! CHECK: omp.target705 ! CHECK-SAME: if({{.*}})706 ! CHECK: omp.simd707 ! CHECK-NOT: if({{.*}})708 ! CHECK-SAME: {709 ! CHECK-NEXT: omp.loop_nest710 !$omp target simd if(target: .true.)711 do i = 1, 10712 end do713 !$omp end target simd714 715 ! CHECK: omp.target716 ! CHECK-NOT: if({{.*}})717 ! CHECK-SAME: {718 ! CHECK: omp.simd719 ! CHECK-SAME: if({{.*}})720 ! CHECK-NEXT: omp.loop_nest721 !$omp target simd if(simd: .true.)722 do i = 1, 10723 end do724 !$omp end target simd725 726 ! ----------------------------------------------------------------------------727 ! TARGET TEAMS DISTRIBUTE728 ! ----------------------------------------------------------------------------729 ! CHECK: omp.target730 ! CHECK-NOT: if({{.*}})731 ! CHECK-SAME: {732 ! CHECK: omp.teams733 ! CHECK-NOT: if({{.*}})734 ! CHECK-SAME: {735 ! CHECK: omp.distribute736 ! CHECK-NOT: if({{.*}})737 ! CHECK-SAME: {738 ! CHECK-NEXT: omp.loop_nest739 !$omp target teams distribute740 do i = 1, 10741 end do742 !$omp end target teams distribute743 744 ! CHECK: omp.target745 ! CHECK-SAME: if({{.*}})746 ! CHECK: omp.teams747 ! CHECK-SAME: if({{.*}})748 ! CHECK: omp.distribute749 ! CHECK-NOT: if({{.*}})750 ! CHECK-SAME: {751 ! CHECK-NEXT: omp.loop_nest752 !$omp target teams distribute if(.true.)753 do i = 1, 10754 end do755 !$omp end target teams distribute756 757 ! CHECK: omp.target758 ! CHECK-SAME: if({{.*}})759 ! CHECK: omp.teams760 ! CHECK-SAME: if({{.*}})761 ! CHECK: omp.distribute762 ! CHECK-NOT: if({{.*}})763 ! CHECK-SAME: {764 ! CHECK-NEXT: omp.loop_nest765 !$omp target teams distribute if(target: .true.) if(teams: .false.)766 do i = 1, 10767 end do768 !$omp end target teams distribute769 770 ! CHECK: omp.target771 ! CHECK-SAME: if({{.*}})772 ! CHECK: omp.teams773 ! CHECK-NOT: if({{.*}})774 ! CHECK-SAME: {775 ! CHECK: omp.distribute776 ! CHECK-NOT: if({{.*}})777 ! CHECK-SAME: {778 ! CHECK-NEXT: omp.loop_nest779 !$omp target teams distribute if(target: .true.)780 do i = 1, 10781 end do782 !$omp end target teams distribute783 784 ! CHECK: omp.target785 ! CHECK-NOT: if({{.*}})786 ! CHECK-SAME: {787 ! CHECK: omp.teams788 ! CHECK-SAME: if({{.*}})789 ! CHECK: omp.distribute790 ! CHECK-NOT: if({{.*}})791 ! CHECK-SAME: {792 ! CHECK-NEXT: omp.loop_nest793 !$omp target teams distribute if(teams: .true.)794 do i = 1, 10795 end do796 !$omp end target teams distribute797 798 ! ----------------------------------------------------------------------------799 ! TARGET TEAMS DISTRIBUTE PARALLEL DO800 ! ----------------------------------------------------------------------------801 ! CHECK: omp.target802 ! CHECK-NOT: if({{.*}})803 ! CHECK-SAME: {804 ! CHECK: omp.teams805 ! CHECK-NOT: if({{.*}})806 ! CHECK-SAME: {807 ! CHECK: omp.parallel808 ! CHECK-NOT: if({{.*}})809 ! CHECK-SAME: {810 ! CHECK: omp.distribute811 ! CHECK-NOT: if({{.*}})812 ! CHECK-SAME: {813 ! CHECK-NEXT: omp.wsloop814 ! CHECK-NOT: if({{.*}})815 ! CHECK-SAME: {816 ! CHECK-NEXT: omp.loop_nest817 !$omp target teams distribute parallel do818 do i = 1, 10819 end do820 !$omp end target teams distribute parallel do821 822 ! CHECK: omp.target823 ! CHECK-SAME: if({{.*}})824 ! CHECK: omp.teams825 ! CHECK-SAME: if({{.*}})826 ! CHECK: omp.parallel827 ! CHECK-SAME: if({{.*}})828 ! CHECK: omp.distribute829 ! CHECK-NOT: if({{.*}})830 ! CHECK-SAME: {831 ! CHECK-NEXT: omp.wsloop832 ! CHECK-NOT: if({{.*}})833 ! CHECK-SAME: {834 ! CHECK-NEXT: omp.loop_nest835 !$omp target teams distribute parallel do if(.true.)836 do i = 1, 10837 end do838 !$omp end target teams distribute parallel do839 840 ! CHECK: omp.target841 ! CHECK-SAME: if({{.*}})842 ! CHECK: omp.teams843 ! CHECK-SAME: if({{.*}})844 ! CHECK: omp.parallel845 ! CHECK-SAME: if({{.*}})846 ! CHECK: omp.distribute847 ! CHECK-NOT: if({{.*}})848 ! CHECK-SAME: {849 ! CHECK-NEXT: omp.wsloop850 ! CHECK-NOT: if({{.*}})851 ! CHECK-SAME: {852 ! CHECK-NEXT: omp.loop_nest853 !$omp target teams distribute parallel do if(target: .true.) if(teams: .false.) if(parallel: .true.)854 do i = 1, 10855 end do856 !$omp end target teams distribute parallel do857 858 ! CHECK: omp.target859 ! CHECK-SAME: if({{.*}})860 ! CHECK: omp.teams861 ! CHECK-NOT: if({{.*}})862 ! CHECK-SAME: {863 ! CHECK: omp.parallel864 ! CHECK-NOT: if({{.*}})865 ! CHECK-SAME: {866 ! CHECK: omp.distribute867 ! CHECK-NOT: if({{.*}})868 ! CHECK-SAME: {869 ! CHECK-NEXT: omp.wsloop870 ! CHECK-NOT: if({{.*}})871 ! CHECK-SAME: {872 ! CHECK-NEXT: omp.loop_nest873 !$omp target teams distribute parallel do if(target: .true.)874 do i = 1, 10875 end do876 !$omp end target teams distribute parallel do877 878 ! CHECK: omp.target879 ! CHECK-NOT: if({{.*}})880 ! CHECK-SAME: {881 ! CHECK: omp.teams882 ! CHECK-SAME: if({{.*}})883 ! CHECK: omp.parallel884 ! CHECK-NOT: if({{.*}})885 ! CHECK-SAME: {886 ! CHECK: omp.distribute887 ! CHECK-NOT: if({{.*}})888 ! CHECK-SAME: {889 ! CHECK-NEXT: omp.wsloop890 ! CHECK-NOT: if({{.*}})891 ! CHECK-SAME: {892 ! CHECK-NEXT: omp.loop_nest893 !$omp target teams distribute parallel do if(teams: .true.)894 do i = 1, 10895 end do896 !$omp end target teams distribute parallel do897 898 ! CHECK: omp.target899 ! CHECK-NOT: if({{.*}})900 ! CHECK-SAME: {901 ! CHECK: omp.teams902 ! CHECK-NOT: if({{.*}})903 ! CHECK-SAME: {904 ! CHECK: omp.parallel905 ! CHECK-SAME: if({{.*}})906 ! CHECK: omp.distribute907 ! CHECK-NOT: if({{.*}})908 ! CHECK-SAME: {909 ! CHECK-NEXT: omp.wsloop910 ! CHECK-NOT: if({{.*}})911 ! CHECK-SAME: {912 ! CHECK-NEXT: omp.loop_nest913 !$omp target teams distribute parallel do if(parallel: .true.)914 do i = 1, 10915 end do916 !$omp end target teams distribute parallel do917 918 ! ----------------------------------------------------------------------------919 ! TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD920 ! ----------------------------------------------------------------------------921 ! CHECK: omp.target922 ! CHECK-NOT: if({{.*}})923 ! CHECK-SAME: {924 ! CHECK: omp.teams925 ! CHECK-NOT: if({{.*}})926 ! CHECK-SAME: {927 ! CHECK: omp.parallel928 ! CHECK-NOT: if({{.*}})929 ! CHECK-SAME: {930 ! CHECK: omp.distribute931 ! CHECK-NOT: if({{.*}})932 ! CHECK-SAME: {933 ! CHECK-NEXT: omp.wsloop934 ! CHECK-NOT: if({{.*}})935 ! CHECK-SAME: {936 ! CHECK-NEXT: omp.simd937 ! CHECK-NOT: if({{.*}})938 ! CHECK-SAME: {939 ! CHECK-NEXT: omp.loop_nest940 !$omp target teams distribute parallel do simd941 do i = 1, 10942 end do943 !$omp end target teams distribute parallel do simd944 945 ! CHECK: omp.target946 ! CHECK-SAME: if({{.*}})947 ! CHECK: omp.teams948 ! CHECK-SAME: if({{.*}})949 ! CHECK: omp.parallel950 ! CHECK-SAME: if({{.*}})951 ! CHECK: omp.distribute952 ! CHECK-NOT: if({{.*}})953 ! CHECK-SAME: {954 ! CHECK-NEXT: omp.wsloop955 ! CHECK-NOT: if({{.*}})956 ! CHECK-SAME: {957 ! CHECK-NEXT: omp.simd958 ! CHECK-SAME: if({{.*}})959 ! CHECK-NEXT: omp.loop_nest960 !$omp target teams distribute parallel do simd if(.true.)961 do i = 1, 10962 end do963 !$omp end target teams distribute parallel do simd964 965 ! CHECK: omp.target966 ! CHECK-SAME: if({{.*}})967 ! CHECK: omp.teams968 ! CHECK-SAME: if({{.*}})969 ! CHECK: omp.parallel970 ! CHECK-SAME: if({{.*}})971 ! CHECK: omp.distribute972 ! CHECK-NOT: if({{.*}})973 ! CHECK-SAME: {974 ! CHECK-NEXT: omp.wsloop975 ! CHECK-NOT: if({{.*}})976 ! CHECK-SAME: {977 ! CHECK-NEXT: omp.simd978 ! CHECK-SAME: if({{.*}})979 ! CHECK-NEXT: omp.loop_nest980 !$omp target teams distribute parallel do simd if(target: .true.) if(teams: .false.) if(parallel: .true.) if(simd: .false.)981 do i = 1, 10982 end do983 !$omp end target teams distribute parallel do simd984 985 ! CHECK: omp.target986 ! CHECK-SAME: if({{.*}})987 ! CHECK: omp.teams988 ! CHECK-NOT: if({{.*}})989 ! CHECK-SAME: {990 ! CHECK: omp.parallel991 ! CHECK-NOT: if({{.*}})992 ! CHECK-SAME: {993 ! CHECK: omp.distribute994 ! CHECK-NOT: if({{.*}})995 ! CHECK-SAME: {996 ! CHECK-NEXT: omp.wsloop997 ! CHECK-NOT: if({{.*}})998 ! CHECK-SAME: {999 ! CHECK-NEXT: omp.simd1000 ! CHECK-NOT: if({{.*}})1001 ! CHECK-SAME: {1002 ! CHECK-NEXT: omp.loop_nest1003 !$omp target teams distribute parallel do simd if(target: .true.)1004 do i = 1, 101005 end do1006 !$omp end target teams distribute parallel do simd1007 1008 ! CHECK: omp.target1009 ! CHECK-NOT: if({{.*}})1010 ! CHECK-SAME: {1011 ! CHECK: omp.teams1012 ! CHECK-SAME: if({{.*}})1013 ! CHECK: omp.parallel1014 ! CHECK-NOT: if({{.*}})1015 ! CHECK-SAME: {1016 ! CHECK: omp.distribute1017 ! CHECK-NOT: if({{.*}})1018 ! CHECK-SAME: {1019 ! CHECK-NEXT: omp.wsloop1020 ! CHECK-NOT: if({{.*}})1021 ! CHECK-SAME: {1022 ! CHECK-NEXT: omp.simd1023 ! CHECK-NOT: if({{.*}})1024 ! CHECK-SAME: {1025 ! CHECK-NEXT: omp.loop_nest1026 !$omp target teams distribute parallel do simd if(teams: .true.)1027 do i = 1, 101028 end do1029 !$omp end target teams distribute parallel do simd1030 1031 ! CHECK: omp.target1032 ! CHECK-NOT: if({{.*}})1033 ! CHECK-SAME: {1034 ! CHECK: omp.teams1035 ! CHECK-NOT: if({{.*}})1036 ! CHECK-SAME: {1037 ! CHECK: omp.parallel1038 ! CHECK-SAME: if({{.*}})1039 ! CHECK: omp.distribute1040 ! CHECK-NOT: if({{.*}})1041 ! CHECK-SAME: {1042 ! CHECK-NEXT: omp.wsloop1043 ! CHECK-NOT: if({{.*}})1044 ! CHECK-SAME: {1045 ! CHECK-NEXT: omp.simd1046 ! CHECK-NOT: if({{.*}})1047 ! CHECK-SAME: {1048 ! CHECK-NEXT: omp.loop_nest1049 !$omp target teams distribute parallel do simd if(parallel: .true.)1050 do i = 1, 101051 end do1052 !$omp end target teams distribute parallel do simd1053 1054 ! CHECK: omp.target1055 ! CHECK-NOT: if({{.*}})1056 ! CHECK-SAME: {1057 ! CHECK: omp.teams1058 ! CHECK-NOT: if({{.*}})1059 ! CHECK-SAME: {1060 ! CHECK: omp.parallel1061 ! CHECK-NOT: if({{.*}})1062 ! CHECK-SAME: {1063 ! CHECK: omp.distribute1064 ! CHECK-NOT: if({{.*}})1065 ! CHECK-SAME: {1066 ! CHECK-NEXT: omp.wsloop1067 ! CHECK-NOT: if({{.*}})1068 ! CHECK-SAME: {1069 ! CHECK-NEXT: omp.simd1070 ! CHECK-SAME: if({{.*}})1071 ! CHECK-NEXT: omp.loop_nest1072 !$omp target teams distribute parallel do simd if(simd: .true.)1073 do i = 1, 101074 end do1075 !$omp end target teams distribute parallel do simd1076 1077 ! ----------------------------------------------------------------------------1078 ! TARGET TEAMS DISTRIBUTE SIMD1079 ! ----------------------------------------------------------------------------1080 ! CHECK: omp.target1081 ! CHECK-NOT: if({{.*}})1082 ! CHECK-SAME: {1083 ! CHECK: omp.teams1084 ! CHECK-NOT: if({{.*}})1085 ! CHECK-SAME: {1086 ! CHECK: omp.distribute1087 ! CHECK-NOT: if({{.*}})1088 ! CHECK-SAME: {1089 ! CHECK-NEXT: omp.simd1090 ! CHECK-NOT: if({{.*}})1091 ! CHECK-SAME: {1092 ! CHECK-NEXT: omp.loop_nest1093 !$omp target teams distribute simd1094 do i = 1, 101095 end do1096 !$omp end target teams distribute simd1097 1098 ! CHECK: omp.target1099 ! CHECK-SAME: if({{.*}})1100 ! CHECK: omp.teams1101 ! CHECK-SAME: if({{.*}})1102 ! CHECK: omp.distribute1103 ! CHECK-NOT: if({{.*}})1104 ! CHECK-SAME: {1105 ! CHECK-NEXT: omp.simd1106 ! CHECK-SAME: if({{.*}})1107 ! CHECK-NEXT: omp.loop_nest1108 !$omp target teams distribute simd if(.true.)1109 do i = 1, 101110 end do1111 !$omp end target teams distribute simd1112 1113 ! CHECK: omp.target1114 ! CHECK-SAME: if({{.*}})1115 ! CHECK: omp.teams1116 ! CHECK-SAME: if({{.*}})1117 ! CHECK: omp.distribute1118 ! CHECK-NOT: if({{.*}})1119 ! CHECK-SAME: {1120 ! CHECK-NEXT: omp.simd1121 ! CHECK-SAME: if({{.*}})1122 ! CHECK-NEXT: omp.loop_nest1123 !$omp target teams distribute simd if(target: .true.) if(teams: .false.) if(simd: .false.)1124 do i = 1, 101125 end do1126 !$omp end target teams distribute simd1127 1128 ! CHECK: omp.target1129 ! CHECK-SAME: if({{.*}})1130 ! CHECK: omp.teams1131 ! CHECK-NOT: if({{.*}})1132 ! CHECK-SAME: {1133 ! CHECK: omp.distribute1134 ! CHECK-NOT: if({{.*}})1135 ! CHECK-SAME: {1136 ! CHECK-NEXT: omp.simd1137 ! CHECK-NOT: if({{.*}})1138 ! CHECK-SAME: {1139 ! CHECK-NEXT: omp.loop_nest1140 !$omp target teams distribute simd if(target: .true.)1141 do i = 1, 101142 end do1143 !$omp end target teams distribute simd1144 1145 ! CHECK: omp.target1146 ! CHECK-NOT: if({{.*}})1147 ! CHECK-SAME: {1148 ! CHECK: omp.teams1149 ! CHECK-SAME: if({{.*}})1150 ! CHECK: omp.distribute1151 ! CHECK-NOT: if({{.*}})1152 ! CHECK-SAME: {1153 ! CHECK-NEXT: omp.simd1154 ! CHECK-NOT: if({{.*}})1155 ! CHECK-SAME: {1156 ! CHECK-NEXT: omp.loop_nest1157 !$omp target teams distribute simd if(teams: .true.)1158 do i = 1, 101159 end do1160 !$omp end target teams distribute simd1161 1162 ! CHECK: omp.target1163 ! CHECK-NOT: if({{.*}})1164 ! CHECK-SAME: {1165 ! CHECK: omp.teams1166 ! CHECK-NOT: if({{.*}})1167 ! CHECK-SAME: {1168 ! CHECK: omp.distribute1169 ! CHECK-NOT: if({{.*}})1170 ! CHECK-SAME: {1171 ! CHECK-NEXT: omp.simd1172 ! CHECK-SAME: if({{.*}})1173 ! CHECK-NEXT: omp.loop_nest1174 !$omp target teams distribute simd if(simd: .true.)1175 do i = 1, 101176 end do1177 !$omp end target teams distribute simd1178 1179 ! ----------------------------------------------------------------------------1180 ! TARGET TEAMS1181 ! ----------------------------------------------------------------------------1182 ! CHECK: omp.target1183 ! CHECK-NOT: if({{.*}})1184 ! CHECK-SAME: {1185 ! CHECK: omp.teams1186 ! CHECK-NOT: if({{.*}})1187 ! CHECK-SAME: {1188 !$omp target teams1189 i = 11190 !$omp end target teams1191 1192 ! CHECK: omp.target1193 ! CHECK-SAME: if({{.*}})1194 ! CHECK: omp.teams1195 ! CHECK-SAME: if({{.*}})1196 !$omp target teams if(.true.)1197 i = 11198 !$omp end target teams1199 1200 ! CHECK: omp.target1201 ! CHECK-SAME: if({{.*}})1202 ! CHECK: omp.teams1203 ! CHECK-SAME: if({{.*}})1204 !$omp target teams if(target: .true.) if(teams: .false.)1205 i = 11206 !$omp end target teams1207 1208 ! CHECK: omp.target1209 ! CHECK-SAME: if({{.*}})1210 ! CHECK: omp.teams1211 ! CHECK-NOT: if({{.*}})1212 ! CHECK-SAME: {1213 !$omp target teams if(target: .true.)1214 i = 11215 !$omp end target teams1216 1217 ! CHECK: omp.target1218 ! CHECK-NOT: if({{.*}})1219 ! CHECK-SAME: {1220 ! CHECK: omp.teams1221 ! CHECK-SAME: if({{.*}})1222 !$omp target teams if(teams: .true.)1223 i = 11224 !$omp end target teams1225 1226 ! ----------------------------------------------------------------------------1227 ! TASK1228 ! ----------------------------------------------------------------------------1229 ! CHECK: omp.task1230 ! CHECK-NOT: if({{.*}})1231 ! CHECK-SAME: {1232 !$omp task1233 !$omp end task1234 1235 ! CHECK: omp.task1236 ! CHECK-SAME: if({{.*}})1237 !$omp task if(.true.)1238 !$omp end task1239 1240 ! CHECK: omp.task1241 ! CHECK-SAME: if({{.*}})1242 !$omp task if(task: .true.)1243 !$omp end task1244 1245 ! ----------------------------------------------------------------------------1246 ! TEAMS DISTRIBUTE1247 ! ----------------------------------------------------------------------------1248 ! CHECK: omp.teams1249 ! CHECK-NOT: if({{.*}})1250 ! CHECK-SAME: {1251 ! CHECK: omp.distribute1252 ! CHECK-NOT: if({{.*}})1253 ! CHECK-SAME: {1254 ! CHECK-NEXT: omp.loop_nest1255 !$omp teams distribute1256 do i = 1, 101257 end do1258 !$omp end teams distribute1259 1260 ! CHECK: omp.teams1261 ! CHECK-SAME: if({{.*}})1262 ! CHECK: omp.distribute1263 ! CHECK-NOT: if({{.*}})1264 ! CHECK-SAME: {1265 ! CHECK-NEXT: omp.loop_nest1266 !$omp teams distribute if(.true.)1267 do i = 1, 101268 end do1269 !$omp end teams distribute1270 1271 ! CHECK: omp.teams1272 ! CHECK-SAME: if({{.*}})1273 ! CHECK: omp.distribute1274 ! CHECK-NOT: if({{.*}})1275 ! CHECK-SAME: {1276 ! CHECK-NEXT: omp.loop_nest1277 !$omp teams distribute if(teams: .true.)1278 do i = 1, 101279 end do1280 !$omp end teams distribute1281 1282 ! ----------------------------------------------------------------------------1283 ! TEAMS DISTRIBUTE PARALLEL DO1284 ! ----------------------------------------------------------------------------1285 ! CHECK: omp.teams1286 ! CHECK-NOT: if({{.*}})1287 ! CHECK-SAME: {1288 ! CHECK: omp.parallel1289 ! CHECK-NOT: if({{.*}})1290 ! CHECK-SAME: {1291 ! CHECK: omp.distribute1292 ! CHECK-NOT: if({{.*}})1293 ! CHECK-SAME: {1294 ! CHECK-NEXT: omp.wsloop1295 ! CHECK-NOT: if({{.*}})1296 ! CHECK-SAME: {1297 ! CHECK-NEXT: omp.loop_nest1298 !$omp teams distribute parallel do1299 do i = 1, 101300 end do1301 !$omp end teams distribute parallel do1302 1303 ! CHECK: omp.teams1304 ! CHECK-SAME: if({{.*}})1305 ! CHECK: omp.parallel1306 ! CHECK-SAME: if({{.*}})1307 ! CHECK: omp.distribute1308 ! CHECK-NOT: if({{.*}})1309 ! CHECK-SAME: {1310 ! CHECK-NEXT: omp.wsloop1311 ! CHECK-NOT: if({{.*}})1312 ! CHECK-SAME: {1313 ! CHECK-NEXT: omp.loop_nest1314 !$omp teams distribute parallel do if(.true.)1315 do i = 1, 101316 end do1317 !$omp end teams distribute parallel do1318 1319 ! CHECK: omp.teams1320 ! CHECK-SAME: if({{.*}})1321 ! CHECK: omp.parallel1322 ! CHECK-SAME: if({{.*}})1323 ! CHECK: omp.distribute1324 ! CHECK-NOT: if({{.*}})1325 ! CHECK-SAME: {1326 ! CHECK-NEXT: omp.wsloop1327 ! CHECK-NOT: if({{.*}})1328 ! CHECK-SAME: {1329 ! CHECK-NEXT: omp.loop_nest1330 !$omp teams distribute parallel do if(teams: .true.) if(parallel: .false.)1331 do i = 1, 101332 end do1333 !$omp end teams distribute parallel do1334 1335 ! CHECK: omp.teams1336 ! CHECK-SAME: if({{.*}})1337 ! CHECK: omp.parallel1338 ! CHECK-NOT: if({{.*}})1339 ! CHECK-SAME: {1340 ! CHECK: omp.distribute1341 ! CHECK-NOT: if({{.*}})1342 ! CHECK-SAME: {1343 ! CHECK-NEXT: omp.wsloop1344 ! CHECK-NOT: if({{.*}})1345 ! CHECK-SAME: {1346 ! CHECK-NEXT: omp.loop_nest1347 !$omp teams distribute parallel do if(teams: .true.)1348 do i = 1, 101349 end do1350 !$omp end teams distribute parallel do1351 1352 ! CHECK: omp.teams1353 ! CHECK-NOT: if({{.*}})1354 ! CHECK-SAME: {1355 ! CHECK: omp.parallel1356 ! CHECK-SAME: if({{.*}})1357 ! CHECK: omp.distribute1358 ! CHECK-NOT: if({{.*}})1359 ! CHECK-SAME: {1360 ! CHECK-NEXT: omp.wsloop1361 ! CHECK-NOT: if({{.*}})1362 ! CHECK-SAME: {1363 ! CHECK-NEXT: omp.loop_nest1364 !$omp teams distribute parallel do if(parallel: .true.)1365 do i = 1, 101366 end do1367 !$omp end teams distribute parallel do1368 1369 ! ----------------------------------------------------------------------------1370 ! TEAMS DISTRIBUTE PARALLEL DO SIMD1371 ! ----------------------------------------------------------------------------1372 ! CHECK: omp.teams1373 ! CHECK-NOT: if({{.*}})1374 ! CHECK-SAME: {1375 ! CHECK: omp.parallel1376 ! CHECK-NOT: if({{.*}})1377 ! CHECK-SAME: {1378 ! CHECK: omp.distribute1379 ! CHECK-NOT: if({{.*}})1380 ! CHECK-SAME: {1381 ! CHECK-NEXT: omp.wsloop1382 ! CHECK-NOT: if({{.*}})1383 ! CHECK-SAME: {1384 ! CHECK-NEXT: omp.simd1385 ! CHECK-NOT: if({{.*}})1386 ! CHECK-SAME: {1387 ! CHECK-NEXT: omp.loop_nest1388 !$omp teams distribute parallel do simd1389 do i = 1, 101390 end do1391 !$omp end teams distribute parallel do simd1392 1393 ! CHECK: omp.teams1394 ! CHECK-SAME: if({{.*}})1395 ! CHECK: omp.parallel1396 ! CHECK-SAME: if({{.*}})1397 ! CHECK: omp.distribute1398 ! CHECK-NOT: if({{.*}})1399 ! CHECK-SAME: {1400 ! CHECK-NEXT: omp.wsloop1401 ! CHECK-NOT: if({{.*}})1402 ! CHECK-SAME: {1403 ! CHECK-NEXT: omp.simd1404 ! CHECK-SAME: if({{.*}})1405 ! CHECK-NEXT: omp.loop_nest1406 !$omp teams distribute parallel do simd if(.true.)1407 do i = 1, 101408 end do1409 !$omp end teams distribute parallel do simd1410 1411 ! CHECK: omp.teams1412 ! CHECK-SAME: if({{.*}})1413 ! CHECK: omp.parallel1414 ! CHECK-SAME: if({{.*}})1415 ! CHECK: omp.distribute1416 ! CHECK-NOT: if({{.*}})1417 ! CHECK-SAME: {1418 ! CHECK-NEXT: omp.wsloop1419 ! CHECK-NOT: if({{.*}})1420 ! CHECK-SAME: {1421 ! CHECK-NEXT: omp.simd1422 ! CHECK-SAME: if({{.*}})1423 ! CHECK-NEXT: omp.loop_nest1424 !$omp teams distribute parallel do simd if(teams: .false.) if(parallel: .true.) if(simd: .false.)1425 do i = 1, 101426 end do1427 !$omp end teams distribute parallel do simd1428 1429 ! CHECK: omp.teams1430 ! CHECK-SAME: if({{.*}})1431 ! CHECK: omp.parallel1432 ! CHECK-NOT: if({{.*}})1433 ! CHECK-SAME: {1434 ! CHECK: omp.distribute1435 ! CHECK-NOT: if({{.*}})1436 ! CHECK-SAME: {1437 ! CHECK-NEXT: omp.wsloop1438 ! CHECK-NOT: if({{.*}})1439 ! CHECK-SAME: {1440 ! CHECK-NEXT: omp.simd1441 ! CHECK-NOT: if({{.*}})1442 ! CHECK-SAME: {1443 ! CHECK-NEXT: omp.loop_nest1444 !$omp teams distribute parallel do simd if(teams: .true.)1445 do i = 1, 101446 end do1447 !$omp end teams distribute parallel do simd1448 1449 ! CHECK: omp.teams1450 ! CHECK-NOT: if({{.*}})1451 ! CHECK-SAME: {1452 ! CHECK: omp.parallel1453 ! CHECK-SAME: if({{.*}})1454 ! CHECK: omp.distribute1455 ! CHECK-NOT: if({{.*}})1456 ! CHECK-SAME: {1457 ! CHECK-NEXT: omp.wsloop1458 ! CHECK-NOT: if({{.*}})1459 ! CHECK-SAME: {1460 ! CHECK-NEXT: omp.simd1461 ! CHECK-NOT: if({{.*}})1462 ! CHECK-SAME: {1463 ! CHECK-NEXT: omp.loop_nest1464 !$omp teams distribute parallel do simd if(parallel: .true.)1465 do i = 1, 101466 end do1467 !$omp end teams distribute parallel do simd1468 1469 ! CHECK: omp.teams1470 ! CHECK-NOT: if({{.*}})1471 ! CHECK-SAME: {1472 ! CHECK: omp.parallel1473 ! CHECK-NOT: if({{.*}})1474 ! CHECK-SAME: {1475 ! CHECK: omp.distribute1476 ! CHECK-NOT: if({{.*}})1477 ! CHECK-SAME: {1478 ! CHECK-NEXT: omp.wsloop1479 ! CHECK-NOT: if({{.*}})1480 ! CHECK-SAME: {1481 ! CHECK-NEXT: omp.simd1482 ! CHECK-SAME: if({{.*}})1483 ! CHECK-NEXT: omp.loop_nest1484 !$omp teams distribute parallel do simd if(simd: .true.)1485 do i = 1, 101486 end do1487 !$omp end teams distribute parallel do simd1488 1489 ! ----------------------------------------------------------------------------1490 ! TEAMS DISTRIBUTE SIMD1491 ! ----------------------------------------------------------------------------1492 ! CHECK: omp.teams1493 ! CHECK-NOT: if({{.*}})1494 ! CHECK-SAME: {1495 ! CHECK: omp.distribute1496 ! CHECK-NOT: if({{.*}})1497 ! CHECK-SAME: {1498 ! CHECK-NEXT: omp.simd1499 ! CHECK-NOT: if({{.*}})1500 ! CHECK-SAME: {1501 ! CHECK-NEXT: omp.loop_nest1502 !$omp teams distribute simd1503 do i = 1, 101504 end do1505 !$omp end teams distribute simd1506 1507 ! CHECK: omp.teams1508 ! CHECK-SAME: if({{.*}})1509 ! CHECK: omp.distribute1510 ! CHECK-NOT: if({{.*}})1511 ! CHECK-SAME: {1512 ! CHECK-NEXT: omp.simd1513 ! CHECK-SAME: if({{.*}})1514 ! CHECK-NEXT: omp.loop_nest1515 !$omp teams distribute simd if(.true.)1516 do i = 1, 101517 end do1518 !$omp end teams distribute simd1519 1520 ! CHECK: omp.teams1521 ! CHECK-SAME: if({{.*}})1522 ! CHECK: omp.distribute1523 ! CHECK-NOT: if({{.*}})1524 ! CHECK-SAME: {1525 ! CHECK-NEXT: omp.simd1526 ! CHECK-SAME: if({{.*}})1527 ! CHECK-NEXT: omp.loop_nest1528 !$omp teams distribute simd if(teams: .true.) if(simd: .false.)1529 do i = 1, 101530 end do1531 !$omp end teams distribute simd1532 1533 ! CHECK: omp.teams1534 ! CHECK-SAME: if({{.*}})1535 ! CHECK: omp.distribute1536 ! CHECK-NOT: if({{.*}})1537 ! CHECK-SAME: {1538 ! CHECK-NEXT: omp.simd1539 ! CHECK-NOT: if({{.*}})1540 ! CHECK-SAME: {1541 ! CHECK-NEXT: omp.loop_nest1542 !$omp teams distribute simd if(teams: .true.)1543 do i = 1, 101544 end do1545 !$omp end teams distribute simd1546 1547 ! CHECK: omp.teams1548 ! CHECK-NOT: if({{.*}})1549 ! CHECK-SAME: {1550 ! CHECK: omp.distribute1551 ! CHECK-NOT: if({{.*}})1552 ! CHECK-SAME: {1553 ! CHECK-NEXT: omp.simd1554 ! CHECK-SAME: if({{.*}})1555 ! CHECK-NEXT: omp.loop_nest1556 !$omp teams distribute simd if(simd: .true.)1557 do i = 1, 101558 end do1559 !$omp end teams distribute simd1560 1561 ! ----------------------------------------------------------------------------1562 ! TEAMS1563 ! ----------------------------------------------------------------------------1564 ! CHECK: omp.teams1565 ! CHECK-NOT: if({{.*}})1566 ! CHECK-SAME: {1567 !$omp teams1568 i = 11569 !$omp end teams1570 1571 ! CHECK: omp.teams1572 ! CHECK-SAME: if({{.*}})1573 !$omp teams if(.true.)1574 i = 11575 !$omp end teams1576 1577 ! CHECK: omp.teams1578 ! CHECK-SAME: if({{.*}})1579 !$omp teams if(teams: .true.)1580 i = 11581 !$omp end teams1582 1583 ! ----------------------------------------------------------------------------1584 ! TASKLOOP1585 ! ----------------------------------------------------------------------------1586 1587 ! CHECK: omp.taskloop1588 ! CHECK-NOT: if({{.*}})1589 !$omp taskloop1590 do i = 1, 101591 end do1592 !$omp end taskloop1593 1594 ! CHECK: omp.taskloop1595 ! CHECK-SAME: if({{.*}})1596 !$omp taskloop if(.true.)1597 do i = 1, 101598 end do1599 !$omp end taskloop1600 1601 ! CHECK: omp.taskloop1602 ! CHECK-SAME: if({{.*}})1603 !$omp taskloop if(taskloop: .true.)1604 do i = 1, 101605 end do1606 !$omp end taskloop1607end program main1608