Patch adds four new GICombineRules for G_ADD:
- G_ADD(x, -cst) -> G_SUB(x, cst)
- G_ADD(x, G_SUB(y, x)) -> y
- G_ADD(G_SUB(y, x), x) -> y
- G_ADD(x, y) -> G_OR(x, y) (iff x and y share no common bits)
Patch additionally adds new combine tests for AArch64 target for these new rules, as well as updating AMDGPU GISel tests. A new GlobalISel/Utils.h helper function was added to check if two vregs have no common bits set.