[PATCH] D107091: [Lanai] implement wide immediate support

whitequark via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 10 03:55:50 PDT 2021


This revision was automatically updated to reflect the committed changes.
Closed by commit rG788e7b3b8c28: [Lanai] implement wide immediate support (authored by q3k, committed by whitequark).

Changed prior to commit:
  https://reviews.llvm.org/D107091?vs=362826&id=371865#toc

Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D107091

Files:
  llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h
  llvm/test/CodeGen/Lanai/lowering-128.ll


Index: llvm/test/CodeGen/Lanai/lowering-128.ll
===================================================================
--- llvm/test/CodeGen/Lanai/lowering-128.ll
+++ llvm/test/CodeGen/Lanai/lowering-128.ll
@@ -11,3 +11,12 @@
   %a = add i128 %x, %y
   ret i128 %a
 }
+
+; CHECK-LABEL: immshift128:
+define i128 @immshift128(i1 %sel) unnamed_addr {
+  %a = add i128 0, 340282366920938463463374007431768209319
+  %b = add i128 0, 340282366920938463463374607431768209320
+  %c = select i1 %sel, i128 %a, i128 %b
+  %d = shl i128 %a, 10
+  ret i128 %d
+}
Index: llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h
===================================================================
--- llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h
+++ llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h
@@ -52,6 +52,16 @@
   InstructionCost getIntImmCost(const APInt &Imm, Type *Ty,
                                 TTI::TargetCostKind CostKind) {
     assert(Ty->isIntegerTy());
+    unsigned BitSize = Ty->getPrimitiveSizeInBits();
+    // There is no cost model for constants with a bit size of 0. Return
+    // TCC_Free here, so that constant hoisting will ignore this constant.
+    if (BitSize == 0)
+      return TTI::TCC_Free;
+    // No cost model for operations on integers larger than 64 bit implemented
+    // yet.
+    if (BitSize > 64)
+      return TTI::TCC_Free;
+
     if (Imm == 0)
       return TTI::TCC_Free;
     if (isInt<16>(Imm.getSExtValue()))


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D107091.371865.patch
Type: text/x-patch
Size: 1446 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210910/90471716/attachment.bin>


More information about the llvm-commits mailing list