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