From c6bde8318ea7f8b0d95fc26730640dcdc3643d57 Mon Sep 17 00:00:00 2001 From: Steven Perron Date: Mon, 9 Mar 2026 20:16:35 -0400 Subject: [PATCH] [HLSL] Fix interleaved vector and matrix return types in AST dump (#184888) HLSL vector and matrix types were previously printed with their closing syntax (', N>') in 'printAfter', causing them to interleave with function parameters when used as return types (e.g., 'vector'). This change moves the HLSL vector and matrix closing syntax into 'printBefore' when 'UseHLSLTypes' is enabled, ensuring the type is printed completely before the parameter list. Note that address space qualifiers are now printed after the type (e.g., 'vectorhlsl_device'). This is because 'canPrefixQualifiers' in 'TypePrinter.cpp' returns false for these types. We cannot easily change this to check 'UseHLSLTypes' because 'canPrefixQualifiers' is a static method and does not have access to the PrintingPolicy at that point. Fixes interleaved output in HLSL AST tests. Fixes https://github.com/llvm/llvm-project/issues/114868. Assisted-by: Gemini --- clang/lib/AST/TypePrinter.cpp | 96 +++++++++++-------- .../test/AST/HLSL/ByteAddressBuffers-AST.hlsl | 60 ++++++------ clang/test/AST/HLSL/Texture2D-scalar-AST.hlsl | 32 +++---- clang/test/AST/HLSL/Texture2D-vector-AST.hlsl | 54 +++++------ .../pch_with_matrix_element_accessor.hlsl | 10 +- .../pch_with_matrix_single_subscript.hlsl | 2 +- .../test/AST/HLSL/resource_binding_attr.hlsl | 2 +- clang/test/SemaHLSL/BuiltIns/Buffers.hlsl | 2 +- .../SemaHLSL/BuiltIns/StructuredBuffers.hlsl | 2 +- .../test/SemaHLSL/BuiltIns/matrix-errors.hlsl | 4 +- .../MatrixFloatPrecisionWarnings.hlsl | 6 +- 11 files changed, 143 insertions(+), 127 deletions(-) diff --git a/clang/lib/AST/TypePrinter.cpp b/clang/lib/AST/TypePrinter.cpp index 07a0c39bd93f..337563082750 100644 --- a/clang/lib/AST/TypePrinter.cpp +++ b/clang/lib/AST/TypePrinter.cpp @@ -638,27 +638,29 @@ void TypePrinter::printDependentAddressSpaceAfter( } void TypePrinter::printDependentSizedExtVectorBefore( - const DependentSizedExtVectorType *T, - raw_ostream &OS) { - if (Policy.UseHLSLTypes) - OS << "vector<"; - printBefore(T->getElementType(), OS); -} - -void TypePrinter::printDependentSizedExtVectorAfter( - const DependentSizedExtVectorType *T, - raw_ostream &OS) { + const DependentSizedExtVectorType *T, raw_ostream &OS) { if (Policy.UseHLSLTypes) { + OS << "vector<"; + print(T->getElementType(), OS, StringRef()); OS << ", "; if (T->getSizeExpr()) T->getSizeExpr()->printPretty(OS, nullptr, Policy); OS << ">"; + spaceBeforePlaceHolder(OS); } else { - OS << " __attribute__((ext_vector_type("; - if (T->getSizeExpr()) - T->getSizeExpr()->printPretty(OS, nullptr, Policy); - OS << ")))"; + printBefore(T->getElementType(), OS); } +} + +void TypePrinter::printDependentSizedExtVectorAfter( + const DependentSizedExtVectorType *T, raw_ostream &OS) { + if (Policy.UseHLSLTypes) + return; + + OS << " __attribute__((ext_vector_type("; + if (T->getSizeExpr()) + T->getSizeExpr()->printPretty(OS, nullptr, Policy); + OS << ")))"; printAfter(T->getElementType(), OS); } @@ -826,23 +828,24 @@ void TypePrinter::printDependentVectorAfter( void TypePrinter::printExtVectorBefore(const ExtVectorType *T, raw_ostream &OS) { - if (Policy.UseHLSLTypes) + if (Policy.UseHLSLTypes) { OS << "vector<"; - printBefore(T->getElementType(), OS); + print(T->getElementType(), OS, StringRef()); + OS << ", " << T->getNumElements() << ">"; + spaceBeforePlaceHolder(OS); + } else { + printBefore(T->getElementType(), OS); + } } void TypePrinter::printExtVectorAfter(const ExtVectorType *T, raw_ostream &OS) { - printAfter(T->getElementType(), OS); + if (Policy.UseHLSLTypes) + return; - if (Policy.UseHLSLTypes) { - OS << ", "; - OS << T->getNumElements(); - OS << ">"; - } else { - OS << " __attribute__((ext_vector_type("; - OS << T->getNumElements(); - OS << ")))"; - } + printAfter(T->getElementType(), OS); + OS << " __attribute__((ext_vector_type("; + OS << T->getNumElements(); + OS << ")))"; } static void printDims(const ConstantMatrixType *T, raw_ostream &OS) { @@ -852,13 +855,14 @@ static void printDims(const ConstantMatrixType *T, raw_ostream &OS) { static void printHLSLMatrixBefore(TypePrinter &TP, const ConstantMatrixType *T, raw_ostream &OS) { OS << "matrix<"; - TP.printBefore(T->getElementType(), OS); -} - -static void printHLSLMatrixAfter(const ConstantMatrixType *T, raw_ostream &OS) { + TP.print(T->getElementType(), OS, StringRef()); OS << ", "; printDims(T, OS); OS << ">"; + TP.spaceBeforePlaceHolder(OS); +} + +static void printHLSLMatrixAfter(const ConstantMatrixType *T, raw_ostream &OS) { } static void printClangMatrixBefore(TypePrinter &TP, const ConstantMatrixType *T, @@ -889,21 +893,33 @@ void TypePrinter::printConstantMatrixAfter(const ConstantMatrixType *T, void TypePrinter::printDependentSizedMatrixBefore( const DependentSizedMatrixType *T, raw_ostream &OS) { - printBefore(T->getElementType(), OS); - OS << " __attribute__((matrix_type("; - if (T->getRowExpr()) { - T->getRowExpr()->printPretty(OS, nullptr, Policy); + if (Policy.UseHLSLTypes) { + OS << "matrix<"; + print(T->getElementType(), OS, StringRef()); + OS << ", "; + if (T->getRowExpr()) + T->getRowExpr()->printPretty(OS, nullptr, Policy); + OS << ", "; + if (T->getColumnExpr()) + T->getColumnExpr()->printPretty(OS, nullptr, Policy); + OS << ">"; + spaceBeforePlaceHolder(OS); + } else { + printBefore(T->getElementType(), OS); + OS << " __attribute__((matrix_type("; + if (T->getRowExpr()) + T->getRowExpr()->printPretty(OS, nullptr, Policy); + OS << ", "; + if (T->getColumnExpr()) + T->getColumnExpr()->printPretty(OS, nullptr, Policy); + OS << ")))"; } - OS << ", "; - if (T->getColumnExpr()) { - T->getColumnExpr()->printPretty(OS, nullptr, Policy); - } - OS << ")))"; } void TypePrinter::printDependentSizedMatrixAfter( const DependentSizedMatrixType *T, raw_ostream &OS) { - printAfter(T->getElementType(), OS); + if (!Policy.UseHLSLTypes) + printAfter(T->getElementType(), OS); } void diff --git a/clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl b/clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl index e9e7cd76167a..16ce8ab0e740 100644 --- a/clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl +++ b/clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl @@ -189,12 +189,12 @@ RESOURCE Buffer; // CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'unsigned int *' // CHECK-LOAD-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline -// CHECK-LOAD: CXXMethodDecl {{.*}} Load2 'vector' +// CHECK-LOAD: CXXMethodDecl {{.*}} Load2 'vector (unsigned int)' // CHECK-LOAD-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' // CHECK-LOAD-NEXT: CompoundStmt // CHECK-LOAD-NEXT: ReturnStmt -// CHECK-LOAD-NEXT: UnaryOperator {{.*}} 'vector' lvalue prefix '*' cannot overflow -// CHECK-LOAD-NEXT: CallExpr {{.*}} 'vector' +// CHECK-LOAD-NEXT: UnaryOperator {{.*}} 'vector hlsl_device' lvalue prefix '*' cannot overflow +// CHECK-LOAD-NEXT: CallExpr {{.*}} 'vector hlsl_device *' // CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} 'void (*)(...) noexcept' // CHECK-LOAD-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer_typed' 'void (...) noexcept' // CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} '__hlsl_resource_t {{.*}}' @@ -202,10 +202,10 @@ RESOURCE Buffer; // CHECK-LOAD-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this // CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} 'unsigned int' // CHECK-LOAD-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'Index' 'unsigned int' -// CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'vector' +// CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'vector *' // CHECK-LOAD-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline -// CHECK-LOAD: CXXMethodDecl {{.*}} Load2 'vector' +// CHECK-LOAD: CXXMethodDecl {{.*}} Load2 'vector (unsigned int, out unsigned int)' // CHECK-LOAD-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' // CHECK-LOAD-NEXT: ParmVarDecl {{.*}} Status 'unsigned int &__restrict' // CHECK-LOAD-NEXT: HLSLParamModifierAttr {{.*}} out @@ -221,15 +221,15 @@ RESOURCE Buffer; // CHECK-LOAD-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'Index' 'unsigned int' // CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} 'unsigned int' // CHECK-LOAD-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'Status' 'unsigned int &__restrict' -// CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'vector' +// CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'vector *' // CHECK-LOAD-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline -// CHECK-LOAD: CXXMethodDecl {{.*}} Load3 'vector' +// CHECK-LOAD: CXXMethodDecl {{.*}} Load3 'vector (unsigned int)' // CHECK-LOAD-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' // CHECK-LOAD-NEXT: CompoundStmt // CHECK-LOAD-NEXT: ReturnStmt -// CHECK-LOAD-NEXT: UnaryOperator {{.*}} 'vector' lvalue prefix '*' cannot overflow -// CHECK-LOAD-NEXT: CallExpr {{.*}} 'vector' +// CHECK-LOAD-NEXT: UnaryOperator {{.*}} 'vector hlsl_device' lvalue prefix '*' cannot overflow +// CHECK-LOAD-NEXT: CallExpr {{.*}} 'vector hlsl_device *' // CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} 'void (*)(...) noexcept' // CHECK-LOAD-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer_typed' 'void (...) noexcept' // CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} '__hlsl_resource_t {{.*}}' @@ -237,10 +237,10 @@ RESOURCE Buffer; // CHECK-LOAD-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this // CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} 'unsigned int' // CHECK-LOAD-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'Index' 'unsigned int' -// CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'vector' +// CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'vector *' // CHECK-LOAD-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline -// CHECK-LOAD: CXXMethodDecl {{.*}} Load3 'vector' +// CHECK-LOAD: CXXMethodDecl {{.*}} Load3 'vector (unsigned int, out unsigned int)' // CHECK-LOAD-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' // CHECK-LOAD-NEXT: ParmVarDecl {{.*}} Status 'unsigned int &__restrict' // CHECK-LOAD-NEXT: HLSLParamModifierAttr {{.*}} out @@ -256,15 +256,15 @@ RESOURCE Buffer; // CHECK-LOAD-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'Index' 'unsigned int' // CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} 'unsigned int' // CHECK-LOAD-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'Status' 'unsigned int &__restrict' -// CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'vector' +// CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'vector *' // CHECK-LOAD-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline -// CHECK-LOAD: CXXMethodDecl {{.*}} Load4 'vector' +// CHECK-LOAD: CXXMethodDecl {{.*}} Load4 'vector (unsigned int)' // CHECK-LOAD-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' // CHECK-LOAD-NEXT: CompoundStmt // CHECK-LOAD-NEXT: ReturnStmt -// CHECK-LOAD-NEXT: UnaryOperator {{.*}} 'vector' lvalue prefix '*' cannot overflow -// CHECK-LOAD-NEXT: CallExpr {{.*}} 'vector' +// CHECK-LOAD-NEXT: UnaryOperator {{.*}} 'vector hlsl_device' lvalue prefix '*' cannot overflow +// CHECK-LOAD-NEXT: CallExpr {{.*}} 'vector hlsl_device *' // CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} 'void (*)(...) noexcept' // CHECK-LOAD-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer_typed' 'void (...) noexcept' // CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} '__hlsl_resource_t {{.*}}' @@ -272,10 +272,10 @@ RESOURCE Buffer; // CHECK-LOAD-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this // CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} 'unsigned int' // CHECK-LOAD-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'Index' 'unsigned int' -// CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'vector' +// CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'vector *' // CHECK-LOAD-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline -// CHECK-LOAD: CXXMethodDecl {{.*}} Load4 'vector' +// CHECK-LOAD: CXXMethodDecl {{.*}} Load4 'vector (unsigned int, out unsigned int)' // CHECK-LOAD-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' // CHECK-LOAD-NEXT: ParmVarDecl {{.*}} Status 'unsigned int &__restrict' // CHECK-LOAD-NEXT: HLSLParamModifierAttr {{.*}} out @@ -291,7 +291,7 @@ RESOURCE Buffer; // CHECK-LOAD-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'Index' 'unsigned int' // CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} 'unsigned int' // CHECK-LOAD-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'Status' 'unsigned int &__restrict' -// CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'vector' +// CHECK-LOAD-NEXT: CXXScalarValueInitExpr {{.*}} 'vector *' // CHECK-LOAD-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline // CHECK-LOAD: CXXMethodDecl {{.*}} Load 'element_type (unsigned int)' @@ -347,9 +347,9 @@ RESOURCE Buffer; // CHECK-STORE-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' // CHECK-STORE-NEXT: ParmVarDecl {{.*}} Value 'vector' // CHECK-STORE-NEXT: CompoundStmt -// CHECK-STORE-NEXT: BinaryOperator {{.*}} 'vector' '=' -// CHECK-STORE-NEXT: UnaryOperator {{.*}} 'vector' lvalue prefix '*' cannot overflow -// CHECK-STORE-NEXT: CallExpr {{.*}} 'vector' +// CHECK-STORE-NEXT: BinaryOperator {{.*}} 'vector hlsl_device' '=' +// CHECK-STORE-NEXT: UnaryOperator {{.*}} 'vector hlsl_device' lvalue prefix '*' cannot overflow +// CHECK-STORE-NEXT: CallExpr {{.*}} 'vector hlsl_device *' // CHECK-STORE-NEXT: ImplicitCastExpr {{.*}} 'void (*)(...) noexcept' // CHECK-STORE-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer_typed' 'void (...) noexcept' // CHECK-STORE-NEXT: ImplicitCastExpr {{.*}} '__hlsl_resource_t {{.*}}' @@ -357,7 +357,7 @@ RESOURCE Buffer; // CHECK-STORE-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this // CHECK-STORE-NEXT: ImplicitCastExpr {{.*}} 'unsigned int' // CHECK-STORE-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'Index' 'unsigned int' -// CHECK-STORE-NEXT: CXXScalarValueInitExpr {{.*}} 'vector' +// CHECK-STORE-NEXT: CXXScalarValueInitExpr {{.*}} 'vector *' // CHECK-STORE-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Value' 'vector' // CHECK-STORE-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline @@ -365,9 +365,9 @@ RESOURCE Buffer; // CHECK-STORE-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' // CHECK-STORE-NEXT: ParmVarDecl {{.*}} Value 'vector' // CHECK-STORE-NEXT: CompoundStmt -// CHECK-STORE-NEXT: BinaryOperator {{.*}} 'vector' '=' -// CHECK-STORE-NEXT: UnaryOperator {{.*}} 'vector' lvalue prefix '*' cannot overflow -// CHECK-STORE-NEXT: CallExpr {{.*}} 'vector' +// CHECK-STORE-NEXT: BinaryOperator {{.*}} 'vector hlsl_device' '=' +// CHECK-STORE-NEXT: UnaryOperator {{.*}} 'vector hlsl_device' lvalue prefix '*' cannot overflow +// CHECK-STORE-NEXT: CallExpr {{.*}} 'vector hlsl_device *' // CHECK-STORE-NEXT: ImplicitCastExpr {{.*}} 'void (*)(...) noexcept' // CHECK-STORE-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer_typed' 'void (...) noexcept' // CHECK-STORE-NEXT: ImplicitCastExpr {{.*}} '__hlsl_resource_t {{.*}}' @@ -375,7 +375,7 @@ RESOURCE Buffer; // CHECK-STORE-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this // CHECK-STORE-NEXT: ImplicitCastExpr {{.*}} 'unsigned int' // CHECK-STORE-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'Index' 'unsigned int' -// CHECK-STORE-NEXT: CXXScalarValueInitExpr {{.*}} 'vector' +// CHECK-STORE-NEXT: CXXScalarValueInitExpr {{.*}} 'vector *' // CHECK-STORE-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Value' 'vector' // CHECK-STORE-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline @@ -383,9 +383,9 @@ RESOURCE Buffer; // CHECK-STORE-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' // CHECK-STORE-NEXT: ParmVarDecl {{.*}} Value 'vector' // CHECK-STORE-NEXT: CompoundStmt -// CHECK-STORE-NEXT: BinaryOperator {{.*}} 'vector' '=' -// CHECK-STORE-NEXT: UnaryOperator {{.*}} 'vector' lvalue prefix '*' cannot overflow -// CHECK-STORE-NEXT: CallExpr {{.*}} 'vector' +// CHECK-STORE-NEXT: BinaryOperator {{.*}} 'vector hlsl_device' '=' +// CHECK-STORE-NEXT: UnaryOperator {{.*}} 'vector hlsl_device' lvalue prefix '*' cannot overflow +// CHECK-STORE-NEXT: CallExpr {{.*}} 'vector hlsl_device *' // CHECK-STORE-NEXT: ImplicitCastExpr {{.*}} 'void (*)(...) noexcept' // CHECK-STORE-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer_typed' 'void (...) noexcept' // CHECK-STORE-NEXT: ImplicitCastExpr {{.*}} '__hlsl_resource_t {{.*}}' @@ -393,7 +393,7 @@ RESOURCE Buffer; // CHECK-STORE-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this // CHECK-STORE-NEXT: ImplicitCastExpr {{.*}} 'unsigned int' // CHECK-STORE-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'Index' 'unsigned int' -// CHECK-STORE-NEXT: CXXScalarValueInitExpr {{.*}} 'vector' +// CHECK-STORE-NEXT: CXXScalarValueInitExpr {{.*}} 'vector *' // CHECK-STORE-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Value' 'vector' // CHECK-STORE-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline diff --git a/clang/test/AST/HLSL/Texture2D-scalar-AST.hlsl b/clang/test/AST/HLSL/Texture2D-scalar-AST.hlsl index 8725bcc05882..921c92da5cb2 100644 --- a/clang/test/AST/HLSL/Texture2D-scalar-AST.hlsl +++ b/clang/test/AST/HLSL/Texture2D-scalar-AST.hlsl @@ -415,7 +415,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} Gather 'vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} Gather 'vector (hlsl::SamplerState, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: CompoundStmt @@ -431,7 +431,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} Gather 'vector, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} Gather 'vector (hlsl::SamplerState, vector, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector' @@ -449,7 +449,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherRed 'vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherRed 'vector (hlsl::SamplerState, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: CompoundStmt @@ -465,7 +465,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherRed 'vector, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherRed 'vector (hlsl::SamplerState, vector, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector' @@ -483,7 +483,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherGreen 'vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherGreen 'vector (hlsl::SamplerState, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: CompoundStmt @@ -499,7 +499,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 1 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherGreen 'vector, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherGreen 'vector (hlsl::SamplerState, vector, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector' @@ -517,7 +517,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherBlue 'vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherBlue 'vector (hlsl::SamplerState, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: CompoundStmt @@ -533,7 +533,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 2 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherBlue 'vector, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherBlue 'vector (hlsl::SamplerState, vector, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector' @@ -551,7 +551,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherAlpha 'vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherAlpha 'vector (hlsl::SamplerState, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: CompoundStmt @@ -567,7 +567,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 3 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherAlpha 'vector, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherAlpha 'vector (hlsl::SamplerState, vector, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector' @@ -585,7 +585,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherCmp 'vector, float), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherCmp 'vector (hlsl::SamplerComparisonState, vector, float)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float' @@ -603,7 +603,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherCmp 'vector, float, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherCmp 'vector (hlsl::SamplerComparisonState, vector, float, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float' @@ -623,7 +623,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherCmpRed 'vector, float), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherCmpRed 'vector (hlsl::SamplerComparisonState, vector, float)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float' @@ -641,7 +641,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherCmpGreen 'vector, float), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherCmpGreen 'vector (hlsl::SamplerComparisonState, vector, float)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float' @@ -659,7 +659,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 1 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherCmpBlue 'vector, float), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherCmpBlue 'vector (hlsl::SamplerComparisonState, vector, float)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float' @@ -677,7 +677,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 2 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherCmpAlpha 'vector, float, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherCmpAlpha 'vector (hlsl::SamplerComparisonState, vector, float, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float' diff --git a/clang/test/AST/HLSL/Texture2D-vector-AST.hlsl b/clang/test/AST/HLSL/Texture2D-vector-AST.hlsl index 4e1c41f05232..0e056009c1a3 100644 --- a/clang/test/AST/HLSL/Texture2D-vector-AST.hlsl +++ b/clang/test/AST/HLSL/Texture2D-vector-AST.hlsl @@ -23,7 +23,7 @@ // CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector)]] // CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]] -// CHECK: CXXMethodDecl {{.*}} Sample 'vector), element_count>' +// CHECK: CXXMethodDecl {{.*}} Sample 'vector (hlsl::SamplerState, vector)' // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: CompoundStmt @@ -44,7 +44,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Location' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} Sample 'vector, vector), element_count>' +// CHECK: CXXMethodDecl {{.*}} Sample 'vector (hlsl::SamplerState, vector, vector)' // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector' @@ -67,7 +67,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} Sample 'vector, vector, float), element_count>' +// CHECK: CXXMethodDecl {{.*}} Sample 'vector (hlsl::SamplerState, vector, vector, float)' // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector' @@ -92,7 +92,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'Clamp' 'float' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} SampleBias 'vector, float), element_count>' +// CHECK: CXXMethodDecl {{.*}} SampleBias 'vector (hlsl::SamplerState, vector, float)' // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Bias 'float' @@ -115,7 +115,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'Bias' 'float' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} SampleBias 'vector, float, vector), element_count>' +// CHECK: CXXMethodDecl {{.*}} SampleBias 'vector (hlsl::SamplerState, vector, float, vector)' // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Bias 'float' @@ -140,7 +140,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} SampleBias 'vector, float, vector, float), element_count>' +// CHECK: CXXMethodDecl {{.*}} SampleBias 'vector (hlsl::SamplerState, vector, float, vector, float)' // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Bias 'float' @@ -167,7 +167,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'Clamp' 'float' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} SampleGrad 'vector, vector, vector), element_count>' +// CHECK: CXXMethodDecl {{.*}} SampleGrad 'vector (hlsl::SamplerState, vector, vector, vector)' // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} DDX 'vector' @@ -192,7 +192,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'DDY' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} SampleGrad 'vector, vector, vector, vector), element_count>' +// CHECK: CXXMethodDecl {{.*}} SampleGrad 'vector (hlsl::SamplerState, vector, vector, vector, vector)' // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} DDX 'vector' @@ -219,7 +219,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} SampleGrad 'vector, vector, vector, vector, float), element_count>' +// CHECK: CXXMethodDecl {{.*}} SampleGrad 'vector (hlsl::SamplerState, vector, vector, vector, vector, float)' // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} DDX 'vector' @@ -248,7 +248,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'Clamp' 'float' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} SampleLevel 'vector, float), element_count>' +// CHECK: CXXMethodDecl {{.*}} SampleLevel 'vector (hlsl::SamplerState, vector, float)' // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} LOD 'float' @@ -271,7 +271,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'LOD' 'float' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} SampleLevel 'vector, float, vector), element_count>' +// CHECK: CXXMethodDecl {{.*}} SampleLevel 'vector (hlsl::SamplerState, vector, float, vector)' // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} LOD 'float' @@ -419,7 +419,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} Gather 'vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} Gather 'vector (hlsl::SamplerState, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: CompoundStmt @@ -435,7 +435,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} Gather 'vector, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} Gather 'vector (hlsl::SamplerState, vector, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector' @@ -453,7 +453,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherRed 'vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherRed 'vector (hlsl::SamplerState, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: CompoundStmt @@ -469,7 +469,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherRed 'vector, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherRed 'vector (hlsl::SamplerState, vector, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector' @@ -487,7 +487,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherGreen 'vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherGreen 'vector (hlsl::SamplerState, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: CompoundStmt @@ -503,7 +503,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 1 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherGreen 'vector, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherGreen 'vector (hlsl::SamplerState, vector, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector' @@ -521,7 +521,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherBlue 'vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherBlue 'vector (hlsl::SamplerState, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: CompoundStmt @@ -537,7 +537,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 2 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherBlue 'vector, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherBlue 'vector (hlsl::SamplerState, vector, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector' @@ -555,7 +555,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherAlpha 'vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherAlpha 'vector (hlsl::SamplerState, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: CompoundStmt @@ -571,7 +571,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 3 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherAlpha 'vector, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherAlpha 'vector (hlsl::SamplerState, vector, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector' @@ -589,7 +589,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherCmp 'vector, float), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherCmp 'vector (hlsl::SamplerComparisonState, vector, float)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float' @@ -607,7 +607,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherCmp 'vector, float, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherCmp 'vector (hlsl::SamplerComparisonState, vector, float, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float' @@ -627,7 +627,7 @@ // CHECK-NEXT: DeclRefExpr {{.*}} 'vector' lvalue ParmVar {{.*}} 'Offset' 'vector' // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherCmpRed 'vector, float), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherCmpRed 'vector (hlsl::SamplerComparisonState, vector, float)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float' @@ -645,7 +645,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherCmpGreen 'vector, float), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherCmpGreen 'vector (hlsl::SamplerComparisonState, vector, float)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float' @@ -663,7 +663,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 1 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherCmpBlue 'vector, float), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherCmpBlue 'vector (hlsl::SamplerComparisonState, vector, float)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float' @@ -681,7 +681,7 @@ // CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 2 // CHECK-NEXT: AlwaysInlineAttr -// CHECK: CXXMethodDecl {{.*}} GatherCmpAlpha 'vector, float, vector), 4>' inline +// CHECK: CXXMethodDecl {{.*}} GatherCmpAlpha 'vector (hlsl::SamplerComparisonState, vector, float, vector)' inline // CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState' // CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector' // CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float' diff --git a/clang/test/AST/HLSL/pch_with_matrix_element_accessor.hlsl b/clang/test/AST/HLSL/pch_with_matrix_element_accessor.hlsl index 46f340a4196d..18446296675a 100644 --- a/clang/test/AST/HLSL/pch_with_matrix_element_accessor.hlsl +++ b/clang/test/AST/HLSL/pch_with_matrix_element_accessor.hlsl @@ -7,8 +7,8 @@ float4x4 gM; // CHECK-NEXT: CompoundStmt {{.*}} // CHECK-NEXT: ReturnStmt {{.*}} // CHECK-NEXT: ImplicitCastExpr {{.*}} 'vector' -// CHECK-NEXT: MatrixElementExpr {{.*}} 'vector' lvalue _11_22_33_44 -// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl_constant float4x4':'matrix' lvalue Var {{.*}} 'gM' 'hlsl_constant float4x4':'matrix' +// CHECK-NEXT: MatrixElementExpr {{.*}} 'vector hlsl_constant' lvalue _11_22_33_44 +// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl_constant float4x4':'matrix hlsl_constant' lvalue Var {{.*}} 'gM' 'hlsl_constant float4x4':'matrix hlsl_constant' float4 getDiag() { return gM._11_22_33_44; } @@ -16,9 +16,9 @@ float4 getDiag() { // CHECK: FunctionDecl {{.*}} setRowZero 'void (float4)' // CHECK-NEXT: ParmVarDecl {{.*}} used V 'float4':'vector' // CHECK-NEXT: CompoundStmt {{.*}} -// CHECK-NEXT: BinaryOperator {{.*}} 'vector' lvalue '=' -// CHECK-NEXT: MatrixElementExpr {{.*}} 'vector' lvalue _m00_m01_m02_m03 -// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl_constant float4x4':'matrix' lvalue Var {{.*}} 'gM' 'hlsl_constant float4x4':'matrix' +// CHECK-NEXT: BinaryOperator {{.*}} 'vector hlsl_constant' lvalue '=' +// CHECK-NEXT: MatrixElementExpr {{.*}} 'vector hlsl_constant' lvalue _m00_m01_m02_m03 +// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl_constant float4x4':'matrix hlsl_constant' lvalue Var {{.*}} 'gM' 'hlsl_constant float4x4':'matrix hlsl_constant' // CHECK-NEXT: ImplicitCastExpr {{.*}} 'float4':'vector' // CHECK-NEXT: DeclRefExpr {{.*}} 'float4':'vector' lvalue ParmVar {{.*}} 'V' 'float4':'vector' void setRowZero(float4 V) { diff --git a/clang/test/AST/HLSL/pch_with_matrix_single_subscript.hlsl b/clang/test/AST/HLSL/pch_with_matrix_single_subscript.hlsl index 089dd3f34d93..feccd64c5f86 100644 --- a/clang/test/AST/HLSL/pch_with_matrix_single_subscript.hlsl +++ b/clang/test/AST/HLSL/pch_with_matrix_single_subscript.hlsl @@ -9,7 +9,7 @@ float3x2 gM; // CHECK-NEXT: ReturnStmt {{.*}} // CHECK-NEXT: ImplicitCastExpr {{.*}} 'vector' // CHECK-NEXT: MatrixSingleSubscriptExpr {{.*}} 'vector' lvalue matrixcomponent -// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl_constant float3x2':'matrix' lvalue Var {{.*}} 'gM' 'hlsl_constant float3x2':'matrix' +// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl_constant float3x2':'matrix hlsl_constant' lvalue Var {{.*}} 'gM' 'hlsl_constant float3x2':'matrix hlsl_constant' // CHECK-NEXT: DeclRefExpr {{.*}} 'uint':'unsigned int' lvalue ParmVar {{.*}} 'row' 'uint':'unsigned int' float2 getRow(uint row) { return gM[row]; diff --git a/clang/test/AST/HLSL/resource_binding_attr.hlsl b/clang/test/AST/HLSL/resource_binding_attr.hlsl index 2de06741cfd4..2cd2b96bc41b 100644 --- a/clang/test/AST/HLSL/resource_binding_attr.hlsl +++ b/clang/test/AST/HLSL/resource_binding_attr.hlsl @@ -46,7 +46,7 @@ RWBuffer UAV_Array[10] : register(u10, space6); // CHECK: HLSLResourceBindingAttr {{.*}} "c5" "space0" float f : register(c5); -// CHECK: VarDecl {{.*}} intv 'hlsl_constant int4':'vector' +// CHECK: VarDecl {{.*}} intv 'hlsl_constant int4':'vector hlsl_constant' // CHECK: HLSLResourceBindingAttr {{.*}} "c2" "space0" int4 intv : register(c2); diff --git a/clang/test/SemaHLSL/BuiltIns/Buffers.hlsl b/clang/test/SemaHLSL/BuiltIns/Buffers.hlsl index 8debd38801bd..db4a6746f6fb 100644 --- a/clang/test/SemaHLSL/BuiltIns/Buffers.hlsl +++ b/clang/test/SemaHLSL/BuiltIns/Buffers.hlsl @@ -113,7 +113,7 @@ void main() { // expected-note@* {{implicitly declared private here}} // expected-error@+2 {{cannot assign to return value because function 'operator[]' returns a const value}} - // expected-note@* {{function 'operator[]' which returns const-qualified type 'vector' declared here}} + // expected-note@* {{function 'operator[]' which returns const-qualified type 'vector const hlsl_device &' declared here}} Buff[0] = 0.0; } diff --git a/clang/test/SemaHLSL/BuiltIns/StructuredBuffers.hlsl b/clang/test/SemaHLSL/BuiltIns/StructuredBuffers.hlsl index ba63fc25819e..c9841fbd4c23 100644 --- a/clang/test/SemaHLSL/BuiltIns/StructuredBuffers.hlsl +++ b/clang/test/SemaHLSL/BuiltIns/StructuredBuffers.hlsl @@ -30,7 +30,7 @@ void main() { // expected-note@* {{implicitly declared private here}} // expected-error@+2 {{cannot assign to return value because function 'operator[]' returns a const value}} - // expected-note@* {{function 'operator[]' which returns const-qualified type 'vector' declared here}} + // expected-note@* {{function 'operator[]' which returns const-qualified type 'vector const hlsl_device &' declared here}} Buff[0] = 0.0; } diff --git a/clang/test/SemaHLSL/BuiltIns/matrix-errors.hlsl b/clang/test/SemaHLSL/BuiltIns/matrix-errors.hlsl index 03751878bbb9..2aa127f60ae2 100644 --- a/clang/test/SemaHLSL/BuiltIns/matrix-errors.hlsl +++ b/clang/test/SemaHLSL/BuiltIns/matrix-errors.hlsl @@ -2,7 +2,7 @@ // Some bad declarations hlsl::matrix ShouldWorkSomeday; // expected-error{{use of alias template 'hlsl::matrix' requires template arguments}} -// expected-note@*:* {{template declaration from hidden source: template requires rows_count <= 4 && cols_count <= 4 using matrix = element __attribute__((matrix_type(rows_count, cols_count)))}} +// expected-note@*:* {{template declaration from hidden source: template requires rows_count <= 4 && cols_count <= 4 using matrix = matrix}} hlsl::matrix<1,1,1> BadMat; // expected-error{{template argument for template type parameter must be a type}} // expected-note@*:* {{template parameter from hidden source: class element = float}} @@ -11,7 +11,7 @@ hlsl::matrix AnotherBadMat; // expected-error{{template argument f // expected-note@*:* {{template parameter from hidden source: int rows_count = 4}} hlsl::matrix YABV; // expected-error{{too many template arguments for alias template 'matrix'}} -// expected-note@*:* {{template declaration from hidden source: template requires rows_count <= 4 && cols_count <= 4 using matrix = element __attribute__((matrix_type(rows_count, cols_count)))}} +// expected-note@*:* {{template declaration from hidden source: template requires rows_count <= 4 && cols_count <= 4 using matrix = matrix}} // This code is rejected by clang because clang puts the HLSL built-in types // into the HLSL namespace. diff --git a/clang/test/SemaHLSL/Types/BuiltinMatrix/MatrixFloatPrecisionWarnings.hlsl b/clang/test/SemaHLSL/Types/BuiltinMatrix/MatrixFloatPrecisionWarnings.hlsl index ce3028a81ef1..ba5faaf7688a 100644 --- a/clang/test/SemaHLSL/Types/BuiltinMatrix/MatrixFloatPrecisionWarnings.hlsl +++ b/clang/test/SemaHLSL/Types/BuiltinMatrix/MatrixFloatPrecisionWarnings.hlsl @@ -52,15 +52,15 @@ void TestConstantNotExactlyRepresentable() { // Float to half with values that lose precision - should warn TakesHalf2x2(F_inexact); - // expected-warning@-1{{implicit conversion loses floating-point precision: 'const float2x2' (aka 'matrix') to 'matrix'}} + // expected-warning@-1{{implicit conversion loses floating-point precision: 'const float2x2' (aka 'matrix const') to 'matrix'}} // Double to half with values that lose precision - should warn TakesHalf2x2(D_inexact); - // expected-warning@-1{{implicit conversion loses floating-point precision: 'const double2x2' (aka 'matrix') to 'matrix'}} + // expected-warning@-1{{implicit conversion loses floating-point precision: 'const double2x2' (aka 'matrix const') to 'matrix'}} // Double to float with values that lose precision - should warn TakesFloat2x2(D_inexact); - // expected-warning@-1{{implicit conversion loses floating-point precision: 'const double2x2' (aka 'matrix') to 'matrix'}} + // expected-warning@-1{{implicit conversion loses floating-point precision: 'const double2x2' (aka 'matrix const') to 'matrix'}} // Double to float, where the doubles are float literals that were upcast to double - should not warn TakesFloat2x2(D_inexact2);