This commit add the GetDimensions methods to Texture2D. For DXIL, it requires intrinsics that are not yet available. They are added, but not implemented. Assisted-by: Gemini Co-authored-by: Helena Kotas <hekotas@microsoft.com>
906 lines
57 KiB
HLSL
906 lines
57 KiB
HLSL
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump -disable-llvm-passes -finclude-default-header -o - %s | FileCheck %s
|
|
|
|
// CHECK: CXXRecordDecl {{.*}} SamplerState definition
|
|
// CHECK: FinalAttr {{.*}} Implicit final
|
|
// CHECK-NEXT: FieldDecl {{.*}} implicit {{.*}} __handle '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
|
|
// CHECK: CXXRecordDecl {{.*}} SamplerComparisonState definition
|
|
// CHECK: FinalAttr {{.*}} Implicit final
|
|
// CHECK-NEXT: FieldDecl {{.*}} implicit {{.*}} __handle '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
|
|
// CHECK: ClassTemplateDecl {{.*}} Texture2D
|
|
// CHECK: TemplateTypeParmDecl {{.*}} element_type
|
|
// CHECK: CXXRecordDecl {{.*}} Texture2D
|
|
// CHECK: FinalAttr {{.*}} Implicit final
|
|
// CHECK: ClassTemplatePartialSpecializationDecl {{.*}} Texture2D definition explicit_specialization
|
|
// CHECK: TemplateArgument type 'vector<element_type, element_count>':'vector<type-parameter-0-0, element_count>'
|
|
// CHECK: TemplateTypeParmDecl {{.*}} element_type
|
|
// CHECK: NonTypeTemplateParmDecl {{.*}} element_count
|
|
// CHECK-NEXT: FieldDecl {{.*}} implicit __handle '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} Load 'vector<element_type, element_count> (vector<int, 3>)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<int, 3>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_load_level' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 3>' lvalue ParmVar {{.*}} 'Location' 'vector<int, 3>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} Load 'vector<element_type, element_count> (vector<int, 3>, vector<int, 2>)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<int, 3>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_load_level' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 3>' lvalue ParmVar {{.*}} 'Location' 'vector<int, 3>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} operator[] 'vector<element_type, element_count> const hlsl_device &(vector<unsigned int, 2>) const' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Index 'vector<unsigned int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: UnaryOperator {{.*}} 'vector<element_type, element_count> hlsl_device' lvalue prefix '*' cannot overflow
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count> hlsl_device *' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'const hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<unsigned int, 2>' lvalue ParmVar {{.*}} 'Index' 'vector<unsigned int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} Sample 'vector<element_type, element_count> (hlsl::SamplerState, vector<float, 2>)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} Sample 'vector<element_type, element_count> (hlsl::SamplerState, vector<float, 2>, vector<int, 2>)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} Sample 'vector<element_type, element_count> (hlsl::SamplerState, vector<float, 2>, vector<int, 2>, float)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Clamp 'float'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'Clamp' 'float'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleBias 'vector<element_type, element_count> (hlsl::SamplerState, vector<float, 2>, float)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Bias 'float'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_bias' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'Bias' 'float'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleBias 'vector<element_type, element_count> (hlsl::SamplerState, vector<float, 2>, float, vector<int, 2>)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Bias 'float'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_bias' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'Bias' 'float'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleBias 'vector<element_type, element_count> (hlsl::SamplerState, vector<float, 2>, float, vector<int, 2>, float)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Bias 'float'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Clamp 'float'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_bias' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'Bias' 'float'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'Clamp' 'float'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleGrad 'vector<element_type, element_count> (hlsl::SamplerState, vector<float, 2>, vector<float, 2>, vector<float, 2>)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} DDX 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} DDY 'vector<float, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_grad' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'DDX' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'DDY' 'vector<float, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleGrad 'vector<element_type, element_count> (hlsl::SamplerState, vector<float, 2>, vector<float, 2>, vector<float, 2>, vector<int, 2>)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} DDX 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} DDY 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_grad' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'DDX' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'DDY' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleGrad 'vector<element_type, element_count> (hlsl::SamplerState, vector<float, 2>, vector<float, 2>, vector<float, 2>, vector<int, 2>, float)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} DDX 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} DDY 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Clamp 'float'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_grad' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'DDX' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'DDY' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'Clamp' 'float'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleLevel 'vector<element_type, element_count> (hlsl::SamplerState, vector<float, 2>, float)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} LOD 'float'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_level' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'LOD' 'float'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleLevel 'vector<element_type, element_count> (hlsl::SamplerState, vector<float, 2>, float, vector<int, 2>)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} LOD 'float'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, element_count>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_level' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'LOD' 'float'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleCmp 'float (hlsl::SamplerComparisonState, vector<float, 2>, float)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'float' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_cmp' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerComparisonState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'CompareValue' 'float'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleCmp 'float (hlsl::SamplerComparisonState, vector<float, 2>, float, vector<int, 2>)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'float' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_cmp' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerComparisonState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'CompareValue' 'float'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleCmp 'float (hlsl::SamplerComparisonState, vector<float, 2>, float, vector<int, 2>, float)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Clamp 'float'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'float' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_cmp' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerComparisonState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'CompareValue' 'float'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'Clamp' 'float'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleCmpLevelZero 'float (hlsl::SamplerComparisonState, vector<float, 2>, float)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'float' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_cmp_level_zero' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerComparisonState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'CompareValue' 'float'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} SampleCmpLevelZero 'float (hlsl::SamplerComparisonState, vector<float, 2>, float, vector<int, 2>)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'float' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_cmp_level_zero' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerComparisonState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'CompareValue' 'float'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} CalculateLevelOfDetail 'float (hlsl::SamplerState, vector<float, 2>)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'float' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_calculate_lod' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} CalculateLevelOfDetailUnclamped 'float (hlsl::SamplerState, vector<float, 2>)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'float' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_calculate_lod_unclamped' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(Sampler)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GetDimensions 'void (out unsigned int, out unsigned int)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} width 'unsigned int &__restrict'
|
|
// CHECK-NEXT: HLSLParamModifierAttr {{.*}} out
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} height 'unsigned int &__restrict'
|
|
// CHECK-NEXT: HLSLParamModifierAttr {{.*}} out
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: CallExpr {{.*}}
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '__builtin_hlsl_resource_getdimensions_xy' 'void (__hlsl_resource_t, unsigned int &, unsigned int &) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'width' 'unsigned int &__restrict'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'height' 'unsigned int &__restrict'
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GetDimensions 'void (unsigned int, out unsigned int, out unsigned int, out unsigned int)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} mipLevel 'unsigned int'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} width 'unsigned int &__restrict'
|
|
// CHECK-NEXT: HLSLParamModifierAttr {{.*}} out
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} height 'unsigned int &__restrict'
|
|
// CHECK-NEXT: HLSLParamModifierAttr {{.*}} out
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} numberOfLevels 'unsigned int &__restrict'
|
|
// CHECK-NEXT: HLSLParamModifierAttr {{.*}} out
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: CallExpr {{.*}}
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '__builtin_hlsl_resource_getdimensions_levels_xy' 'void (__hlsl_resource_t, unsigned int, unsigned int &, unsigned int &, unsigned int &) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'mipLevel' 'unsigned int'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'width' 'unsigned int &__restrict'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'height' 'unsigned int &__restrict'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'numberOfLevels' 'unsigned int &__restrict'
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GetDimensions 'void (out float, out float)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} width 'float &__restrict'
|
|
// CHECK-NEXT: HLSLParamModifierAttr {{.*}} out
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} height 'float &__restrict'
|
|
// CHECK-NEXT: HLSLParamModifierAttr {{.*}} out
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: CallExpr {{.*}}
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '__builtin_hlsl_resource_getdimensions_xy_float' 'void (__hlsl_resource_t, float &, float &) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'width' 'float &__restrict'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'height' 'float &__restrict'
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GetDimensions 'void (unsigned int, out float, out float, out float)'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} mipLevel 'unsigned int'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} width 'float &__restrict'
|
|
// CHECK-NEXT: HLSLParamModifierAttr {{.*}} out
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} height 'float &__restrict'
|
|
// CHECK-NEXT: HLSLParamModifierAttr {{.*}} out
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} numberOfLevels 'float &__restrict'
|
|
// CHECK-NEXT: HLSLParamModifierAttr {{.*}} out
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: CallExpr {{.*}}
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '__builtin_hlsl_resource_getdimensions_levels_xy_float' 'void (__hlsl_resource_t, unsigned int, float &, float &, float &) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(SRV)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]]
|
|
// CHECK-SAME{LITERAL}: [[hlsl::resource_dimension(2D)]]
|
|
// CHECK-SAME: ' lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<vector<element_type, element_count>>' lvalue implicit this
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' lvalue ParmVar {{.*}} 'mipLevel' 'unsigned int'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'width' 'float &__restrict'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'height' 'float &__restrict'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'numberOfLevels' 'float &__restrict'
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} Gather 'vector<element_type, 4> (hlsl::SamplerState, vector<float, 2>)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} Gather 'vector<element_type, 4> (hlsl::SamplerState, vector<float, 2>, vector<int, 2>)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherRed 'vector<element_type, 4> (hlsl::SamplerState, vector<float, 2>)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherRed 'vector<element_type, 4> (hlsl::SamplerState, vector<float, 2>, vector<int, 2>)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherGreen 'vector<element_type, 4> (hlsl::SamplerState, vector<float, 2>)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 1
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherGreen 'vector<element_type, 4> (hlsl::SamplerState, vector<float, 2>, vector<int, 2>)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 1
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherBlue 'vector<element_type, 4> (hlsl::SamplerState, vector<float, 2>)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 2
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherBlue 'vector<element_type, 4> (hlsl::SamplerState, vector<float, 2>, vector<int, 2>)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 2
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherAlpha 'vector<element_type, 4> (hlsl::SamplerState, vector<float, 2>)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 3
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherAlpha 'vector<element_type, 4> (hlsl::SamplerState, vector<float, 2>, vector<int, 2>)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<element_type, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 3
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherCmp 'vector<float, 4> (hlsl::SamplerComparisonState, vector<float, 2>, float)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<float, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather_cmp' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerComparisonState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'CompareValue' 'float'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherCmp 'vector<float, 4> (hlsl::SamplerComparisonState, vector<float, 2>, float, vector<int, 2>)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<float, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather_cmp' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerComparisonState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'CompareValue' 'float'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherCmpRed 'vector<float, 4> (hlsl::SamplerComparisonState, vector<float, 2>, float)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<float, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather_cmp' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerComparisonState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'CompareValue' 'float'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 0
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherCmpGreen 'vector<float, 4> (hlsl::SamplerComparisonState, vector<float, 2>, float)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<float, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather_cmp' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerComparisonState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'CompareValue' 'float'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 1
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherCmpBlue 'vector<float, 4> (hlsl::SamplerComparisonState, vector<float, 2>, float)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<float, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather_cmp' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerComparisonState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'CompareValue' 'float'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 2
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
// CHECK: CXXMethodDecl {{.*}} GatherCmpAlpha 'vector<float, 4> (hlsl::SamplerComparisonState, vector<float, 2>, float, vector<int, 2>)' inline
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Sampler 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Location 'vector<float, 2>'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} CompareValue 'float'
|
|
// CHECK-NEXT: ParmVarDecl {{.*}} Offset 'vector<int, 2>'
|
|
// CHECK-NEXT: CompoundStmt
|
|
// CHECK-NEXT: ReturnStmt
|
|
// CHECK-NEXT: CStyleCastExpr {{.*}} 'vector<float, 4>' <Dependent>
|
|
// CHECK-NEXT: CallExpr {{.*}} '<dependent type>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_gather_cmp' 'void (...) noexcept'
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::Texture2D<{{.*}}>' lvalue implicit this
|
|
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl::SamplerComparisonState' lvalue ParmVar {{.*}} 'Sampler' 'hlsl::SamplerComparisonState'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<float, 2>' lvalue ParmVar {{.*}} 'Location' 'vector<float, 2>'
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'float' lvalue ParmVar {{.*}} 'CompareValue' 'float'
|
|
// CHECK-NEXT: IntegerLiteral {{.*}} 'unsigned int' 3
|
|
// CHECK-NEXT: DeclRefExpr {{.*}} 'vector<int, 2>' lvalue ParmVar {{.*}} 'Offset' 'vector<int, 2>'
|
|
// CHECK-NEXT: AlwaysInlineAttr
|
|
|
|
Texture2D<float4> t;
|
|
SamplerState s;
|
|
SamplerComparisonState scs;
|
|
|
|
void main(float2 loc, float cmp) {
|
|
t.Sample(s, loc);
|
|
t.Sample(s, loc, int2(1, 2));
|
|
t.Sample(s, loc, int2(1, 2), 1.0);
|
|
t.SampleBias(s, loc, 0.0);
|
|
t.SampleBias(s, loc, 0.0, int2(1, 2));
|
|
t.SampleBias(s, loc, 0.0, int2(1, 2), 1.0);
|
|
t.SampleGrad(s, loc, float2(0,0), float2(0,0));
|
|
t.SampleGrad(s, loc, float2(0,0), float2(0,0), int2(1, 2));
|
|
t.SampleGrad(s, loc, float2(0,0), float2(0,0), int2(1, 2), 1.0);
|
|
t.SampleLevel(s, loc, 0.0);
|
|
t.SampleLevel(s, loc, 0.0, int2(1, 2));
|
|
t.SampleCmp(scs, loc, cmp);
|
|
t.SampleCmp(scs, loc, cmp, int2(1, 2));
|
|
t.SampleCmp(scs, loc, cmp, int2(1, 2), 1.0f);
|
|
t.SampleCmpLevelZero(scs, loc, cmp);
|
|
t.SampleCmpLevelZero(scs, loc, cmp, int2(1, 2));
|
|
t.CalculateLevelOfDetail(s, loc);
|
|
t.CalculateLevelOfDetailUnclamped(s, loc);
|
|
t.Gather(s, loc);
|
|
uint u_w, u_h, u_l;
|
|
float f_w, f_h, f_l;
|
|
t.GetDimensions(u_w, u_h);
|
|
t.GetDimensions(0, u_w, u_h, u_l);
|
|
t.GetDimensions(f_w, f_h);
|
|
t.GetDimensions(0, f_w, f_h, f_l);
|
|
}
|