The DAG Combiner finds the widest available integer and vector type and chooses the wider of the two for the merge. If vector types can't be used, it produces an integer type that is as wide. Due to the logic, this type is necessarily wider than the widest legal integer type, so if this is being combined after legalization, the back end will crash.
This patch fixes the logic to use a type of vector width only if vectors can be used.
Test should use opaque pointers