diff --git a/src/panfrost/bifrost/ISA.xml b/src/panfrost/bifrost/ISA.xml
index d64b4c1d3f6..c4a8c941740 100644
--- a/src/panfrost/bifrost/ISA.xml
+++ b/src/panfrost/bifrost/ISA.xml
@@ -8253,6 +8253,8 @@
aand
aor
axor
+ axchg
+ acmpxchg
diff --git a/src/panfrost/bifrost/bir.c b/src/panfrost/bifrost/bir.c
index 45b34badf91..86e42fa7a8c 100644
--- a/src/panfrost/bifrost/bir.c
+++ b/src/panfrost/bifrost/bir.c
@@ -86,9 +86,9 @@ bi_count_staging_registers(const bi_instr *ins)
unsigned
bi_count_read_registers(const bi_instr *ins, unsigned s)
{
- /* ATOM reads 1 but writes 2 */
+ /* ATOM reads 1 but writes 2. Exception for ACMPXCHG */
if (s == 0 && ins->op == BI_OPCODE_ATOM_RETURN_I32)
- return 1;
+ return (ins->atom_opc == BI_ATOM_OPC_ACMPXCHG) ? 2 : 1;
else if (s == 0 && bi_opcode_props[ins->op].sr_read)
return bi_count_staging_registers(ins);
else if (s == 4 && ins->op == BI_OPCODE_BLEND)