From 18bb64fd3a7cb9321681db60bd2f734216afd41a Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 2 Sep 2022 22:51:47 -0400 Subject: [PATCH] agx: Add more unit tests for float copyprop Would have caught the bug fixed by the previous commit. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/compiler/test/test-optimizer.cpp | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/asahi/compiler/test/test-optimizer.cpp b/src/asahi/compiler/test/test-optimizer.cpp index 338a9596ae6..1651142a123 100644 --- a/src/asahi/compiler/test/test-optimizer.cpp +++ b/src/asahi/compiler/test/test-optimizer.cpp @@ -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));