brintos

brintos / llvm-project-archived public Read only

0
0
Text · 41.7 KiB · 7092a94 Raw
501 lines · c
1// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -ast-dump %s | FileCheck --match-full-lines -implicit-check-not=openmp_structured_block %s2 3void test_one(int x) {4#pragma omp target simd5  for (int i = 0; i < x; i++)6    ;7}8 9void test_two(int x, int y) {10#pragma omp target simd11  for (int i = 0; i < x; i++)12    for (int i = 0; i < y; i++)13      ;14}15 16void test_three(int x, int y) {17#pragma omp target simd collapse(1)18  for (int i = 0; i < x; i++)19    for (int i = 0; i < y; i++)20      ;21}22 23void test_four(int x, int y) {24#pragma omp target simd collapse(2)25  for (int i = 0; i < x; i++)26    for (int i = 0; i < y; i++)27      ;28}29 30void test_five(int x, int y, int z) {31#pragma omp target simd collapse(2)32  for (int i = 0; i < x; i++)33    for (int i = 0; i < y; i++)34      for (int i = 0; i < z; i++)35        ;36}37 38// CHECK: TranslationUnitDecl {{.*}} <<invalid sloc>> <invalid sloc>39// CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-simd.c:3:1, line:7:1> line:3:6 test_one 'void (int)'40// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:15, col:19> col:19 used x 'int'41// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:22, line:7:1>42// CHECK-NEXT: |   `-OMPTargetSimdDirective {{.*}} <line:4:1, col:24>43// CHECK-NEXT: |     |-OMPFirstprivateClause {{.*}} <<invalid sloc>> <implicit>44// CHECK-NEXT: |     | `-DeclRefExpr {{.*}} <line:5:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture45// CHECK-NEXT: |     `-CapturedStmt {{.*}} <col:3, line:6:5>46// CHECK-NEXT: |       |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow47// CHECK-NEXT: |       | |-CapturedStmt {{.*}} <line:5:3, line:6:5>48// CHECK-NEXT: |       | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow49// CHECK-NEXT: |       | | | |-ForStmt {{.*}} <line:5:3, line:6:5>50// CHECK-NEXT: |       | | | | |-DeclStmt {{.*}} <line:5:8, col:17>51// CHECK-NEXT: |       | | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit52// CHECK-NEXT: |       | | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 053// CHECK-NEXT: |       | | | | |-<<<NULL>>>54// CHECK-NEXT: |       | | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'55// CHECK-NEXT: |       | | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>56// CHECK-NEXT: |       | | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'57// CHECK-NEXT: |       | | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>58// CHECK-NEXT: |       | | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture59// CHECK-NEXT: |       | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'60// CHECK-NEXT: |       | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'61// CHECK-NEXT: |       | | | | `-NullStmt {{.*}} <line:6:5>62// CHECK-NEXT: |       | | | |-ImplicitParamDecl {{.*}} <line:4:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:4:1) *const restrict'63// CHECK-NEXT: |       | | | `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit64// CHECK-NEXT: |       | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 065// CHECK-NEXT: |       | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture66// CHECK-NEXT: |       | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline67// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <line:4:1> col:1 implicit .global_tid. 'const int'68// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .part_id. 'const int *const restrict'69// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .privates. 'void *const restrict'70// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)'71// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .task_t. 'void *const'72// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:4:1) *const restrict'73// CHECK-NEXT: |       | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition74// CHECK-NEXT: |       | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit75// CHECK-NEXT: |       | | `-FieldDecl {{.*}} <line:5:23> col:23 implicit 'int'76// CHECK-NEXT: |       | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}77// CHECK-NEXT: |       | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow78// CHECK-NEXT: |       |   |-ForStmt {{.*}} <col:3, line:6:5>79// CHECK-NEXT: |       |   | |-DeclStmt {{.*}} <line:5:8, col:17>80// CHECK-NEXT: |       |   | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit81// CHECK-NEXT: |       |   | |   `-IntegerLiteral {{.*}} <col:16> 'int' 082// CHECK-NEXT: |       |   | |-<<<NULL>>>83// CHECK-NEXT: |       |   | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'84// CHECK-NEXT: |       |   | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>85// CHECK-NEXT: |       |   | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'86// CHECK-NEXT: |       |   | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>87// CHECK-NEXT: |       |   | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture88// CHECK-NEXT: |       |   | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'89// CHECK-NEXT: |       |   | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'90// CHECK-NEXT: |       |   | `-NullStmt {{.*}} <line:6:5>91// CHECK-NEXT: |       |   |-ImplicitParamDecl {{.*}} <line:4:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:4:1) *const restrict'92// CHECK-NEXT: |       |   `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit93// CHECK-NEXT: |       |     `-IntegerLiteral {{.*}} <col:16> 'int' 094// CHECK-NEXT: |       `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'95// CHECK-NEXT: |-FunctionDecl {{.*}} <line:9:1, line:14:1> line:9:6 test_two 'void (int, int)'96// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:15, col:19> col:19 used x 'int'97// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:22, col:26> col:26 used y 'int'98// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:29, line:14:1>99// CHECK-NEXT: |   `-OMPTargetSimdDirective {{.*}} <line:10:1, col:24>100// CHECK-NEXT: |     |-OMPFirstprivateClause {{.*}} <<invalid sloc>> <implicit>101// CHECK-NEXT: |     | |-DeclRefExpr {{.*}} <line:11:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture102// CHECK-NEXT: |     | `-DeclRefExpr {{.*}} <line:12:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture103// CHECK-NEXT: |     `-CapturedStmt {{.*}} <line:11:3, line:13:7>104// CHECK-NEXT: |       |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow105// CHECK-NEXT: |       | |-CapturedStmt {{.*}} <line:11:3, line:13:7>106// CHECK-NEXT: |       | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow107// CHECK-NEXT: |       | | | |-ForStmt {{.*}} <line:11:3, line:13:7>108// CHECK-NEXT: |       | | | | |-DeclStmt {{.*}} <line:11:8, col:17>109// CHECK-NEXT: |       | | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit110// CHECK-NEXT: |       | | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0111// CHECK-NEXT: |       | | | | |-<<<NULL>>>112// CHECK-NEXT: |       | | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'113// CHECK-NEXT: |       | | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>114// CHECK-NEXT: |       | | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'115// CHECK-NEXT: |       | | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>116// CHECK-NEXT: |       | | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture117// CHECK-NEXT: |       | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'118// CHECK-NEXT: |       | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'119// CHECK-NEXT: |       | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>120// CHECK-NEXT: |       | | | |   |-DeclStmt {{.*}} <line:12:10, col:19>121// CHECK-NEXT: |       | | | |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit122// CHECK-NEXT: |       | | | |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0123// CHECK-NEXT: |       | | | |   |-<<<NULL>>>124// CHECK-NEXT: |       | | | |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'125// CHECK-NEXT: |       | | | |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>126// CHECK-NEXT: |       | | | |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'127// CHECK-NEXT: |       | | | |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>128// CHECK-NEXT: |       | | | |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture129// CHECK-NEXT: |       | | | |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'130// CHECK-NEXT: |       | | | |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'131// CHECK-NEXT: |       | | | |   `-NullStmt {{.*}} <line:13:7>132// CHECK-NEXT: |       | | | |-ImplicitParamDecl {{.*}} <line:10:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:10:1) *const restrict'133// CHECK-NEXT: |       | | | |-VarDecl {{.*}} <line:11:8, col:16> col:12 used i 'int' cinit134// CHECK-NEXT: |       | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0135// CHECK-NEXT: |       | | | `-VarDecl {{.*}} <line:12:10, col:18> col:14 used i 'int' cinit136// CHECK-NEXT: |       | | |   `-IntegerLiteral {{.*}} <col:18> 'int' 0137// CHECK-NEXT: |       | | |-DeclRefExpr {{.*}} <line:11:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture138// CHECK-NEXT: |       | | `-DeclRefExpr {{.*}} <line:12:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture139// CHECK-NEXT: |       | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline140// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <line:10:1> col:1 implicit .global_tid. 'const int'141// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .part_id. 'const int *const restrict'142// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .privates. 'void *const restrict'143// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)'144// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .task_t. 'void *const'145// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:10:1) *const restrict'146// CHECK-NEXT: |       | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition147// CHECK-NEXT: |       | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit148// CHECK-NEXT: |       | | |-FieldDecl {{.*}} <line:11:23> col:23 implicit 'int'149// CHECK-NEXT: |       | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}150// CHECK-NEXT: |       | | `-FieldDecl {{.*}} <line:12:25> col:25 implicit 'int'151// CHECK-NEXT: |       | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}152// CHECK-NEXT: |       | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow153// CHECK-NEXT: |       |   |-ForStmt {{.*}} <line:11:3, line:13:7>154// CHECK-NEXT: |       |   | |-DeclStmt {{.*}} <line:11:8, col:17>155// CHECK-NEXT: |       |   | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit156// CHECK-NEXT: |       |   | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0157// CHECK-NEXT: |       |   | |-<<<NULL>>>158// CHECK-NEXT: |       |   | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'159// CHECK-NEXT: |       |   | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>160// CHECK-NEXT: |       |   | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'161// CHECK-NEXT: |       |   | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>162// CHECK-NEXT: |       |   | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture163// CHECK-NEXT: |       |   | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'164// CHECK-NEXT: |       |   | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'165// CHECK-NEXT: |       |   | `-ForStmt {{.*}} <line:12:5, line:13:7>166// CHECK-NEXT: |       |   |   |-DeclStmt {{.*}} <line:12:10, col:19>167// CHECK-NEXT: |       |   |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit168// CHECK-NEXT: |       |   |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0169// CHECK-NEXT: |       |   |   |-<<<NULL>>>170// CHECK-NEXT: |       |   |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'171// CHECK-NEXT: |       |   |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>172// CHECK-NEXT: |       |   |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'173// CHECK-NEXT: |       |   |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>174// CHECK-NEXT: |       |   |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture175// CHECK-NEXT: |       |   |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'176// CHECK-NEXT: |       |   |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'177// CHECK-NEXT: |       |   |   `-NullStmt {{.*}} <line:13:7>178// CHECK-NEXT: |       |   |-ImplicitParamDecl {{.*}} <line:10:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:10:1) *const restrict'179// CHECK-NEXT: |       |   |-VarDecl {{.*}} <line:11:8, col:16> col:12 used i 'int' cinit180// CHECK-NEXT: |       |   | `-IntegerLiteral {{.*}} <col:16> 'int' 0181// CHECK-NEXT: |       |   `-VarDecl {{.*}} <line:12:10, col:18> col:14 used i 'int' cinit182// CHECK-NEXT: |       |     `-IntegerLiteral {{.*}} <col:18> 'int' 0183// CHECK-NEXT: |       |-DeclRefExpr {{.*}} <line:11:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'184// CHECK-NEXT: |       `-DeclRefExpr {{.*}} <line:12:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'185// CHECK-NEXT: |-FunctionDecl {{.*}} <line:16:1, line:21:1> line:16:6 test_three 'void (int, int)'186// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:17, col:21> col:21 used x 'int'187// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:24, col:28> col:28 used y 'int'188// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:31, line:21:1>189// CHECK-NEXT: |   `-OMPTargetSimdDirective {{.*}} <line:17:1, col:36>190// CHECK-NEXT: |     |-OMPCollapseClause {{.*}} <col:25, col:35>191// CHECK-NEXT: |     | `-ConstantExpr {{.*}} <col:34> 'int'192// CHECK-NEXT: |     | |-value: Int 1193// CHECK-NEXT: |     |   `-IntegerLiteral {{.*}} <col:34> 'int' 1194// CHECK-NEXT: |     |-OMPFirstprivateClause {{.*}} <<invalid sloc>> <implicit>195// CHECK-NEXT: |     | |-DeclRefExpr {{.*}} <line:18:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture196// CHECK-NEXT: |     | `-DeclRefExpr {{.*}} <line:19:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture197// CHECK-NEXT: |     `-CapturedStmt {{.*}} <line:18:3, line:20:7>198// CHECK-NEXT: |       |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow199// CHECK-NEXT: |       | |-CapturedStmt {{.*}} <line:18:3, line:20:7>200// CHECK-NEXT: |       | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow201// CHECK-NEXT: |       | | | |-ForStmt {{.*}} <line:18:3, line:20:7>202// CHECK-NEXT: |       | | | | |-DeclStmt {{.*}} <line:18:8, col:17>203// CHECK-NEXT: |       | | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit204// CHECK-NEXT: |       | | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0205// CHECK-NEXT: |       | | | | |-<<<NULL>>>206// CHECK-NEXT: |       | | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'207// CHECK-NEXT: |       | | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>208// CHECK-NEXT: |       | | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'209// CHECK-NEXT: |       | | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>210// CHECK-NEXT: |       | | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture211// CHECK-NEXT: |       | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'212// CHECK-NEXT: |       | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'213// CHECK-NEXT: |       | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>214// CHECK-NEXT: |       | | | |   |-DeclStmt {{.*}} <line:19:10, col:19>215// CHECK-NEXT: |       | | | |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit216// CHECK-NEXT: |       | | | |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0217// CHECK-NEXT: |       | | | |   |-<<<NULL>>>218// CHECK-NEXT: |       | | | |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'219// CHECK-NEXT: |       | | | |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>220// CHECK-NEXT: |       | | | |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'221// CHECK-NEXT: |       | | | |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>222// CHECK-NEXT: |       | | | |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture223// CHECK-NEXT: |       | | | |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'224// CHECK-NEXT: |       | | | |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'225// CHECK-NEXT: |       | | | |   `-NullStmt {{.*}} <line:20:7>226// CHECK-NEXT: |       | | | |-ImplicitParamDecl {{.*}} <line:17:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:17:1) *const restrict'227// CHECK-NEXT: |       | | | |-VarDecl {{.*}} <line:18:8, col:16> col:12 used i 'int' cinit228// CHECK-NEXT: |       | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0229// CHECK-NEXT: |       | | | `-VarDecl {{.*}} <line:19:10, col:18> col:14 used i 'int' cinit230// CHECK-NEXT: |       | | |   `-IntegerLiteral {{.*}} <col:18> 'int' 0231// CHECK-NEXT: |       | | |-DeclRefExpr {{.*}} <line:18:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture232// CHECK-NEXT: |       | | `-DeclRefExpr {{.*}} <line:19:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture233// CHECK-NEXT: |       | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline234// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <line:17:1> col:1 implicit .global_tid. 'const int'235// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .part_id. 'const int *const restrict'236// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .privates. 'void *const restrict'237// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)'238// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .task_t. 'void *const'239// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:17:1) *const restrict'240// CHECK-NEXT: |       | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition241// CHECK-NEXT: |       | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit242// CHECK-NEXT: |       | | |-FieldDecl {{.*}} <line:18:23> col:23 implicit 'int'243// CHECK-NEXT: |       | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}244// CHECK-NEXT: |       | | `-FieldDecl {{.*}} <line:19:25> col:25 implicit 'int'245// CHECK-NEXT: |       | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}246// CHECK-NEXT: |       | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow247// CHECK-NEXT: |       |   |-ForStmt {{.*}} <line:18:3, line:20:7>248// CHECK-NEXT: |       |   | |-DeclStmt {{.*}} <line:18:8, col:17>249// CHECK-NEXT: |       |   | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit250// CHECK-NEXT: |       |   | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0251// CHECK-NEXT: |       |   | |-<<<NULL>>>252// CHECK-NEXT: |       |   | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'253// CHECK-NEXT: |       |   | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>254// CHECK-NEXT: |       |   | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'255// CHECK-NEXT: |       |   | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>256// CHECK-NEXT: |       |   | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture257// CHECK-NEXT: |       |   | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'258// CHECK-NEXT: |       |   | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'259// CHECK-NEXT: |       |   | `-ForStmt {{.*}} <line:19:5, line:20:7>260// CHECK-NEXT: |       |   |   |-DeclStmt {{.*}} <line:19:10, col:19>261// CHECK-NEXT: |       |   |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit262// CHECK-NEXT: |       |   |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0263// CHECK-NEXT: |       |   |   |-<<<NULL>>>264// CHECK-NEXT: |       |   |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'265// CHECK-NEXT: |       |   |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>266// CHECK-NEXT: |       |   |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'267// CHECK-NEXT: |       |   |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>268// CHECK-NEXT: |       |   |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture269// CHECK-NEXT: |       |   |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'270// CHECK-NEXT: |       |   |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'271// CHECK-NEXT: |       |   |   `-NullStmt {{.*}} <line:20:7>272// CHECK-NEXT: |       |   |-ImplicitParamDecl {{.*}} <line:17:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:17:1) *const restrict'273// CHECK-NEXT: |       |   |-VarDecl {{.*}} <line:18:8, col:16> col:12 used i 'int' cinit274// CHECK-NEXT: |       |   | `-IntegerLiteral {{.*}} <col:16> 'int' 0275// CHECK-NEXT: |       |   `-VarDecl {{.*}} <line:19:10, col:18> col:14 used i 'int' cinit276// CHECK-NEXT: |       |     `-IntegerLiteral {{.*}} <col:18> 'int' 0277// CHECK-NEXT: |       |-DeclRefExpr {{.*}} <line:18:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'278// CHECK-NEXT: |       `-DeclRefExpr {{.*}} <line:19:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'279// CHECK-NEXT: |-FunctionDecl {{.*}} <line:23:1, line:28:1> line:23:6 test_four 'void (int, int)'280// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:16, col:20> col:20 used x 'int'281// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:23, col:27> col:27 used y 'int'282// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:30, line:28:1>283// CHECK-NEXT: |   `-OMPTargetSimdDirective {{.*}} <line:24:1, col:36>284// CHECK-NEXT: |     |-OMPCollapseClause {{.*}} <col:25, col:35>285// CHECK-NEXT: |     | `-ConstantExpr {{.*}} <col:34> 'int'286// CHECK-NEXT: |     | |-value: Int 2287// CHECK-NEXT: |     |   `-IntegerLiteral {{.*}} <col:34> 'int' 2288// CHECK-NEXT: |     |-OMPFirstprivateClause {{.*}} <<invalid sloc>> <implicit>289// CHECK-NEXT: |     | |-DeclRefExpr {{.*}} <line:25:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture290// CHECK-NEXT: |     | `-DeclRefExpr {{.*}} <line:26:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture291// CHECK-NEXT: |     `-CapturedStmt {{.*}} <line:25:3, line:27:7>292// CHECK-NEXT: |       |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow293// CHECK-NEXT: |       | |-CapturedStmt {{.*}} <line:25:3, line:27:7>294// CHECK-NEXT: |       | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow295// CHECK-NEXT: |       | | | |-ForStmt {{.*}} <line:25:3, line:27:7>296// CHECK-NEXT: |       | | | | |-DeclStmt {{.*}} <line:25:8, col:17>297// CHECK-NEXT: |       | | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit298// CHECK-NEXT: |       | | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0299// CHECK-NEXT: |       | | | | |-<<<NULL>>>300// CHECK-NEXT: |       | | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'301// CHECK-NEXT: |       | | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>302// CHECK-NEXT: |       | | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'303// CHECK-NEXT: |       | | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>304// CHECK-NEXT: |       | | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture305// CHECK-NEXT: |       | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'306// CHECK-NEXT: |       | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'307// CHECK-NEXT: |       | | | | `-ForStmt {{.*}} <line:26:5, line:27:7>308// CHECK-NEXT: |       | | | |   |-DeclStmt {{.*}} <line:26:10, col:19>309// CHECK-NEXT: |       | | | |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit310// CHECK-NEXT: |       | | | |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0311// CHECK-NEXT: |       | | | |   |-<<<NULL>>>312// CHECK-NEXT: |       | | | |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'313// CHECK-NEXT: |       | | | |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>314// CHECK-NEXT: |       | | | |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'315// CHECK-NEXT: |       | | | |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>316// CHECK-NEXT: |       | | | |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture317// CHECK-NEXT: |       | | | |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'318// CHECK-NEXT: |       | | | |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'319// CHECK-NEXT: |       | | | |   `-NullStmt {{.*}} <line:27:7>320// CHECK-NEXT: |       | | | |-ImplicitParamDecl {{.*}} <line:24:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:24:1) *const restrict'321// CHECK-NEXT: |       | | | |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit322// CHECK-NEXT: |       | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0323// CHECK-NEXT: |       | | | `-VarDecl {{.*}} <line:26:10, col:18> col:14 used i 'int' cinit324// CHECK-NEXT: |       | | |   `-IntegerLiteral {{.*}} <col:18> 'int' 0325// CHECK-NEXT: |       | | |-DeclRefExpr {{.*}} <line:25:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture326// CHECK-NEXT: |       | | `-DeclRefExpr {{.*}} <line:26:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture327// CHECK-NEXT: |       | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline328// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <line:24:1> col:1 implicit .global_tid. 'const int'329// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .part_id. 'const int *const restrict'330// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .privates. 'void *const restrict'331// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)'332// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .task_t. 'void *const'333// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:24:1) *const restrict'334// CHECK-NEXT: |       | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition335// CHECK-NEXT: |       | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit336// CHECK-NEXT: |       | | |-FieldDecl {{.*}} <line:25:23> col:23 implicit 'int'337// CHECK-NEXT: |       | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}338// CHECK-NEXT: |       | | `-FieldDecl {{.*}} <line:26:25> col:25 implicit 'int'339// CHECK-NEXT: |       | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}340// CHECK-NEXT: |       | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow341// CHECK-NEXT: |       |   |-ForStmt {{.*}} <line:25:3, line:27:7>342// CHECK-NEXT: |       |   | |-DeclStmt {{.*}} <line:25:8, col:17>343// CHECK-NEXT: |       |   | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit344// CHECK-NEXT: |       |   | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0345// CHECK-NEXT: |       |   | |-<<<NULL>>>346// CHECK-NEXT: |       |   | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'347// CHECK-NEXT: |       |   | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>348// CHECK-NEXT: |       |   | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'349// CHECK-NEXT: |       |   | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>350// CHECK-NEXT: |       |   | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture351// CHECK-NEXT: |       |   | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'352// CHECK-NEXT: |       |   | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'353// CHECK-NEXT: |       |   | `-ForStmt {{.*}} <line:26:5, line:27:7>354// CHECK-NEXT: |       |   |   |-DeclStmt {{.*}} <line:26:10, col:19>355// CHECK-NEXT: |       |   |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit356// CHECK-NEXT: |       |   |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0357// CHECK-NEXT: |       |   |   |-<<<NULL>>>358// CHECK-NEXT: |       |   |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'359// CHECK-NEXT: |       |   |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>360// CHECK-NEXT: |       |   |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'361// CHECK-NEXT: |       |   |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>362// CHECK-NEXT: |       |   |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture363// CHECK-NEXT: |       |   |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'364// CHECK-NEXT: |       |   |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'365// CHECK-NEXT: |       |   |   `-NullStmt {{.*}} <line:27:7>366// CHECK-NEXT: |       |   |-ImplicitParamDecl {{.*}} <line:24:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:24:1) *const restrict'367// CHECK-NEXT: |       |   |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit368// CHECK-NEXT: |       |   | `-IntegerLiteral {{.*}} <col:16> 'int' 0369// CHECK-NEXT: |       |   `-VarDecl {{.*}} <line:26:10, col:18> col:14 used i 'int' cinit370// CHECK-NEXT: |       |     `-IntegerLiteral {{.*}} <col:18> 'int' 0371// CHECK-NEXT: |       |-DeclRefExpr {{.*}} <line:25:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'372// CHECK-NEXT: |       `-DeclRefExpr {{.*}} <line:26:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'373// CHECK-NEXT: `-FunctionDecl {{.*}} <line:30:1, line:36:1> line:30:6 test_five 'void (int, int, int)'374// CHECK-NEXT:   |-ParmVarDecl {{.*}} <col:16, col:20> col:20 used x 'int'375// CHECK-NEXT:   |-ParmVarDecl {{.*}} <col:23, col:27> col:27 used y 'int'376// CHECK-NEXT:   |-ParmVarDecl {{.*}} <col:30, col:34> col:34 used z 'int'377// CHECK-NEXT:   `-CompoundStmt {{.*}} <col:37, line:36:1>378// CHECK-NEXT:     `-OMPTargetSimdDirective {{.*}} <line:31:1, col:36>379// CHECK-NEXT:       |-OMPCollapseClause {{.*}} <col:25, col:35>380// CHECK-NEXT:       | `-ConstantExpr {{.*}} <col:34> 'int'381// CHECK-NEXT:       | |-value: Int 2382// CHECK-NEXT:       |   `-IntegerLiteral {{.*}} <col:34> 'int' 2383// CHECK-NEXT:       |-OMPFirstprivateClause {{.*}} <<invalid sloc>> <implicit>384// CHECK-NEXT:       | |-DeclRefExpr {{.*}} <line:32:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture385// CHECK-NEXT:       | |-DeclRefExpr {{.*}} <line:33:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture386// CHECK-NEXT:       | `-DeclRefExpr {{.*}} <line:34:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture387// CHECK-NEXT:       `-CapturedStmt {{.*}} <line:32:3, line:35:9>388// CHECK-NEXT:         |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow389// CHECK-NEXT:         | |-CapturedStmt {{.*}} <line:32:3, line:35:9>390// CHECK-NEXT:         | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow391// CHECK-NEXT:         | | | |-ForStmt {{.*}} <line:32:3, line:35:9>392// CHECK-NEXT:         | | | | |-DeclStmt {{.*}} <line:32:8, col:17>393// CHECK-NEXT:         | | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit394// CHECK-NEXT:         | | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0395// CHECK-NEXT:         | | | | |-<<<NULL>>>396// CHECK-NEXT:         | | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'397// CHECK-NEXT:         | | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>398// CHECK-NEXT:         | | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'399// CHECK-NEXT:         | | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>400// CHECK-NEXT:         | | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture401// CHECK-NEXT:         | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'402// CHECK-NEXT:         | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'403// CHECK-NEXT:         | | | | `-ForStmt {{.*}} <line:33:5, line:35:9>404// CHECK-NEXT:         | | | |   |-DeclStmt {{.*}} <line:33:10, col:19>405// CHECK-NEXT:         | | | |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit406// CHECK-NEXT:         | | | |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0407// CHECK-NEXT:         | | | |   |-<<<NULL>>>408// CHECK-NEXT:         | | | |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'409// CHECK-NEXT:         | | | |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>410// CHECK-NEXT:         | | | |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'411// CHECK-NEXT:         | | | |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>412// CHECK-NEXT:         | | | |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture413// CHECK-NEXT:         | | | |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'414// CHECK-NEXT:         | | | |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'415// CHECK-NEXT:         | | | |   `-ForStmt {{.*}} <line:34:7, line:35:9>416// CHECK-NEXT:         | | | |     |-DeclStmt {{.*}} <line:34:12, col:21>417// CHECK-NEXT:         | | | |     | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit418// CHECK-NEXT:         | | | |     |   `-IntegerLiteral {{.*}} <col:20> 'int' 0419// CHECK-NEXT:         | | | |     |-<<<NULL>>>420// CHECK-NEXT:         | | | |     |-BinaryOperator {{.*}} <col:23, col:27> 'int' '<'421// CHECK-NEXT:         | | | |     | |-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>422// CHECK-NEXT:         | | | |     | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue Var {{.*}} 'i' 'int'423// CHECK-NEXT:         | | | |     | `-ImplicitCastExpr {{.*}} <col:27> 'int' <LValueToRValue>424// CHECK-NEXT:         | | | |     |   `-DeclRefExpr {{.*}} <col:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture425// CHECK-NEXT:         | | | |     |-UnaryOperator {{.*}} <col:30, col:31> 'int' postfix '++'426// CHECK-NEXT:         | | | |     | `-DeclRefExpr {{.*}} <col:30> 'int' lvalue Var {{.*}} 'i' 'int'427// CHECK-NEXT:         | | | |     `-NullStmt {{.*}} <line:35:9>428// CHECK-NEXT:         | | | |-ImplicitParamDecl {{.*}} <line:31:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:31:1) *const restrict'429// CHECK-NEXT:         | | | |-VarDecl {{.*}} <line:32:8, col:16> col:12 used i 'int' cinit430// CHECK-NEXT:         | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0431// CHECK-NEXT:         | | | |-VarDecl {{.*}} <line:33:10, col:18> col:14 used i 'int' cinit432// CHECK-NEXT:         | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0433// CHECK-NEXT:         | | | `-VarDecl {{.*}} <line:34:12, col:20> col:16 used i 'int' cinit434// CHECK-NEXT:         | | |   `-IntegerLiteral {{.*}} <col:20> 'int' 0435// CHECK-NEXT:         | | |-DeclRefExpr {{.*}} <line:32:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture436// CHECK-NEXT:         | | |-DeclRefExpr {{.*}} <line:33:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture437// CHECK-NEXT:         | | `-DeclRefExpr {{.*}} <line:34:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture438// CHECK-NEXT:         | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline439// CHECK-NEXT:         | |-ImplicitParamDecl {{.*}} <line:31:1> col:1 implicit .global_tid. 'const int'440// CHECK-NEXT:         | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .part_id. 'const int *const restrict'441// CHECK-NEXT:         | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .privates. 'void *const restrict'442// CHECK-NEXT:         | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)'443// CHECK-NEXT:         | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .task_t. 'void *const'444// CHECK-NEXT:         | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:31:1) *const restrict'445// CHECK-NEXT:         | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition446// CHECK-NEXT:         | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit447// CHECK-NEXT:         | | |-FieldDecl {{.*}} <line:32:23> col:23 implicit 'int'448// CHECK-NEXT:         | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}449// CHECK-NEXT:         | | |-FieldDecl {{.*}} <line:33:25> col:25 implicit 'int'450// CHECK-NEXT:         | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}451// CHECK-NEXT:         | | `-FieldDecl {{.*}} <line:34:27> col:27 implicit 'int'452// CHECK-NEXT:         | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}453// CHECK-NEXT:         | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow454// CHECK-NEXT:         |   |-ForStmt {{.*}} <line:32:3, line:35:9>455// CHECK-NEXT:         |   | |-DeclStmt {{.*}} <line:32:8, col:17>456// CHECK-NEXT:         |   | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit457// CHECK-NEXT:         |   | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0458// CHECK-NEXT:         |   | |-<<<NULL>>>459// CHECK-NEXT:         |   | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'460// CHECK-NEXT:         |   | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>461// CHECK-NEXT:         |   | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'462// CHECK-NEXT:         |   | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>463// CHECK-NEXT:         |   | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture464// CHECK-NEXT:         |   | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'465// CHECK-NEXT:         |   | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'466// CHECK-NEXT:         |   | `-ForStmt {{.*}} <line:33:5, line:35:9>467// CHECK-NEXT:         |   |   |-DeclStmt {{.*}} <line:33:10, col:19>468// CHECK-NEXT:         |   |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit469// CHECK-NEXT:         |   |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0470// CHECK-NEXT:         |   |   |-<<<NULL>>>471// CHECK-NEXT:         |   |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'472// CHECK-NEXT:         |   |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>473// CHECK-NEXT:         |   |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'474// CHECK-NEXT:         |   |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>475// CHECK-NEXT:         |   |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture476// CHECK-NEXT:         |   |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'477// CHECK-NEXT:         |   |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'478// CHECK-NEXT:         |   |   `-ForStmt {{.*}} <line:34:7, line:35:9>479// CHECK-NEXT:         |   |     |-DeclStmt {{.*}} <line:34:12, col:21>480// CHECK-NEXT:         |   |     | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit481// CHECK-NEXT:         |   |     |   `-IntegerLiteral {{.*}} <col:20> 'int' 0482// CHECK-NEXT:         |   |     |-<<<NULL>>>483// CHECK-NEXT:         |   |     |-BinaryOperator {{.*}} <col:23, col:27> 'int' '<'484// CHECK-NEXT:         |   |     | |-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>485// CHECK-NEXT:         |   |     | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue Var {{.*}} 'i' 'int'486// CHECK-NEXT:         |   |     | `-ImplicitCastExpr {{.*}} <col:27> 'int' <LValueToRValue>487// CHECK-NEXT:         |   |     |   `-DeclRefExpr {{.*}} <col:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture488// CHECK-NEXT:         |   |     |-UnaryOperator {{.*}} <col:30, col:31> 'int' postfix '++'489// CHECK-NEXT:         |   |     | `-DeclRefExpr {{.*}} <col:30> 'int' lvalue Var {{.*}} 'i' 'int'490// CHECK-NEXT:         |   |     `-NullStmt {{.*}} <line:35:9>491// CHECK-NEXT:         |   |-ImplicitParamDecl {{.*}} <line:31:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:31:1) *const restrict'492// CHECK-NEXT:         |   |-VarDecl {{.*}} <line:32:8, col:16> col:12 used i 'int' cinit493// CHECK-NEXT:         |   | `-IntegerLiteral {{.*}} <col:16> 'int' 0494// CHECK-NEXT:         |   |-VarDecl {{.*}} <line:33:10, col:18> col:14 used i 'int' cinit495// CHECK-NEXT:         |   | `-IntegerLiteral {{.*}} <col:18> 'int' 0496// CHECK-NEXT:         |   `-VarDecl {{.*}} <line:34:12, col:20> col:16 used i 'int' cinit497// CHECK-NEXT:         |     `-IntegerLiteral {{.*}} <col:20> 'int' 0498// CHECK-NEXT:         |-DeclRefExpr {{.*}} <line:32:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'499// CHECK-NEXT:         |-DeclRefExpr {{.*}} <line:33:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'500// CHECK-NEXT:         `-DeclRefExpr {{.*}} <line:34:27> 'int' lvalue ParmVar {{.*}} 'z' 'int'501