}
                break;
 branch_ku:
-               is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32;
-               /* clfi or clgfi %dst,imm */
-               EMIT6_IMM(is_jmp32 ? 0xc20f0000 : 0xc20e0000,
-                         dst_reg, imm);
-               if (!is_first_pass(jit) &&
-                   can_use_rel(jit, addrs[i + off + 1])) {
-                       /* brc mask,off */
-                       EMIT4_PCREL_RIC(0xa7040000,
-                                       mask >> 12, addrs[i + off + 1]);
-               } else {
-                       /* brcl mask,off */
-                       EMIT6_PCREL_RILC(0xc0040000,
-                                        mask >> 12, addrs[i + off + 1]);
-               }
-               break;
+               /* lgfi %w1,imm (load sign extend imm) */
+               src_reg = REG_1;
+               EMIT6_IMM(0xc0010000, src_reg, imm);
+               goto branch_xu;
 branch_xs:
                is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32;
                if (!is_first_pass(jit) &&