branch predication

In a kernel that I wrote, I have many “if” statements. Most of them are of the form

if ( a !=0 ) { c = b/a };

if ( a > 0 ) {
b = a;

It seems that branch predication can be used to avoid thread divergence when such statements are encountered. Does the compiler do this automatically? Does it provide any verbose output about this? I believe I have verbose output turned on but I don’t seem to have seen this. I am seeing thread divergence in the profiler and I just want to make sure that it is not these statements that are causing it.