brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 2758b6f Raw
50 lines · plain
1// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -ast-dump -o - %s | FileCheck %s2 3// Test that matrix aliases are set up properly for HLSL4 5// CHECK: NamespaceDecl 0x{{[0-9a-fA-F]+}} <<invalid sloc>> <invalid sloc> implicit hlsl6// CHECK-NEXT: TypeAliasTemplateDecl 0x{{[0-9a-fA-F]+}} <<invalid sloc>> <invalid sloc> implicit vector7// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9a-fA-F]+}} <<invalid sloc>> <invalid sloc> class depth 0 index 0 element8// CHECK-NEXT: TemplateArgument type 'float'9// CHECK-NEXT: BuiltinType 0x{{[0-9a-fA-F]+}} 'float'10// CHECK-NEXT: NonTypeTemplateParmDecl 0x{{[0-9a-fA-F]+}} <<invalid sloc>> <invalid sloc> 'int' depth 0 index 1 element_count11// CHECK-NEXT: TemplateArgument expr12// CHECK-NEXT: IntegerLiteral 0x{{[0-9a-fA-F]+}} <<invalid sloc>> 'int' 413// CHECK-NEXT: TypeAliasDecl 0x{{[0-9a-fA-F]+}} <<invalid sloc>> <invalid sloc> implicit vector 'vector<element, element_count>'14// CHECK-NEXT: DependentSizedExtVectorType 0x{{[0-9a-fA-F]+}} 'vector<element, element_count>' dependent <invalid sloc>15// CHECK-NEXT: TemplateTypeParmType 0x{{[0-9a-fA-F]+}} 'element' dependent depth 0 index 016// CHECK-NEXT: TemplateTypeParm 0x{{[0-9a-fA-F]+}} 'element'17// CHECK-NEXT: DeclRefExpr 0x{{[0-9a-fA-F]+}} <<invalid sloc>> 'int' lvalue18// CHECK-SAME: NonTypeTemplateParm 0x{{[0-9a-fA-F]+}} 'element_count' 'int'19 20// Make sure we got a using directive at the end.21// CHECK: UsingDirectiveDecl 0x{{[0-9a-fA-F]+}} <<invalid sloc>> <invalid sloc> Namespace 0x{{[0-9a-fA-F]+}} 'hlsl'22 23[numthreads(1,1,1)]24int entry() {25  // Verify that the alias is generated inside the hlsl namespace.26  hlsl::matrix<float, 2, 2> Mat2x2f;27 28  // CHECK: DeclStmt 0x{{[0-9a-fA-F]+}} <line:26:3, col:36>29  // CHECK-NEXT: VarDecl 0x{{[0-9a-fA-F]+}} <col:3, col:29> col:29 Mat2x2f 'hlsl::matrix<float, 2, 2>'30 31  // Verify that you don't need to specify the namespace.32  matrix<int, 2, 2> Mat2x2i;33 34  // CHECK: DeclStmt 0x{{[0-9a-fA-F]+}} <line:32:3, col:28>35  // CHECK-NEXT: VarDecl 0x{{[0-9a-fA-F]+}} <col:3, col:21> col:21 Mat2x2i 'matrix<int, 2, 2>'36 37  // Build a bigger matrix.38  matrix<double, 4, 4> Mat4x4d;39 40  // CHECK: DeclStmt 0x{{[0-9a-fA-F]+}} <line:38:3, col:31>41  // CHECK-NEXT: VarDecl 0x{{[0-9a-fA-F]+}} <col:3, col:24> col:24 Mat4x4d 'matrix<double, 4, 4>'42 43  // Verify that the implicit arguments generate the correct type.44  matrix<> ImpMat4x4;45 46  // CHECK: DeclStmt 0x{{[0-9a-fA-F]+}} <line:44:3, col:21>47  // CHECK-NEXT: VarDecl 0x{{[0-9a-fA-F]+}} <col:3, col:12> col:12 ImpMat4x4 'matrix<>':'matrix<float, 4, 4>'48  return 1;49}50