Thinking that floating-point results should always produce the same result is to some degree misguided.
Most implementations today use 32 bit single precision and 64 bit double precision IEEE 754 floating point arithmetic. You could use long double which is 64 bit, 80 bit or 128 bit depending on the implementation, so that's not going to give identical results. But it gives better results. So you may have a choice between better and identical results. What do you prefer, better or identical? I prefer "better".
Your compiler may make fused multiply-add available or not. If available, it gives you more precision, more speed, and different results. What do you prefer, faster and better, or identical? I prefer "faster and better".
If your results on two implementations are slightly different, that's no problem. If they are massively different, you are lucky (kind of): You just found out that there's a problem with your calculations. If you got results A and B, and they are different, and you have no reason why A or B would be the better result and the other would be wrong, then you now know that your calculations just produce bad results and need to be fixed. With identical results, you would never have known.
You can count yourself lucky if you think that having bad results and knowing it is better than having bad results and not knowing.