Not all targets have efficient ISel code generation for select instructions.
authorNadav Rotem <nrotem@apple.com>
Sun, 2 Sep 2012 12:10:19 +0000 (12:10 +0000)
committerNadav Rotem <nrotem@apple.com>
Sun, 2 Sep 2012 12:10:19 +0000 (12:10 +0000)
commit9f40cb32ac31283f8636d516e7b10f3ad921955c
tree975488b92abdc8d73e2313554cff5e927e5f48f7
parent7de7078933292b0487f1f39f539bece922e3dde5
Not all targets have efficient ISel code generation for select instructions.
For example, the ARM target does not have efficient ISel handling for vector
selects with scalar conditions. This patch adds a TLI hook which allows the
different targets to report which selects are supported well and which selects
should be converted to CF duting codegen prepare.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163093 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/TargetLowering.h
lib/Target/ARM/ARMISelLowering.h
lib/Transforms/Scalar/CodeGenPrepare.cpp
test/CodeGen/ARM/2012-08-30-select.ll