diff options
author | Michael Kuperstein <michael.m.kuperstein@intel.com> | 2015-12-31 09:45:16 +0000 |
---|---|---|
committer | Michael Kuperstein <michael.m.kuperstein@intel.com> | 2015-12-31 09:45:16 +0000 |
commit | d36e24a1662aa539315651d66ed0698a9e0f81f8 (patch) | |
tree | 65d4a855e410a4c289c132702d897d0ec6d97345 /clang/lib/Basic/Targets.cpp | |
parent | af6569afd23bb0bbf1ae6c6a9eaa3a274ff5a853 (diff) | |
download | bcm5719-llvm-d36e24a1662aa539315651d66ed0698a9e0f81f8.tar.gz bcm5719-llvm-d36e24a1662aa539315651d66ed0698a9e0f81f8.zip |
[X86] Avoid folding scalar loads into unary sse intrinsics
Not folding these cases tends to avoid partial register updates:
sqrtss (%eax), %xmm0
Has a partial update of %xmm0, while
movss (%eax), %xmm0
sqrtss %xmm0, %xmm0
Has a clobber of the high lanes immediately before the partial update,
avoiding a potential stall.
Given this, we only want to fold when optimizing for size.
This is consistent with the patterns we already have for some of
the fp/int converts, and in X86InstrInfo::foldMemoryOperandImpl()
Differential Revision: http://reviews.llvm.org/D15741
llvm-svn: 256671
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
0 files changed, 0 insertions, 0 deletions