Significant performance loss after simple UV modification.

Hello. I’ve noticed performance loss when I pass to some PS method modified texcoord which are used inside with Texture2D.SampleLevel. And I’m not talking about dependant texture read. It is noticeable when I modify one of texture coordinates just by adding simple constant value. Some pseudo code below

float4 ReadPixel(float2 uv, Texture2D tex)
{
    ....
    float4 ret = tex.SampleLevel(s0,uv,0);
    if(uv.y>0.5)
    {
       ret += tex.SampleLevel(s0,uv+constOffset,0);
       ret*=0.5;
    }
    .....
}

//call 1
float4 pix = ReadPixel(iTex0,someTex);

//call 2
float4 pix = ReadPixel(float2(iTex0.x,iTex0.y+0.01),someTex);

With ‘call 1’ in my PS my framerate is over 10% higher than with ‘call 2’ (66 fps to 58 fps). Of course this shader is much complicated and it’s is used only for 2 streams (other 3 are using different and even more complicated shader) but for some reason such modification have such impact on performance of a whole system. What’s more, when I started to remove offsets in other PSs, framerate was going higher and higher. System is using SM 5.0 with dynamic linkage and it is just couple of expensive PSs and simple VS. It is used for video filtering. Non of my textures are power of 2. I’m using latest drivers and 760GTX. Same code on R9 280X is much faster (87 FPS vs 58 on 760GTX) and I didn’t notice such influence on performance on AMD. I don’t believe that nvidia is handling such cases so bad, but I don’t have any clue now what can be wrong. Removing such offsets (or changing card ;) ) is not an option. Thanks in advance for any help.