diff options
| author | Craig Topper <craig.topper@gmail.com> | 2012-01-13 08:32:21 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2012-01-13 08:32:21 +0000 |
| commit | b1c2ebf6ee1f81ce23123a64b39f8b2e6955f9a0 (patch) | |
| tree | 06d40d2c6ff2c866f8399fe220ff896218bfa155 /llvm/lib | |
| parent | cb7e13d7c0f6b2c88020a21b0a0e1417f02969f6 (diff) | |
| download | bcm5719-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.cpp | 9 |
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()) |

