anchor.diff:                 else if (decoded.funct3 == f3_ORI)   fa_finish_with_Rd(decoded.rd, pack(s_v1 | s_v2));
                  else if (decoded.funct3 == f3_ANDI)  fa_finish_with_Rd(decoded.rd, pack(s_v1 & s_v2));
   
  -               else if ((decoded.funct3 == f3_SLLI) && (instr[31:25] == 7'b000_0000))
  +               else if ((decoded.funct3 == f3_SLLI) && (decoded.imm12_I[11:5] == 7'b000_0000))
                     fa_finish_with_Rd(decoded.rd, (v1 << shamt));
   
   
                  // SRLI
  -               else if ((decoded.funct3 == f3_SRxI) && (instr[31:25] == 7'b000_0000))
  +               else if ((decoded.funct3 == f3_SRxI) && (decoded.imm12_I[11:5] == 7'b000_0000))
                     fa_finish_with_Rd(decoded.rd, (v1 >> shamt));
   
                  // SRAI
  -               else if ((decoded.funct3 == f3_SRxI) && (instr[31:25] == 7'b010_0000))
  +               else if ((decoded.funct3 == f3_SRxI) && (decoded.imm12_I[11:5] == 7'b010_0000))
                     fa_finish_with_Rd(decoded.rd, pack(s_v1 >> shamt));
   
                  else
  
positive.code:                if (   (decoded.funct3 == f3_FENCE)
                     && (decoded.rd == 0)
                     && (decoded.rs1 == 0)
                     && (instr [31:28] == 4'b0)) begin
                                                    fa_finish_with_no_output;
                                                 end
  
                 // FENCE.I
                 else if (   (decoded.funct3 == f3_FENCE_I)
  
negative.code:                            f3_XORI: "xori";
                             f3_ANDI: "andi";
                             f3_SLLI: "slli";
                             f3_SRxI: ((decoded.imm12_I[11:5] == 7'b000_0000) ? "srli" : "srai");
                          endcase,
                          regNameABI[decoded.rd],
                          regNameABI[decoded.rs1],
  