Hi,
I got a question about the SDNode “shl”
def shl : SDNode<“ISD::SHL” , SDTIntShiftOp>;
Does it stand for “shift logical” and in what direction does it shift?
How to shift in the other direction?
Thanks.
Hi,
I got a question about the SDNode “shl”
def shl : SDNode<“ISD::SHL” , SDTIntShiftOp>;
Does it stand for “shift logical” and in what direction does it shift?
How to shift in the other direction?
Thanks.
That stands for “shift left”. Shift right is sra for arithmetic shift right and srl for logical shift right. Not sure why we don’t use ashr and lshr like IR. Instead we seem to be using the X86 mnemonic names.
Hi,
I got a question about the SDNode "shl"def shl : SDNode<"ISD::SHL" , SDTIntShiftOp>;
Does it stand for "shift logical" and in what direction does it shift?
shift left
How to shift in the other direction?
ISD::SRA (arithmetic), ISD::SRL (logical)
See https://llvm.org/doxygen/ISDOpcodes_8h_source.html#l00429
Thanks.
Roman.
SHift Left.
The corresponding right shifts are SRA (Shift Right Arithmetic) and SRL (Shift Right Logical). The former shifts in copies of the sign bit at the top, the latter shifts in zeroes.
-Fabian