Go to file
Chandler Carruth 12bbf7d922 [x86] Back out a bad choice about lowering v4i64 and pave the way for
a more sane approach to AVX2 support.

Fundamentally, there is no useful way to lower integer vectors in AVX.
None. We always end up with a VINSERTF128 in the end, so we might as
well eagerly switch to the floating point domain and do everything
there. This cleans up lots of weird and unlikely to be correct
differences between integer and floating point shuffles when we only
have AVX1.

The other nice consequence is that by doing things this way we will make
it much easier to write the integer lowering routines as we won't need
to duplicate the logic to check for AVX vs. AVX2 in each one -- if we
actually try to lower a 256-bit vector as an integer vector, we have
AVX2 and can rely on it. I think this will make the code much simpler
and more comprehensible.

Currently, I've disabled *all* support for AVX2 so that we always fall
back to AVX. This keeps everything working rather than asserting. That
will go away with the subsequent series of patches that provide
a baseline AVX2 implementation.

Please note, I'm going to implement AVX2 *without access to hardware*.
That means I cannot correctness test this path. I will be relying on
those with access to AVX2 hardware to do correctness testing and fix
bugs here, but as a courtesy I'm trying to sketch out the framework for
the new-style vector shuffle lowering in the context of the AVX2 ISA.

llvm-svn: 218228
2014-09-22 00:32:15 +00:00
clang Fix bugs in cpuid.h. 2014-09-20 01:31:09 +00:00
clang-tools-extra run-clang-tidy.py: don't fail when running without -checks=. 2014-09-22 00:07:07 +00:00
compiler-rt [UBSan] Introduce more flexible __ubsan_default_options function instead of UBSAN_DEFAULT_OPTIONS compile definition 2014-09-19 18:54:52 +00:00
debuginfo-tests relax testcase for LLDB output format compatibility. 2014-03-19 23:06:18 +00:00
libclc Remove more redundant semi-colons 2014-09-18 09:23:40 +00:00
libcxx Support newlib as libc++'s C library [locale part] 2014-09-19 20:09:12 +00:00
libcxxabi Adding ABI support for __cxa_throw_bad_array_new_length. 2014-09-11 17:26:43 +00:00
lld Modified per David Blakie suggestion. 2014-09-21 05:07:44 +00:00
lldb Enable libcxx map test on FreeBSD again 2014-09-21 02:24:01 +00:00
llvm [x86] Back out a bad choice about lowering v4i64 and pave the way for 2014-09-22 00:32:15 +00:00
openmp Fix a crash that occurred under obscure circumstances during library shutdown 2014-09-03 11:34:33 +00:00
polly [Fix] Allow pointer types as access elements and compare them correctly 2014-09-19 08:49:02 +00:00