On Thu, Nov 30, 2017 at 06:43:09PM -0700, Jeff Law wrote: > > Writing > > > > long hi = src[0]; > > hi /= 16; > > > > also helps, the extra &15 comes from extending from unsigned char to > > long. I don't know how easy/hard it is to improve, but I am sure it is > > more likely to happen if you file an issue in bugzilla ;-) > Certainly more likely to get addressed if a bug is filed ;-) > > This is actually an RTL issue AFAICT. So it's going to be tougher to > fix -- lack of range information and the dataflow is going to make it > tough for the combiner to do anything. Power has this same problem all over the place. I'm looking to improve it but it is not a simple problem. GCC 9, perhaps. Segher