[PATCH] D96671: [GlobalISel] Implement narrowScalar for UADDO/USUBO

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 17 11:44:48 PST 2021


arsenm added inline comments.


================
Comment at: llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:4485
 
+  unsigned NumDefs = MI.getNumExplicitDefs();
+  Register Src1 = MI.getOperand(NumDefs).getReg();
----------------
Might as well hard code the 2 here, treating it as unknown is slightly more confusing


================
Comment at: llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp:4489
+  Register CarryDst;
+  if (NumDefs >= 2)
+    CarryDst = MI.getOperand(1).getReg();
----------------
This must be exactly ==, > adds ambiguity


================
Comment at: llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp:898
+  auto Op1 = B.buildUndef(S96);
+  auto UADDO = B.buildInstr(TargetOpcode::G_UADDO, {S96, S1}, {Op0, Op1});
+
----------------
Should have a dedicated buildUAddo


================
Comment at: llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp:935
+  auto Op1 = B.buildUndef(S96);
+  auto USUBO = B.buildInstr(TargetOpcode::G_USUBO, {S96, S1}, {Op0, Op1});
+
----------------
We should have a dedicated buildUSubo


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D96671



More information about the llvm-commits mailing list