[Bug tree-optimization/92233] missed optimisation for multiplication when it's known that at least one of the arguments is 0
glisse at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Oct 26 09:24:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92233
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> ---
(llvm doesn't do it either)
Would some kind of threading be the most natural way to handle this? If the
compiler duplicates the code as
if (a==0) return a*b;
else if (b==0) return a*b;
then it becomes easy to optimize. There could be a heuristic to encourage the
compiler to do that when the test is var == cst and var is used in an operation
that greatly simplifies for cst.
On powerpc64le-linux-gnu (so the 2 tests aren't combined as bit_ior), if I test
test_mul(a,b)==0 in another function, it does simplify to true, with DOM2 doing
the interesting part.
More information about the Gcc-bugs
mailing list