agx: Fix float copyprop of neg(neg) case

They should cancel each other. Fixes:

   dEQP-GLES2.functional.shaders.random.basic_expression.combined.0

Fixes: 28801b4849 ("agx: Add forward optimizing pass for fmov")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>
(cherry picked from commit 095415cdf7)
This commit is contained in:
Alyssa Rosenzweig
2022-09-02 22:53:59 -04:00
committed by Dylan Baker
parent f0193e09e1
commit 609949fbcf
2 changed files with 5 additions and 4 deletions

View File

@@ -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"
},

View File

@@ -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;
}