[PATCH] D120329: [SelectionDAG] Emit calls to __divei4 and friends for division/remainder of large integers

Matthias Gehre via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 11 07:49:35 PST 2022


mgehre-amd marked 7 inline comments as done.
mgehre-amd added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp:3925
+    Type *ArgTy = ArgVT.getTypeForEVT(*DAG.getContext());
+    Entry.Ty = PointerType::get(ArgTy, 0);
+    Entry.IsSExt = false;
----------------
LuoYuanke wrote:
> mgehre-amd wrote:
> > LuoYuanke wrote:
> > > Not sure if the pointer is "i32 *" or "i129 *".
> > The pointer here will be i256* (after i129 is expanded to i256).
> > The `__udivei4` argument is `unsigned int[]` to allow for any bitsize.
> Is it reasonable to have the pointer be "i32 *" so that is align the prototype of `__udivei4`?
I'm not sure whether pointer casts exists in SelectionDAG. I found `DAG.getBitcast`, but from my understanding this only does bitcasts between integer types. (?)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D120329



More information about the llvm-commits mailing list