control divergence

say I have 3 share memory array: a b c. I am not sure if following thread arrangement will cause control divergence or not,

if (threadIdx < 64)

{

    if (threadIdx == 1)

        c[threadIdx] += a[threadIdx]*a[threadIdx];

    else

        c[threadIdx] += a[threadIdx]*b[threadIdx];

}

if it does, how bad is it gonna affect performance? is there any efficient way to handle the problem? thanks

say I have 3 share memory array: a b c. I am not sure if following thread arrangement will cause control divergence or not,

if (threadIdx < 64)

{

    if (threadIdx == 1)

        c[threadIdx] += a[threadIdx]*a[threadIdx];

    else

        c[threadIdx] += a[threadIdx]*b[threadIdx];

}

if it does, how bad is it gonna affect performance? is there any efficient way to handle the problem? thanks