No assumptions are necessary. It tests if two bit patterns are identical.
When you use only the basic branching instructions sometimes you have to implement an if-else structure with the false branch immediately following the conditional branch. This is not how high level programming languages do it and this sometimes is awkward. Here is a program fragment that is to add the value in register $t0 to register $t2 (if $t0 is even) and to $t1 (if $t0 is odd):
lw $t0,val # $t0 has the value andi $t8,$t0,1 # one's place is zero or one ____ $t8,odd # if even addu $t2,$t0,$t0 # add to even sum b endif odd: # else addu $t1,$t0,$t0 # add to odd sum endif:
The unconditional branch instruction is used at the bottom of the true branch of the if-else.