[PATCH] D111497: m68k: Support bit shifts on 64-bit integers
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 10 23:15:51 PST 2022
craig.topper added inline comments.
================
Comment at: llvm/lib/Target/M68k/M68kISelLowering.cpp:3261
+ // Lo = Lo << Shamt
+ // Hi = (Hi << Shamt) | ((Lo >>u 1) >>u (register size - Shamt))
+ // else:
----------------
"register size - ShAmt" -> "register size - 1 - ShAmt" right?
================
Comment at: llvm/lib/Target/M68k/M68kISelLowering.cpp:3272
+ DAG.getNode(ISD::ADD, DL, VT, Shamt, MinusRegisterSize);
+ SDValue RegisterSizeMinus1Shamt =
+ DAG.getNode(ISD::SUB, DL, VT, RegisterSizeMinus1, Shamt);
----------------
This sub can be an xor. See D119411
I don't m68k, does it have an xor with immediate instruction?
================
Comment at: llvm/lib/Target/M68k/M68kISelLowering.cpp:3289
+
+ SDValue Parts[2] = {Lo, Hi};
+ return DAG.getMergeValues(Parts, DL);
----------------
This temporary array is unnecessary. You can write
```
return DAG.getMergeValues({Lo, Hi}, DL);
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D111497/new/
https://reviews.llvm.org/D111497
More information about the llvm-commits
mailing list