From 095415cdf716e2f4311d07e01f2c279518c140aa Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 2 Sep 2022 22:53:59 -0400 Subject: [PATCH] agx: Fix float copyprop of neg(neg) case They should cancel each other. Fixes: dEQP-GLES2.functional.shaders.random.basic_expression.combined.0 Fixes: 28801b48493 ("agx: Add forward optimizing pass for fmov") Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/compiler/agx_optimizer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/asahi/compiler/agx_optimizer.c b/src/asahi/compiler/agx_optimizer.c index 4cb3f0995e7..b63bc178e2e 100644 --- a/src/asahi/compiler/agx_optimizer.c +++ b/src/asahi/compiler/agx_optimizer.c @@ -81,11 +81,12 @@ agx_is_fmov(agx_instr *def) static agx_index agx_compose_float_src(agx_index to, agx_index from) { - if (to.abs) + if (to.abs) { from.neg = false; + from.abs = true; + } - from.abs |= to.abs; - from.neg |= to.neg; + from.neg ^= to.neg; return from; }