`Mask::splat` is not const, but it could easily be

Looking through the source, making this const would involve just adding const before 2 functions

Is there a reason it hasn't been done?

EDIT: there doesn't appear to be any const way to construct a Mask, am I missing something?

Generally, for "easily could be const," the rule is to just make it const-unstable iff the type is const-constructible.

I think we can and should eventually remove that iff (so functions which optionally do the operation if a value is present can be const), but that's a for-later policy change.

Ah so all the Mask producing operations should be const unstable then? (As Mask appears to be just a wrapper around Simd with extra invariants) Seeing as Mask is behind the portable_simd feature does it (the unstable const) need it's own feature still? For reference, the Simd equivalents are mostly const

If the functionality it's calling doesn't have a separate constness feature gate, then it doesn't need to gate constness separately.