The purpose of this patch is to add support for reassociation with unsafe algebra.
I've performed correctness testing on AArch64 with our internal test suite and saw no correctness regressions. I'm currently running correctness against ARMv7.
The performance improvements look good, but I'm unable to share the numbers at this time; I'll see what I can do(, but no promises).
Please have a look!
Chad
Why a local variable above but not here? I don't care deeply about which pattern you use, but I would generally avoid the single-use variable unless things get truly terrible to read...