1b284ced0SKelvin Li! RUN: %flang_fc1 -fdebug-unparse -fopenmp %s 2>&1 | FileCheck %s 2f706411fSPeter Klausler 3f706411fSPeter Klausler#define DIR_START !dir$ 4f706411fSPeter Klausler#define DIR_CONT !dir$& 5f706411fSPeter Klausler#define FIRST(x) DIR_START x 6f706411fSPeter Klausler#define NEXT(x) DIR_CONT x 7f706411fSPeter Klausler#define AMPER & 8e286ecfeSPeter Klausler#define COMMENT ! 9e286ecfeSPeter Klausler#define OMP_START !$omp 10e286ecfeSPeter Klausler#define OMP_CONT !$omp& 11f706411fSPeter Klausler 12e286ecfeSPeter Klauslermodule m 13e286ecfeSPeter Klausler contains 14*2ec1a39bSPeter Klausler subroutine s1(x1, x2, x3, x4, x5, x6, x7) 15f706411fSPeter Klausler 16f706411fSPeter Klausler!dir$ ignore_tkr x1 17f706411fSPeter Klausler 18f706411fSPeter Klausler!dir$ ignore_tkr & 19f706411fSPeter Klausler!dir$& x2 20f706411fSPeter Klausler 21f706411fSPeter KlauslerDIR_START ignore_tkr x3 22f706411fSPeter Klausler 23f706411fSPeter Klausler!dir$ ignore_tkr AMPER 24f706411fSPeter KlauslerDIR_CONT x4 25f706411fSPeter Klausler 26f706411fSPeter KlauslerFIRST(ignore_tkr &) 27f706411fSPeter Klausler!dir$& x5 28f706411fSPeter Klausler 29f706411fSPeter KlauslerFIRST(ignore_tkr &) 30f706411fSPeter KlauslerNEXT(x6) 31f706411fSPeter Klausler 32e286ecfeSPeter KlauslerCOMMENT blah & 33e286ecfeSPeter KlauslerCOMMENT & more 34e286ecfeSPeter Klausler stop 1 35f706411fSPeter Klausler 36e286ecfeSPeter KlauslerOMP_START parallel & 37e286ecfeSPeter KlauslerOMP_START do & 38e286ecfeSPeter KlauslerOMP_START reduction(+:x) 39e286ecfeSPeter Klausler do j1 = 1, n 40e286ecfeSPeter Klausler end do 41e286ecfeSPeter Klausler 42e286ecfeSPeter KlauslerOMP_START parallel & 43e286ecfeSPeter KlauslerOMP_START & do & 44e286ecfeSPeter KlauslerOMP_START & reduction(+:x) 45e286ecfeSPeter Klausler do j2 = 1, n 46e286ecfeSPeter Klausler end do 47e286ecfeSPeter Klausler 48e286ecfeSPeter KlauslerOMP_START parallel & 49e286ecfeSPeter KlauslerOMP_CONT do & 50e286ecfeSPeter KlauslerOMP_CONT reduction(+:x) 51e286ecfeSPeter Klausler do j3 = 1, n 52e286ecfeSPeter Klausler end do 53e286ecfeSPeter Klausler end 54*2ec1a39bSPeter Klausler 55*2ec1a39bSPeter KlauslerCOMMENT & 56*2ec1a39bSPeter Klausler subroutine s2 57*2ec1a39bSPeter Klausler end subroutine 58*2ec1a39bSPeter KlauslerCOMMENT& 59*2ec1a39bSPeter Klausler subroutine s3 60*2ec1a39bSPeter Klausler end subroutine 61*2ec1a39bSPeter Klauslerend module 62f706411fSPeter Klausler 63e286ecfeSPeter Klausler!CHECK: MODULE m 64e286ecfeSPeter Klausler!CHECK: CONTAINS 65*2ec1a39bSPeter Klausler!CHECK: SUBROUTINE s1 (x1, x2, x3, x4, x5, x6, x7) 66e286ecfeSPeter Klausler!CHECK: !DIR$ IGNORE_TKR x1 67e286ecfeSPeter Klausler!CHECK: !DIR$ IGNORE_TKR x2 68e286ecfeSPeter Klausler!CHECK: !DIR$ IGNORE_TKR x3 69e286ecfeSPeter Klausler!CHECK: !DIR$ IGNORE_TKR x4 70e286ecfeSPeter Klausler!CHECK: !DIR$ IGNORE_TKR x5 71e286ecfeSPeter Klausler!CHECK: !DIR$ IGNORE_TKR x6 72e286ecfeSPeter Klausler!CHECK: STOP 1_4 73e286ecfeSPeter Klausler!CHECK: !$OMP PARALLEL DO REDUCTION(+: x) 74e286ecfeSPeter Klausler!CHECK: DO j1=1_4,n 75e286ecfeSPeter Klausler!CHECK: END DO 76e286ecfeSPeter Klausler!CHECK: !$OMP PARALLEL DO REDUCTION(+: x) 77e286ecfeSPeter Klausler!CHECK: DO j2=1_4,n 78e286ecfeSPeter Klausler!CHECK: END DO 79e286ecfeSPeter Klausler!CHECK: !$OMP PARALLEL DO REDUCTION(+: x) 80e286ecfeSPeter Klausler!CHECK: DO j3=1_4,n 81e286ecfeSPeter Klausler!CHECK: END DO 82e286ecfeSPeter Klausler!CHECK: END SUBROUTINE 83*2ec1a39bSPeter Klausler!CHECK: SUBROUTINE s2 84*2ec1a39bSPeter Klausler!CHECK: END SUBROUTINE 85*2ec1a39bSPeter Klausler!CHECK: SUBROUTINE s3 86*2ec1a39bSPeter Klausler!CHECK: END SUBROUTINE 87e286ecfeSPeter Klausler!CHECK: END MODULE 88