Cmm types don't account for registers which can be used for several purposes
As noted in #22296, SIMD registers can be used to hold different kinds of values, for example `xmm1` can hold a `DoubleX2#`, a `FloatX4#`, a `Word32X4#`, an `Int16x8#`, etc.
Currently, in Cmm Lint, we expect to be able to compute the type of a register, but we consider a 128-bit wide floating-point register distinct from a 128-bit wide integer register. This means that Cmm Lint fails when one tries to use `xmm1` except for the one "blessed" purpose (which currently is a vector register for 4 32-bit integers (signed or unsigned)).
We should instead have a different notion which allows registers to serve multiple different purposes.
issue