memory access optimizations

Hello all,

I had an issue with instcombine.
from TargetLowering.cpp (SimplifySetCC()):

     // If the LHS is '(and load, const)', the RHS is 0,
     // the test is for equality or unsigned, and all 1 bits of the const are
     // in the same partial word, see if we can shorten the load.

to make it short, a little pseudo-code example:
%res = (load i16* addr) and (0x100)
%res = (load i8* addr+1) and (0x1)

Since my target is not byte-addressable (yes, I have been warned : ),
this does not work for me.

So this is just to ask anybody who might know offhand about other places
where this byte-addressability assumption may be an issue to drop me a line,
so I can have a look at it in the first place.
So far I have covered obvoius things like the backend and TargetData for StructLayout,
therefore I would be particularly interested in anything
which typically does not directly concern backend development.

Thank you,