I am working on a target with native 16-bit units addressing.So, for a a[1] reference a a+1 expression should be generated for an i16.

I found this issue discussed before:

*From gohman at  Wed Apr  1 12:37:16 2009*

Not sure if this is the same thing, but SPU has 16 byte memory accesses
only. Byte addressing is then "emulated" in target lowering of load and
store instructions, and it works fairly well. Ofcourse, it is up to the
front end of the compiler to take this into account if efficient code is
desired :slight_smile: