Rewrite fast-isel integer cast handling to handle more cases, and to be simpler and...
authorEli Friedman <eli.friedman@gmail.com>
Wed, 25 May 2011 23:49:02 +0000 (23:49 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Wed, 25 May 2011 23:49:02 +0000 (23:49 +0000)
commit76927d7303046058c627691bd45d6bff608f49f4
tree9a3d617998bc4863b749c5d75bc0f356a6c1bfdd
parent37d22d92dfd03ddad9a0d42c6cbceeea371b1d03
Rewrite fast-isel integer cast handling to handle more cases, and to be simpler and more consistent.

The practical effects here are that x86-64 fast-isel can now handle trunc from i8 to i1, and ARM fast-isel can handle many more constructs involving integers narrower than 32 bits (including loads, stores, and many integer casts).

rdar://9437928 .

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132099 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/FastISel.cpp
lib/Target/ARM/ARMFastISel.cpp
lib/Target/X86/X86FastISel.cpp
test/CodeGen/ARM/fast-isel.ll
test/CodeGen/X86/fast-isel-i1.ll