Clear Lowest Set Bit

Encoding

EncodingOperand 1Operand 2
vmVEX.vvvv[w]ModRM.r/m[r]

Description

The BLSR instruction copies from the source operand into the destination operand while, at the same time, clearing (resetting) the lowest set bit.

The operand size is always 32 bits if not in Long Mode. In other words, VEX.W1 is treated as VEX.W0 outside Long Mode.

Operation

public void BLSR(ref U32 dest, U32 src)
{
    dest = src & (src - 1);
}

public void BLSR(ref U64 dest, U64 src)
{
    dest = src & (src - 1);
}

Flags Affected

CF (carry flag)
Set if the source is not zero. Cleared otherwise.
PF (parity flag)
Undefined.
AF (auxiliary flag)
Undefined.
ZF (zero flag)
Set according to the result.
SF (sign flag)
Set according to the result.
OF (overflow flag)
Cleared.

Intrinsics

Exceptions

SIMD Floating-Point

None.

Other Exceptions

VEX Encoded Form: See Type 13 Exception Conditions.