blepseudo
ble
rs1, rs2, labelpseudo
if (rs1 <= rs2) goto label

ble branches when one value is less than or equal to another. The name is branch if less than or equal: ble rs1, rs2, label jumps to the label when rs1 is at most rs2 (less than *or* equal), using signed comparison.

Like bgt, it is a pseudo-instruction built on the operand-swap trick: asking is a less-than-or-equal-to b is the same as asking is b greater-than-or-equal-to a, so the assembler rewrites ble as bge with the operands reversed. No dedicated machine instruction is needed. (See bge for the underlying branch.)

ble is the natural fit for loops and ranges that include their endpoint. A loop meant to run while a counter is at most n — n included — reads cleanly with ble; doing the same with the strict blt would force you to write an awkward n-plus-one. Range checking pairs it with the others: branch away if a value is below the minimum, branch away if above the maximum, and what is left has passed.

The or equal half is the key part of its contract — equal values *do* branch — which makes ble the exact opposite of bgt on the same operands: for any pair, precisely one of them fires. The comparison is signed (values may be negative). Together, blt, bge, bgt, and ble give you all four signed ordering directions in whichever phrasing reads most clearly.

Expands to
bge rs2, rs1, label

A pseudo-instruction: the assembler turns it into the real instruction(s) above.