aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86/X86FastISel.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2013-07-17 06:58:23 +0000
committerCraig Topper <craig.topper@gmail.com>2013-07-17 06:58:23 +0000
commit77c95b6b95d14202efb6f4c40a2a2280c3d93ae2 (patch)
treea1a423b0e1b62670c35b61e11b16375c143678dc /lib/Target/X86/X86FastISel.cpp
parent1e65bf2628233e98f2406ec7acc901cd3b504915 (diff)
downloadexternal_llvm-77c95b6b95d14202efb6f4c40a2a2280c3d93ae2.zip
external_llvm-77c95b6b95d14202efb6f4c40a2a2280c3d93ae2.tar.gz
external_llvm-77c95b6b95d14202efb6f4c40a2a2280c3d93ae2.tar.bz2
Teach x86 fast-isel to use AVX opcodes for vector stores when AVX is enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186496 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86FastISel.cpp')
-rw-r--r--lib/Target/X86/X86FastISel.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/Target/X86/X86FastISel.cpp b/lib/Target/X86/X86FastISel.cpp
index 7419822..8c9575c 100644
--- a/lib/Target/X86/X86FastISel.cpp
+++ b/lib/Target/X86/X86FastISel.cpp
@@ -264,24 +264,24 @@ X86FastISel::X86FastEmitStore(EVT VT, unsigned ValReg,
break;
case MVT::v4f32:
if (Aligned)
- Opc = X86::MOVAPSmr;
+ Opc = Subtarget->hasAVX() ? X86::VMOVAPSmr : X86::MOVAPSmr;
else
- Opc = X86::MOVUPSmr;
+ Opc = Subtarget->hasAVX() ? X86::VMOVUPSmr : X86::MOVUPSmr;
break;
case MVT::v2f64:
if (Aligned)
- Opc = X86::MOVAPSmr;
+ Opc = Subtarget->hasAVX() ? X86::VMOVAPSmr : X86::MOVAPSmr;
else
- Opc = X86::MOVUPSmr;
+ Opc = Subtarget->hasAVX() ? X86::VMOVUPSmr : X86::MOVUPSmr;
break;
case MVT::v4i32:
case MVT::v2i64:
case MVT::v8i16:
case MVT::v16i8:
if (Aligned)
- Opc = X86::MOVDQAmr;
+ Opc = Subtarget->hasAVX() ? X86::VMOVDQAmr : X86::MOVDQAmr;
else
- Opc = X86::MOVDQUmr;
+ Opc = Subtarget->hasAVX() ? X86::VMOVDQUmr : X86::MOVDQUmr;
break;
}