[PATCH] D65447: GlobalISel: Lower scalarizing unmerge of a vector to shifts

Daniel Sanders via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 30 18:59:36 PDT 2019


dsanders accepted this revision.
dsanders added a comment.
This revision is now accepted and ready to land.

This makes sense to me. LGTM

> I also have a growing feeling that we're missing a bitcast legalize action.

I assume the definition of that would be something like:

  %1:(x) = OP %0:(x)

to

  %2:(y) = G_BITCAST %0:(x)
  %3:(y) = NEW_OP %2:(y)
  %1:(x) = G_BITCAST %3:(y)

and is somewhat similar in principle to lower but sidesteps instead of simplifying, or alternatively is somewhat like libcall but injects code inline instead of calling.

I can't think of a place I'd want to use it over one of the current actions but it sounds like it ought to be useful. Maybe for doing pointer operations using scalar operations? Do you have anything specific in mind?


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

https://reviews.llvm.org/D65447





More information about the llvm-commits mailing list