diff options
author | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2012-05-31 09:20:20 +0000 |
---|---|---|
committer | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2012-05-31 09:20:20 +0000 |
commit | 177cf1e1a3685209ab805f82897902a8d2b61661 (patch) | |
tree | 58479453e7cd6a7ff6cb16b33571e6d96d8b9a31 /lib/Target/X86/X86CodeEmitter.cpp | |
parent | 53b4177df78401da23468f49ad0bc056e9acb627 (diff) | |
download | llvm-177cf1e1a3685209ab805f82897902a8d2b61661.tar.gz llvm-177cf1e1a3685209ab805f82897902a8d2b61661.tar.bz2 llvm-177cf1e1a3685209ab805f82897902a8d2b61661.tar.xz |
Added FMA3 Intel instructions.
I disabled FMA3 autodetection, since the result may differ from expected for some benchmarks.
I added tests for GodeGen and intrinsics.
I did not change llvm.fma.f32/64 - it may be done later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157737 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86CodeEmitter.cpp')
-rw-r--r-- | lib/Target/X86/X86CodeEmitter.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/Target/X86/X86CodeEmitter.cpp b/lib/Target/X86/X86CodeEmitter.cpp index d84329f33a..3079dfa7cf 100644 --- a/lib/Target/X86/X86CodeEmitter.cpp +++ b/lib/Target/X86/X86CodeEmitter.cpp @@ -933,7 +933,10 @@ void Emitter<CodeEmitter>::emitVEXOpcodePrefix(uint64_t TSFlags, } // Classify VEX_B, VEX_4V, VEX_R, VEX_X + unsigned NumOps = Desc->getNumOperands(); unsigned CurOp = 0; + if (NumOps > 1 && Desc->getOperandConstraint(1, MCOI::TIED_TO) != -1) + ++CurOp; switch (TSFlags & X86II::FormMask) { case X86II::MRMInitReg: // Duplicate register. |