[PATCH bpf-next v2 2/2] selftests/bpf: Add test for BPF_JGT on same register

From: KaFai Wan
Date: Sat Oct 25 2025 - 01:33:16 EST


Add a test to verify that conditional jumps using the BPF_JGT opcode on
the same register (e.g., "if r0 > r0") do not trigger verifier BUG
warnings when the register contains a scalar value with range information.

Signed-off-by: KaFai Wan <kafai.wan@xxxxxxxxx>
---
.../selftests/bpf/progs/verifier_bounds.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/tools/testing/selftests/bpf/progs/verifier_bounds.c b/tools/testing/selftests/bpf/progs/verifier_bounds.c
index 0a72e0228ea9..1536235c3e87 100644
--- a/tools/testing/selftests/bpf/progs/verifier_bounds.c
+++ b/tools/testing/selftests/bpf/progs/verifier_bounds.c
@@ -1709,4 +1709,22 @@ __naked void jeq_disagreeing_tnums(void *ctx)
: __clobber_all);
}

+SEC("socket")
+__description("JGT on same register")
+__success __log_level(2)
+__retval(0)
+__naked void jgt_same_register(void *ctx)
+{
+ asm volatile(" \
+ call %[bpf_get_prandom_u32]; \
+ w8 = 0x80000000; \
+ r0 &= r8; \
+ if r0 > r0 goto +1; \
+ r0 = 0; \
+ exit; \
+" :
+ : __imm(bpf_get_prandom_u32)
+ : __clobber_all);
+}
+
char _license[] SEC("license") = "GPL";
--
2.43.0