diff --git a/.pick_status.json b/.pick_status.json index d14e8e6158a..bf0a21a8031 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1994,7 +1994,7 @@ "description": "aco: fix labelling of s_not with constant", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "dfaa3c0af69ab035cb825943b1cee0f60272010e", "notes": null diff --git a/src/amd/compiler/aco_optimizer.cpp b/src/amd/compiler/aco_optimizer.cpp index fa9c34a68b6..113927ea188 100644 --- a/src/amd/compiler/aco_optimizer.cpp +++ b/src/amd/compiler/aco_optimizer.cpp @@ -2003,7 +2003,8 @@ label_instruction(opt_ctx& ctx, aco_ptr& instr) break; case aco_opcode::s_not_b32: case aco_opcode::s_not_b64: - if (ctx.info[instr->operands[0].tempId()].is_uniform_bool()) { + if (!instr->operands[0].isTemp()) { + } else if (ctx.info[instr->operands[0].tempId()].is_uniform_bool()) { ctx.info[instr->definitions[0].tempId()].set_uniform_bitwise(); ctx.info[instr->definitions[1].tempId()].set_scc_invert( ctx.info[instr->operands[0].tempId()].temp);