Teach instcombine to transform a bitcast/(zext|trunc)/bitcast sequence
authorChris Lattner <sabre@nondot.org>
Sat, 8 May 2010 21:50:26 +0000 (21:50 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 8 May 2010 21:50:26 +0000 (21:50 +0000)
commit6745191070503f669b07bc14cd6f7e518bd4d5b0
tree5afeb2bbf1b18c6edcbf2c110169b1353dbdb388
parent7944c21cae06c5124cf1ee1f811d2a13f8e1b939
Teach instcombine to transform a bitcast/(zext|trunc)/bitcast sequence
with a vector input and output into a shuffle vector.  This sort of
sequence happens when the input code stores with one type and reloads
with another type and then SROA promotes to i96 integers, which make
everyone sad.

This fixes rdar://7896024

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103354 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/InstCombine/InstCombineCasts.cpp
test/Transforms/InstCombine/cast.ll