[InstCombine] powi(x, y) * powi(x, z) -> powi(x, y + z)
authorDávid Bolvanský <david.bolvansky@gmail.com>
Tue, 21 Sep 2021 16:14:04 +0000 (18:14 +0200)
committerDávid Bolvanský <david.bolvansky@gmail.com>
Tue, 21 Sep 2021 16:20:46 +0000 (18:20 +0200)
commitc0fdfc9af2338fa84f1b65dda8f1649c0ec1ebf1
treeab791e57526655f1e83749fcc4de67a8c2b2600a
parent57939309501c33b264b777e04186c7747ebc3de1
[InstCombine] powi(x, y) * powi(x, z) -> powi(x, y + z)

We already have pow(x, y) * pow(x, z) -> pow(x, y + z) transformation, but we are missing same transformation for powi (power is integer).

Requires reassoc.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D109954
llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
llvm/test/Transforms/InstCombine/powi.ll