When we check the type legality of assigning a given LLT to a register class, we compare the LLT equivalents of the MVTs assigned to the register class to the given LLT. However since no MVTs match to the pointer LLTs, we always return false when given a pointer LLT - even if the type size and shape is legal for the register class.
This patch simply uses the non-pointer LLT equivalent to compare against the LLT equivalents of the MVTs assigned to the register class instead. Thus we can report pointer types as legal for register classes when their size and shape is legal.