Why IF material node gets converted to A = B ? C : D

Both hardware and compiler are involved:

this one is specific to UE4: