[PATCH] D86458: GlobalISel: Artifact combine unmerge of unmerge

Amara Emerson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 31 10:33:16 PDT 2020


aemerson added inline comments.


================
Comment at: llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h:548
+      // of an unmerge, this would involve the creation of an equivalent unmerge
+      // to copy back to the original result registers.
+      LegalizeActionStep ActionStep = LI.getAction(
----------------
I'm not sure what point this comment block is trying to get across? What do you mean "equivalent unmerge to copy back..."

```// %0:_(<4 x s16>) = G_FOO
// %1:_(<2 x s16>), %2:_(<2 x s16>) = G_UNMERGE_VALUES %0
// %3:_(s16), %4:_(s16) = G_UNMERGE_VALUES %1
//
// %3:_(s16), %4:_(s16), %5:_(s16), %6:_(s16) = G_UNMERGE_VALUES %0
```
For this case, the new unmerge is what this comment is referring to?


================
Comment at: llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h:569
+      // defs of the source unmerge are also unmerged, we end up with a separate
+      // unmerge for each one.
+      unsigned SrcDefIdx = getDefIndex(*SrcDef, SrcReg);
----------------
Is there a test that shows this case?


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

https://reviews.llvm.org/D86458



More information about the llvm-commits mailing list