fadd works in 2 stages