[InstCombine] allow any pair of bitcasts to be combined
authorSanjay Patel <spatel@rotateright.com>
Sat, 12 Dec 2015 00:33:36 +0000 (00:33 +0000)
committerSanjay Patel <spatel@rotateright.com>
Sat, 12 Dec 2015 00:33:36 +0000 (00:33 +0000)
commit63b29821f9dc8a908ba3bdee27686c71d7343bad
treedcdbd976fce5037b207326db393799c4c0518995
parent8f2bcca5c759d0c46f86b852aa1747768e954d38
[InstCombine] allow any pair of bitcasts to be combined

This change is discussed in D15392 and should allow us to effectively
revert:
http://llvm.org/viewvc/llvm-project?view=revision&revision=255261
if we canonicalize bitcasts ahead of extracts.

It should be safe to convert any pair of bitcasts into a single bitcast,
however, it was mentioned here:
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20110829/127089.html
that we're not allowed to bitcast from an x86_mmx to some other types, but I'm
not seeing any failures from that, and we have regression tests in CodeGen/X86
that appear to cover all of those cases.

Some day we'll get to remove that MMX wart from LLVM IR completely?

Differential Revision: http://reviews.llvm.org/D15468

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255399 91177308-0d34-0410-b5e6-96231b3b80d8
lib/IR/Instructions.cpp
test/Transforms/InstCombine/bitcast-bitcast.ll