[InstCombine] Perform C-(X+C2) --> (C-C2)-X transform before using Negator
authorRoman Lebedev <lebedev.ri@gmail.com>
Tue, 3 Nov 2020 12:32:31 +0000 (15:32 +0300)
committerRoman Lebedev <lebedev.ri@gmail.com>
Tue, 3 Nov 2020 13:06:52 +0000 (16:06 +0300)
commitc009d11bdac4a7f4a3a8ae85e42da053828a6f24
treebd8c685a93845caf9523bd7f17b46bfa39f502c0
parente465f9c3036b28bdbdbef03eee8fd022a3b6dcbf
[InstCombine] Perform  C-(X+C2) --> (C-C2)-X  transform before using Negator

In particular, it makes it fire for C=0, because negator doesn't want
to perform that fold since in general it's not beneficial.
llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
llvm/test/Transforms/InstCombine/sub-of-negatible.ll