[PATCH] D159131: [RISCV][GlobalISel] Select G_ICMP

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 6 17:11:20 PDT 2023


craig.topper added inline comments.


================
Comment at: llvm/lib/Target/RISCV/RISCVGISel.td:24
+def simm12Minus1Nonzero : ImmLeaf<XLenVT, [{
+  return (Imm <= -2049 && Imm < 0) || (Imm > 0 && Imm <= 2046);}]>;
+
----------------
`Imm >= -2049`


================
Comment at: llvm/lib/Target/RISCV/RISCVGISel.td:27
+def simm12Minus1NonzeroNonNeg1 : ImmLeaf<XLenVT, [{
+  return (Imm <= -2049 && Imm < -1) || (Imm > 0 && Imm <= 2046);}]>;
+
----------------
`Imm >= -2049`


================
Comment at: llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/cmp32.mir:797
+    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
+    ; CHECK-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI $x0, -1
+    ; CHECK-NEXT: [[SLTU:%[0-9]+]]:gpr = SLTU [[ADDI]], [[COPY]]
----------------
While this is the code we want for this case, its only work because no negative immediates are being folded for some reason.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D159131



More information about the llvm-commits mailing list