This issue supersedes 1147545.
Not all branches are equal especially when creating floating point compares with Java semantics for NaN cases. For example, == is cheaper than != for the DOUBLE_IFCMP operator. When performing optimizations (in particular the use of flipCode in BURS and elsewhere) we should modify the costs to reflect this lack of consistency in cost.