LDC produces a boolean from a comparison of __vector(s), (v0 == v1).
GDC and DMD error out on that, requiring (v0.array == v1.array) to get the boolean.
I've already updated the few dependencies, all in unittest code, that I had on this LDC-unique behavior, with very little effort. I suspect this would, at most, be a minor portability issue for other SIMD coders as well since you're usually looking for masks or cmov-like functionality out of your conditionals, not scalar booleans.
That said, I am curious: is this behavior intentional or accidental?
A small argument for adopting the DMD/GDC behavior is that any future useful SIMD relOp DIP would probably have to call out a breaking change if you don't.