[PATCH] D116574: [RISCV] Materializing constants with 'rori'

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 5 19:39:58 PST 2022


craig.topper added inline comments.


================
Comment at: llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp:149
+  if (TrailingOnes > 0 && TrailingOnes < 64 &&
+      (LeadingOnes + TrailingOnes) > (64 - 12)) {
+    return 64 - TrailingOnes;
----------------
You can drop the curly braces


================
Comment at: llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp:156
+  if (UpperTrailingOnes < 32 &&
+      (UpperTrailingOnes + LowerLeadingOnes) > (64 - 12)) {
+    return 32 - UpperTrailingOnes;
----------------
Drop curly braces


================
Comment at: llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp:335
+  if (Res.size() > 2 && ActiveFeatures[RISCV::FeatureStdExtZbb]) {
+    if (int Rotate = extractRotateInfo(Val)) {
+      RISCVMatInt::InstSeq TmpSeq;
----------------
Use `unsigned` since the function returns `unsigned`


================
Comment at: llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp:337
+      RISCVMatInt::InstSeq TmpSeq;
+      int NegImm12 = (uint64_t)Val >> (64 - Rotate) | (uint64_t)Val << Rotate;
+      TmpSeq.push_back(RISCVMatInt::Inst(RISCV::ADDI, NegImm12));
----------------
Add an assert that verifies isInt<12>(NegImm12).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D116574/new/

https://reviews.llvm.org/D116574



More information about the llvm-commits mailing list