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. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190515/53abe00f/attachment.html>
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. ~Craig On Wed, May 15, 2019 at 1:03 PM Josh Sharp via llvm-dev < llvm-dev at lists.llvm.org> wrote:> 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. > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190515/3f396a9b/attachment.html>
On Wed, May 15, 2019 at 11:03 PM Josh Sharp via llvm-dev <llvm-dev at lists.llvm.org> wrote:> > 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.> _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-devOn Wed, May 15, 2019 at 11:03 PM Josh Sharp via llvm-dev <llvm-dev at lists.llvm.org> wrote:> > 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. > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
On 5/15/2019 1:03 PM, Josh Sharp via llvm-dev wrote:> 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?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