int ret;
 
                ret = build_insn(insn, ctx);
-
-               if (ctx->image == NULL)
-                       ctx->offset[i] = ctx->idx;
-
                if (ret > 0) {
                        i++;
+                       if (ctx->image == NULL)
+                               ctx->offset[i] = ctx->idx;
                        continue;
                }
+               if (ctx->image == NULL)
+                       ctx->offset[i] = ctx->idx;
                if (ret)
                        return ret;
        }
 
                { },
                { { 0, 1 } },
        },
+       {
+               /* Mainly testing JIT + imm64 here. */
+               "JMP_JGE_X: ldimm64 test 1",
+               .u.insns_int = {
+                       BPF_ALU32_IMM(BPF_MOV, R0, 0),
+                       BPF_LD_IMM64(R1, 3),
+                       BPF_LD_IMM64(R2, 2),
+                       BPF_JMP_REG(BPF_JGE, R1, R2, 2),
+                       BPF_LD_IMM64(R0, 0xffffffffffffffffUL),
+                       BPF_LD_IMM64(R0, 0xeeeeeeeeeeeeeeeeUL),
+                       BPF_EXIT_INSN(),
+               },
+               INTERNAL,
+               { },
+               { { 0, 0xeeeeeeeeU } },
+       },
+       {
+               "JMP_JGE_X: ldimm64 test 2",
+               .u.insns_int = {
+                       BPF_ALU32_IMM(BPF_MOV, R0, 0),
+                       BPF_LD_IMM64(R1, 3),
+                       BPF_LD_IMM64(R2, 2),
+                       BPF_JMP_REG(BPF_JGE, R1, R2, 0),
+                       BPF_LD_IMM64(R0, 0xffffffffffffffffUL),
+                       BPF_EXIT_INSN(),
+               },
+               INTERNAL,
+               { },
+               { { 0, 0xffffffffU } },
+       },
+       {
+               "JMP_JGE_X: ldimm64 test 3",
+               .u.insns_int = {
+                       BPF_ALU32_IMM(BPF_MOV, R0, 1),
+                       BPF_LD_IMM64(R1, 3),
+                       BPF_LD_IMM64(R2, 2),
+                       BPF_JMP_REG(BPF_JGE, R1, R2, 4),
+                       BPF_LD_IMM64(R0, 0xffffffffffffffffUL),
+                       BPF_LD_IMM64(R0, 0xeeeeeeeeeeeeeeeeUL),
+                       BPF_EXIT_INSN(),
+               },
+               INTERNAL,
+               { },
+               { { 0, 1 } },
+       },
        /* BPF_JMP | BPF_JNE | BPF_X */
        {
                "JMP_JNE_X: if (3 != 2) return 1",