C2 has optimization which replaces diamond graphs with CMove (method PhaseIdealLoop::conditional_move()). Each CMove instruction has own Cmp instruction to produce condition flags. But float/double Cmp is expensive and it would be better to use a diamond graph if we have more then one move.
|