Q:

efficient evaluation of max(a,b) inside loop c.f.  branch prediction? 

What is an efficient way to calculate the maximum of 2 floats inside a for loop in C without using a logic statement which might stall the pipeline such as a > b ?  a : b? 
I am working with huge 3D arrays and have tons of loop iterations. 

A:

Check what your compiler outputs, it's probably "optimal" already.  For instance, 
float foo(float a, float b)
{
    return (a>b?a:b);
}

Compiled with GCC 4.5, -O3, generates this assembly on x86_64:
Disassembly of section .text:

0000000000000000 <foo>:
   0:   f3 0f 5f c1             maxss  %xmm1,%xmm0
   4:   c3                      retq   

i.e. the compiler knows a lot about the instruction set you're targeting, and the semantics of your code.  Let it do its job.