Miguel Inigo J. Manalac via llvm-dev
2020-Feb-27 02:57 UTC
[llvm-dev] Shift operations for Backend target
Hello LLVM-Dev, I am currently implementing the shift operations for our backend and noticed that there are no shift right/left with carry in the LLVM Language Reference Manual. Is this because it is safe to assume that the shift with carry instructions are only carried out when a shift instruction is expanded? If that is not the case, are there other reasons why there is no IR instruction equivalent for shift with carry instructions? Thank you in advance for your help! Sincerely, Miguel Inigo J. Manalac (1852) JAPANESE: ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ENGLISH: This e-mail is intended for the person(s) to which it is addressed. If you have received it by mistake, please notify the sender and delete the received email. In addition, our company shall not assume any responsibility even if it causes any inconvenience, such as loss of mail, inconsistencies, delays, etc., due to the inclusion of computer viruses. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200227/4c09df83/attachment.html>
Matt Arsenault via llvm-dev
2020-Feb-27 03:24 UTC
[llvm-dev] Shift operations for Backend target
> On Feb 26, 2020, at 21:57, Miguel Inigo J. Manalac via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Hello LLVM-Dev, > > I am currently implementing the shift operations for our backend and noticed that there are no shift right/left with carry in the LLVM Language Reference Manual. Is this because it is safe to assume that the shift with carry instructions are only carried out when a shift instruction is expanded? If that is not the case, are there other reasons why there is no IR instruction equivalent for shift with carry instructions?The IR is intended to be a fairly minimal set of higher level operations which are easier for frontends and the optimizers to understand. Low level shift implementation details are only relevant in codegen. SelectionDAG defines SHL_PARTS/SRA_PARTS/SRL_PARTS to help with target shift legalization -Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200226/50fb3eb5/attachment.html>