// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -fsyntax-only -verify -finclude-default-header %s Texture2D Tex; SamplerState Samp; SamplerComparisonState SampCmp; void main() { float2 uv = float2(0.5, 0.5); int2 offset = int2(1, 1); float compare = 0.5; // Gather // Expected: Gather(SamplerState, float2, [int2]) Tex.Gather(Samp, uv); Tex.Gather(Samp, uv, offset); // Invalid Overloads Tex.Gather(Samp); // expected-error {{no matching member function for call to 'Gather'}} Tex.Gather(Samp, uv, offset, 1); // expected-error {{no matching member function for call to 'Gather'}} // Gather variants Tex.GatherRed(Samp, uv); Tex.GatherGreen(Samp, uv, offset); Tex.GatherBlue(Samp, uv); Tex.GatherAlpha(Samp, uv, offset); // GatherCmp // Expected: GatherCmp(SamplerComparisonState, float2, float, [int2]) Tex.GatherCmp(SampCmp, uv, compare); Tex.GatherCmp(SampCmp, uv, compare, offset); // Invalid Overloads Tex.GatherCmp(SampCmp, uv); // expected-error {{no matching member function for call to 'GatherCmp'}} Tex.GatherCmp(SampCmp, uv, compare, offset, 1); // expected-error {{no matching member function for call to 'GatherCmp'}} // GatherCmp variants Tex.GatherCmpRed(SampCmp, uv, compare); Tex.GatherCmpGreen(SampCmp, uv, compare); Tex.GatherCmpBlue(SampCmp, uv, compare, offset); Tex.GatherCmpAlpha(SampCmp, uv, compare); // Type checks // Offset must be int2 (SamplerState fails) Tex.Gather(Samp, uv, Samp); // expected-error {{no matching member function for call to 'Gather'}} // Compare value must be scalar float Tex.GatherCmp(SampCmp, uv, Samp); // expected-error {{no matching member function for call to 'GatherCmp'}} } // expected-note@* 0+{{candidate function not viable}}