From 609949fbcf1b15c8db8a2ce7fa8f9dd8bb7739a2 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: (cherry picked from commit 095415cdf716e2f4311d07e01f2c279518c140aa) --- .pick_status.json | 2 +- src/asahi/compiler/agx_optimizer.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index a910fd8c063..dd24d4e0a3e 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4522,7 +4522,7 @@ "description": "agx: Fix float copyprop of neg(neg) case", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "28801b4849371e633eb66dd2c802d44dbb9e3304" }, diff --git a/src/asahi/compiler/agx_optimizer.c b/src/asahi/compiler/agx_optimizer.c index ada3afa9be1..2c9471c6373 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; }