// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -ast-dump %s | FileCheck --match-full-lines -implicit-check-not=openmp_structured_block %s void test_one(int x) { #pragma omp target #pragma omp teams distribute parallel for simd for (int i = 0; i < x; i++) ; } void test_two(int x, int y) { #pragma omp target #pragma omp teams distribute parallel for simd for (int i = 0; i < x; i++) for (int i = 0; i < y; i++) ; } void test_three(int x, int y) { #pragma omp target #pragma omp teams distribute parallel for simd collapse(1) for (int i = 0; i < x; i++) for (int i = 0; i < y; i++) ; } void test_four(int x, int y) { #pragma omp target #pragma omp teams distribute parallel for simd collapse(2) for (int i = 0; i < x; i++) for (int i = 0; i < y; i++) ; } void test_five(int x, int y, int z) { #pragma omp target #pragma omp teams distribute parallel for simd collapse(2) for (int i = 0; i < x; i++) for (int i = 0; i < y; i++) for (int i = 0; i < z; i++) ; } // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:3:1, line:8:1> line:3:6 test_one 'void (int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' // CHECK-NEXT: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPTargetDirective {{.*}} // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' // CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *const restrict' // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' // CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *const restrict' // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} openmp_structured_block // CHECK-NEXT: | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *const restrict' // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-<<>> // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' // CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' // CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: |-FunctionDecl {{.*}} line:10:6 test_two 'void (int, int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' // CHECK-NEXT: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPTargetDirective {{.*}} // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> // CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' // CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' // CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' // CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *const restrict' // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' // CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' // CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' // CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *const restrict' // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' // CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} openmp_structured_block // CHECK-NEXT: | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' // CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' // CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *const restrict' // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' // CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-<<>> // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-<<>> // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' // CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' // CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: |-FunctionDecl {{.*}} line:18:6 test_three 'void (int, int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' // CHECK-NEXT: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPTargetDirective {{.*}} // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> // CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} // CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' // CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' // CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' // CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *const restrict' // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' // CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' // CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' // CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *const restrict' // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' // CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} openmp_structured_block // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} // CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' // CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' // CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *const restrict' // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' // CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-<<>> // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-<<>> // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' // CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' // CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: |-FunctionDecl {{.*}} line:26:6 test_four 'void (int, int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' // CHECK-NEXT: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPTargetDirective {{.*}} // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> // CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} // CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 2 // CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' // CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' // CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' // CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *const restrict' // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' // CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' // CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' // CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' // CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'long' '-' // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'long' '*' // CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'long' // CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'long' // CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <> 'long' // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *const restrict' // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' // CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} openmp_structured_block // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} // CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 2 // CHECK-NEXT: | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' // CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' // CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *const restrict' // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' // CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-<<>> // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-<<>> // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-NullStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' // CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' // CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'long' '-' // CHECK-NEXT: | | |-BinaryOperator {{.*}} 'long' '*' // CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'long' // CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'long' // CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} <> 'long' // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: `-FunctionDecl {{.*}} line:34:6 test_five 'void (int, int, int)' // CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' // CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' // CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' // CHECK-NEXT: `-CompoundStmt {{.*}} // CHECK-NEXT: `-OMPTargetDirective {{.*}} // CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> // CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: `-CapturedStmt {{.*}} // CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} openmp_structured_block // CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} // CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 2 // CHECK-NEXT: | | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' // CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' // CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' // CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *const restrict' // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | |-<<>> // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' // CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' // CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' // CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' // CHECK-NEXT: | | | `-BinaryOperator {{.*}} > 'long' '-' // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'long' '*' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'long' // CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'long' // CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <> 'long' // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *const restrict' // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 // CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' // CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} openmp_structured_block // CHECK-NEXT: | | |-OMPCollapseClause {{.*}} // CHECK-NEXT: | | | `-ConstantExpr {{.*}} 'int' // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 2 // CHECK-NEXT: | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | | |-<<>> // CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' // CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-<<>> // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-<<>> // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-<<>> // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' // CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *const restrict' // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int &' // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | |-<<>> // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | | `-NullStmt {{.*}} // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' // CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int &' // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:25 implicit 'int &' // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:27 implicit 'int &' // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-ForStmt {{.*}} openmp_structured_block // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' // CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const unsigned long' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const unsigned long' // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' // CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | |-VarDecl {{.*}} col:14 used i 'int' cinit // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | `-VarDecl {{.*}} col:16 used i 'int' cinit // CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' // CHECK-NEXT: | `-BinaryOperator {{.*}} > 'long' '-' // CHECK-NEXT: | |-BinaryOperator {{.*}} 'long' '*' // CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'long' // CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'long' // CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '/' // CHECK-NEXT: | | |-ParenExpr {{.*}} 'int' // CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '+' // CHECK-NEXT: | | | |-BinaryOperator {{.*}} > 'int' '-' // CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' // CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} <> 'long' // CHECK-NEXT: | `-IntegerLiteral {{.*}} <> 'int' 1 // CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int'