[FastISel][X86] Only fold the cmp into the select when both instructions are in the...
authorJuergen Ributzka <juergen@apple.com>
Wed, 25 Jun 2014 20:06:12 +0000 (20:06 +0000)
committerJuergen Ributzka <juergen@apple.com>
Wed, 25 Jun 2014 20:06:12 +0000 (20:06 +0000)
commitd01f1c4054c73a184d08ed6f5817ad8de4513f3c
treebca7556bf8e448d04b81d11acf64ca5f28b0e288
parent91c39aa6285247aefbf627f4210f7931076bae49
[FastISel][X86] Only fold the cmp into the select when both instructions are in the same basic block.

If the cmp is in a different basic block, then it is possible that not all
operands of that compare have defined registers. This can happen when one of
the operands to the cmp is a load and the load gets folded into the cmp. In
this case FastISel will skip the load instruction and the vreg is never
defined.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211730 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FastISel.cpp
test/CodeGen/X86/fast-isel-select-cmp.ll [new file with mode: 0644]