Cmm types don't account for registers which can be used for several purposes
As noted in #22296 (closed), 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.