# expected: 0000000000000001, 0000000000000004, 0000000000000008, 000000000000000D, 0000000000000014 .text _start: # Test 1: Equal values (should NOT branch) li x1, 5 li x2, 5 bltu x1, x2, label1 addi x31, x0, 1 # expected path (not taken) label1: # Test 2: x1 < x2 unsigned (should branch) li x1, 5 li x2, 10 bltu x1, x2, label2 addi x31, x31, 2 # skipped if branch taken j label2_end label2: addi x31, x31, 3 # expected path (branch taken) label2_end: # Test 3: x1 > x2 unsigned (should NOT branch) li x1, 10 li x2, 5 bltu x1, x2, label3 addi x31, x31, 4 # expected path (not taken) label3: # Test 4: x1 = 0xFFFFFFFFFFFFFFFF, x2 = 0 (max unsigned vs min unsigned) li x1, -1 # 0xFFFFFFFFFFFFFFFF li x2, 0 bltu x1, x2, label4 addi x31, x31, 5 # expected path (not taken) label4: # Test 5: x1 = 0, x2 = 0xFFFFFFFFFFFFFFFF (min unsigned vs max unsigned) li x1, 0 li x2, -1 bltu x1, x2, label5 addi x31, x31, 6 # skipped if branch taken j label5_end label5: addi x31, x31, 7 # expected path (branch taken) label5_end: # Done nop