Be more careful when using SSE intrinsics.
authorPeter Griess <pgriess@fb.com>
Sat, 21 Sep 2013 16:40:58 +0000 (11:40 -0500)
committerPeter Griess <pgriess@fb.com>
Tue, 15 Oct 2013 01:47:21 +0000 (18:47 -0700)
commit69b46104294b1cccaeafc2c88a67e9c7f9543962
tree2d7798496247931f3237fc47d0f5173258b9c6b7
parente34bc9cae798da3c01eca891a60d452440e728df
Be more careful when using SSE intrinsics.

Summary:
- Check FOLLY_HAVE_EMMINTRIN_H before #including it in Range.cpp.
- The version of Clang that Mac OS X uses for Xcode is based on GCC 4.2.
It turns out that this does not have a full compliment of SSE2
builtins (e.g. __builtin_ia32_loaddqu is undefined, but
__builtin_ia32_storedqu is). Work around this omission by not
compiling the specialized code on this platform.

@override-unit-failures
Ignore unit test failures as two tests are just sitting in the postponed
state forever. I investigated all the other unit test failures and they
just look like flakey tests.

Test Plan:
- fbconfig -r folly && fbmake runtests
- ./configure && make check on Ubuntu/FC/Mac

Reviewed By: delong.j@fb.com

FB internal diff: D999130
folly/Range.cpp
folly/Range.h