Difference in Sine implementation on *some* Android platforms?

I’ve been running around this problem for a day and finally found the root - but not the cause.

I have this shader that generates bands using a Sine function. However, on some Android platforms (OnePlus 7 Pro), the result is unexpected:

I found that the problem is in the result returned by the Sin function at values where it should be 0, returning -0 or +0 depending on platforms.

I would have supposed that enabling full precision float would fix the problem, but it doesn’t.

Is this difference between +0 and -0 to be expected depending on platforms? Or perhaps slightly different implementations of the Sin function at the GPU level?

*edited with embeded images instead of imgur