Re: expanding i16 operations in presence of an i16 regclass.
On Feb 28, 2008, at 6:31 AM, Sanjiv Gupta wrote:
> Reframing and Reposting my earlier query:
> My target has 16-bit registers for indirect address of data.
> All other registers are 8-bit.
> Therefore I have added regclasses for i8 and i16 types.
> All arithmetic operations (including pointer arithmetic ) are 8-bit
> The problem is that LLVM does not expand i16 operations to i8
> operations in presence of i16 regclass.
> What is the best way to tackle this?
> Do I need to custom lower arithmetic operations during Legalize
> using LowerOperation ( )?
What happens if you mark i16 arithmetic operations expand? i.e.
setOperationAction(ISD::ADD, MVT::i16, Expand);