summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86FastISel.cpp
diff options
context:
space:
mode:
authorAyman Musa <ayman.musa@intel.com>2017-03-01 10:20:48 +0000
committerAyman Musa <ayman.musa@intel.com>2017-03-01 10:20:48 +0000
commit9b802e4650c5fe5ea0fc273a15536d1d6a67fbf9 (patch)
treec8a3e49801b68ae196769beb06feb7ceddcfd91c /llvm/lib/Target/X86/X86FastISel.cpp
parent9108644dbf54e4727728ab08c8b7e21bfcd12e8c (diff)
downloadbcm5719-llvm-9b802e4650c5fe5ea0fc273a15536d1d6a67fbf9.tar.gz
bcm5719-llvm-9b802e4650c5fe5ea0fc273a15536d1d6a67fbf9.zip
[X86] Fix creating vreg def after use.
llvm-svn: 296601
Diffstat (limited to 'llvm/lib/Target/X86/X86FastISel.cpp')
-rw-r--r--llvm/lib/Target/X86/X86FastISel.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86FastISel.cpp b/llvm/lib/Target/X86/X86FastISel.cpp
index 278d9630745..4a46cb0874e 100644
--- a/llvm/lib/Target/X86/X86FastISel.cpp
+++ b/llvm/lib/Target/X86/X86FastISel.cpp
@@ -2423,17 +2423,22 @@ bool X86FastISel::X86SelectFPExtOrFPTrunc(const Instruction *I,
if (OpReg == 0)
return false;
+ unsigned ImplicitDefReg;
+ if (Subtarget->hasAVX()) {
+ ImplicitDefReg = createResultReg(RC);
+ BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc,
+ TII.get(TargetOpcode::IMPLICIT_DEF), ImplicitDefReg);
+
+ }
+
unsigned ResultReg = createResultReg(RC);
MachineInstrBuilder MIB;
MIB = BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(TargetOpc),
ResultReg);
- if (Subtarget->hasAVX()) {
- unsigned ImplicitDefReg = createResultReg(RC);
- BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc,
- TII.get(TargetOpcode::IMPLICIT_DEF), ImplicitDefReg);
+ if (Subtarget->hasAVX())
MIB.addReg(ImplicitDefReg);
- }
+
MIB.addReg(OpReg);
updateValueMap(I, ResultReg);
return true;
OpenPOWER on IntegriCloud