Pointer Vs integer register classes.

Is there any way to keep pointer and integer register classes separate?
My target has two 16-bit registers that can be used to contain address of data in register indirect addressing mode.
I want to specify a register class for 16-bit pointer registers so that these registers can be allocated to pointers , at the same time I want all other interger operations to be expanded to 8-bit operations.
If I specify an i16 type register class for pointers, LLVM does not expand i16 interger operations as it finds Action for these types as Legal.
Should I use MVT::iPTR for adding pointer register class? The comment in ValueTypes.h says that MVT::iPTR should only be used in .td files.