summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2012-01-13 08:32:21 +0000
committerCraig Topper <craig.topper@gmail.com>2012-01-13 08:32:21 +0000
commitb1c2ebf6ee1f81ce23123a64b39f8b2e6955f9a0 (patch)
tree06d40d2c6ff2c866f8399fe220ff896218bfa155 /llvm/lib
parentcb7e13d7c0f6b2c88020a21b0a0e1417f02969f6 (diff)
downloadbcm5719-llvm-b1c2ebf6ee1f81ce23123a64b39f8b2e6955f9a0.tar.gz
bcm5719-llvm-b1c2ebf6ee1f81ce23123a64b39f8b2e6955f9a0.zip
use v8i32 as optimal mem type over v8f32 if AVX2 is enabled. Similar to SSE2 vs SSE1.
llvm-svn: 148109
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index cdeee0ba874..b5c3c0980bd 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -1327,9 +1327,12 @@ X86TargetLowering::getOptimalMemOpType(uint64_t Size,
((DstAlign == 0 || DstAlign >= 16) &&
(SrcAlign == 0 || SrcAlign >= 16))) &&
Subtarget->getStackAlignment() >= 16) {
- if (Subtarget->hasAVX() &&
- Subtarget->getStackAlignment() >= 32)
- return MVT::v8f32;
+ if (Subtarget->getStackAlignment() >= 32) {
+ if (Subtarget->hasAVX2())
+ return MVT::v8i32;
+ if (Subtarget->hasAVX())
+ return MVT::v8f32;
+ }
if (Subtarget->hasSSE2())
return MVT::v4i32;
if (Subtarget->hasSSE1())
OpenPOWER on IntegriCloud