[PATCH] D88422: [GlobalISel] fix widenScalarUnmerge if widen type is not a multiple of destination type

Dominik Montada via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 28 08:15:36 PDT 2020


gargaroff created this revision.
gargaroff added a reviewer: arsenm.
Herald added subscribers: llvm-commits, hiraditya, rovka.
Herald added a project: LLVM.
gargaroff requested review of this revision.
Herald added a subscriber: wdng.

Fix creation of illegal unmerge when widen was requested to a type which
is not a multiple of the destination type. E.g. when trying to widen
an s48 unmerge to s64 the existing code would create an illegal unmerge
from s64 to s48.

Instead, create further unmerges to a GCD type, then use this to remerge
these intermediate results to the actual destinations.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D88422

Files:
  llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
  llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88422.294715.patch
Type: text/x-patch
Size: 5934 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200928/0b8d647a/attachment.bin>


More information about the llvm-commits mailing list