From 7895d5b79c84311bc9945f5d36d2be6b09f6eaf8 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 30 Aug 2023 10:10:17 -0400 Subject: [PATCH] agx: Add unit test for cmp+sel fusing Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/compiler/test/test-optimizer.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/asahi/compiler/test/test-optimizer.cpp b/src/asahi/compiler/test/test-optimizer.cpp index f02d8540c61..bc0d84ed081 100644 --- a/src/asahi/compiler/test/test-optimizer.cpp +++ b/src/asahi/compiler/test/test-optimizer.cpp @@ -214,3 +214,22 @@ TEST_F(Optimizer, IfCondition) agx_zero(), 1, AGX_ICOND_UEQ, true), agx_if_fcmp(b, hx, hy, 1, AGX_FCOND_LT, false)); } + +TEST_F(Optimizer, SelectCondition) +{ + CASE32(agx_icmpsel_to(b, out, agx_icmp(b, wx, wy, AGX_ICOND_UEQ, false), + agx_zero(), wz, wx, AGX_ICOND_UEQ), + agx_icmpsel_to(b, out, wx, wy, wx, wz, AGX_ICOND_UEQ)); + + CASE32(agx_icmpsel_to(b, out, agx_icmp(b, wx, wy, AGX_ICOND_UEQ, true), + agx_zero(), wz, wx, AGX_ICOND_UEQ), + agx_icmpsel_to(b, out, wx, wy, wz, wx, AGX_ICOND_UEQ)); + + CASE32(agx_icmpsel_to(b, out, agx_fcmp(b, wx, wy, AGX_FCOND_EQ, false), + agx_zero(), wz, wx, AGX_ICOND_UEQ), + agx_fcmpsel_to(b, out, wx, wy, wx, wz, AGX_FCOND_EQ)); + + CASE32(agx_icmpsel_to(b, out, agx_fcmp(b, wx, wy, AGX_FCOND_LT, true), + agx_zero(), wz, wx, AGX_ICOND_UEQ), + agx_fcmpsel_to(b, out, wx, wy, wz, wx, AGX_FCOND_LT)); +}