agx: Add more unit tests for float copyprop

Would have caught the bug fixed by the previous commit.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
This commit is contained in:
Alyssa Rosenzweig 2022-09-02 22:51:47 -04:00 committed by Marge Bot
parent 095415cdf7
commit 18bb64fd3a

View file

@ -64,6 +64,15 @@ protected:
agx_index wx, wy, wz, hx;
};
TEST_F(Optimizer, FloatCopyprop)
{
CASE(agx_fadd_to(b, wz, agx_abs(agx_fmov(b, wx)), wy),
agx_fadd_to(b, wz, agx_abs(wx), wy));
CASE(agx_fadd_to(b, wz, agx_neg(agx_fmov(b, wx)), wy),
agx_fadd_to(b, wz, agx_neg(wx), wy));
}
TEST_F(Optimizer, FusedFABSNEG)
{
CASE(agx_fadd_to(b, wz, agx_fmov(b, agx_abs(wx)), wy),
@ -73,6 +82,21 @@ TEST_F(Optimizer, FusedFABSNEG)
agx_fmul_to(b, wz, wx, agx_neg(agx_abs(wx))));
}
TEST_F(Optimizer, FusedFabsAbsorb)
{
CASE(agx_fadd_to(b, wz, agx_abs(agx_fmov(b, agx_abs(wx))), wy),
agx_fadd_to(b, wz, agx_abs(wx), wy));
}
TEST_F(Optimizer, FusedFnegCancel)
{
CASE(agx_fmul_to(b, wz, wx, agx_neg(agx_fmov(b, agx_neg(wx)))),
agx_fmul_to(b, wz, wx, wx));
CASE(agx_fmul_to(b, wz, wx, agx_neg(agx_fmov(b, agx_neg(agx_abs(wx))))),
agx_fmul_to(b, wz, wx, agx_abs(wx)));
}
TEST_F(Optimizer, Copyprop)
{
CASE(agx_fmul_to(b, wz, wx, agx_mov(b, wy)), agx_fmul_to(b, wz, wx, wy));