summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86CodeEmitter.cpp
diff options
context:
space:
mode:
authorElena Demikhovsky <elena.demikhovsky@intel.com>2012-05-31 09:20:20 +0000
committerElena Demikhovsky <elena.demikhovsky@intel.com>2012-05-31 09:20:20 +0000
commit602f3a26d68307f8531cadfa53283ac2748fdbed (patch)
tree9ed7b12fc4c1567c7dec85668661cd94edfd9a88 /llvm/lib/Target/X86/X86CodeEmitter.cpp
parent339bb61e32593aa393ceda3c7168c24814a27161 (diff)
downloadbcm5719-llvm-602f3a26d68307f8531cadfa53283ac2748fdbed.tar.gz
bcm5719-llvm-602f3a26d68307f8531cadfa53283ac2748fdbed.zip
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. llvm-svn: 157737
Diffstat (limited to 'llvm/lib/Target/X86/X86CodeEmitter.cpp')
-rw-r--r--llvm/lib/Target/X86/X86CodeEmitter.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86CodeEmitter.cpp b/llvm/lib/Target/X86/X86CodeEmitter.cpp
index d84329f33a3..3079dfa7cf4 100644
--- a/llvm/lib/Target/X86/X86CodeEmitter.cpp
+++ b/llvm/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.
OpenPOWER on IntegriCloud