// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library %s -ast-dump | FileCheck %s typedef vector int8[2]; export void fn(int8 A) { int8 a = {A}; // CHECK-LABEL: VarDecl {{.*}} b 'int8':'vector[2]' cinit // CHECK-NEXT: ArrayInitLoopExpr {{.*}} 'int8':'vector[2]' // CHECK-NEXT: OpaqueValueExpr {{.*}} 'int8':'vector[2]' lvalue // CHECK-NEXT: DeclRefExpr {{.*}} 'int8':'vector[2]' lvalue Var {{.*}} 'a' 'int8':'vector[2]' // CHECK-NEXT: ImplicitCastExpr {{.*}} 'vector' // CHECK-NEXT: ArraySubscriptExpr {{.*}} 'vector' lvalue // CHECK-NEXT: ImplicitCastExpr {{.*}} 'vector *' // CHECK-NEXT: OpaqueValueExpr {{.*}} 'int8':'vector[2]' lvalue // CHECK-NEXT: DeclRefExpr {{.*}} 'int8':'vector[2]' lvalue Var {{.*}} 'a' 'int8':'vector[2]' // CHECK-NEXT: ArrayInitIndexExpr {{.*}} '__size_t':'unsigned long' int8 b = a; // CHECK-LABEL: VarDecl {{.*}} c 'int8':'vector[2]' cinit // CHECK-NEXT: ArrayInitLoopExpr {{.*}} 'int8':'vector[2]' // CHECK-NEXT: OpaqueValueExpr {{.*}} 'vector[2]' lvalue // CHECK-NEXT: DeclRefExpr {{.*}} 'vector[2]' lvalue ParmVar {{.*}} 'A' 'vector[2]' // CHECK-NEXT: ImplicitCastExpr {{.*}} 'vector' // CHECK-NEXT: ArraySubscriptExpr {{.*}} 'vector' lvalue // CHECK-NEXT: ImplicitCastExpr {{.*}} 'vector *' // CHECK-NEXT: OpaqueValueExpr {{.*}} 'vector[2]' lvalue // CHECK-NEXT: DeclRefExpr {{.*}} 'vector[2]' lvalue ParmVar {{.*}} 'A' 'vector[2]' // CHECK-NEXT: ArrayInitIndexExpr {{.*}} '__size_t':'unsigned long' int8 c = A; }