diff options
author | Juergen Ributzka <juergen@apple.com> | 2014-06-17 14:47:45 +0000 |
---|---|---|
committer | Juergen Ributzka <juergen@apple.com> | 2014-06-17 14:47:45 +0000 |
commit | e35705675f95244cc8b65f35a62809d6e091b018 (patch) | |
tree | 83769aca8d2d868a90ce2166004157f0e57b78fa /llvm/lib/Target | |
parent | 657105e582ed9d3c95ebe9b721aae1f6def92567 (diff) | |
download | bcm5719-llvm-e35705675f95244cc8b65f35a62809d6e091b018.tar.gz bcm5719-llvm-e35705675f95244cc8b65f35a62809d6e091b018.zip |
[FastISel][X86] Fix previous refactoring commit (r211077)
Overlooked that fcmp_une uses an "or" instead of an "and" for combining the
flags.
llvm-svn: 211104
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/X86/X86FastISel.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86FastISel.cpp b/llvm/lib/Target/X86/X86FastISel.cpp index 80cc99bb80c..6a4a467f6a9 100644 --- a/llvm/lib/Target/X86/X86FastISel.cpp +++ b/llvm/lib/Target/X86/X86FastISel.cpp @@ -1049,9 +1049,9 @@ bool X86FastISel::X86SelectCmp(const Instruction *I) { return false; // FCMP_OEQ and FCMP_UNE cannot be checked with a single instruction. - static unsigned SETFOpcTable[2][2] = { - { X86::SETEr, X86::SETNPr }, - { X86::SETNEr, X86::SETPr } + static unsigned SETFOpcTable[2][3] = { + { X86::SETEr, X86::SETNPr, X86::AND8rr }, + { X86::SETNEr, X86::SETPr, X86::OR8rr } }; unsigned *SETFOpc = nullptr; switch (CI->getPredicate()) { @@ -1071,7 +1071,7 @@ bool X86FastISel::X86SelectCmp(const Instruction *I) { FlagReg1); BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(SETFOpc[1]), FlagReg2); - BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(X86::AND8rr), + BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(SETFOpc[2]), ResultReg).addReg(FlagReg1).addReg(FlagReg2); UpdateValueMap(I, ResultReg); return true; |