diff options
author | Chris Lattner <sabre@nondot.org> | 2007-08-09 19:05:49 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-08-09 19:05:49 +0000 |
commit | a8e4b4bc7bce000129702cb38513bfce8e1fa34c (patch) | |
tree | 762ac44fd875252f8e880def5f34741869ed91ea /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | a05ec4dc525e84292ff6e6ee27e941dd0c67b976 (diff) | |
download | bcm5719-llvm-a8e4b4bc7bce000129702cb38513bfce8e1fa34c.tar.gz bcm5719-llvm-a8e4b4bc7bce000129702cb38513bfce8e1fa34c.zip |
when we see a unaligned load from an insufficiently aligned global or
alloca, increase the alignment of the load, turning it into an aligned load.
This allows us to compile:
#include <xmmintrin.h>
__m128i foo(__m128i x){
static const unsigned int c_0[4] = { 0, 0, 0, 0 };
__m128i v_Zero = _mm_loadu_si128((__m128i*)c_0);
x = _mm_unpacklo_epi8(x, v_Zero);
return x;
}
into:
_foo:
punpcklbw _c_0.5944, %xmm0
ret
.data
.lcomm _c_0.5944,16,4 # c_0.5944
instead of:
_foo:
movdqu _c_0.5944, %xmm1
punpcklbw %xmm1, %xmm0
ret
.data
.lcomm _c_0.5944,16,2 # c_0.5944
llvm-svn: 40971
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions