The "base+offsets" variants of gather decompose the integer offsets into compile-time constant and compile-time unknown elements. (The coalescing optimization, then, depends on this decomposition being done well--having as much as possible in the constant component.) We now make multiple efforts to improve this decomposition as we run optimization passes; in some cases we're able to move more over to the constant side than was first possible. This in particular fixes issue #276, a case where coalescing was expected but didn't actually happen.
159 KiB
159 KiB