Go to file
Simon Pilgrim a50e8d3627 [X86][AVX] Support bit-mask integer shuffles for 256-bit integer vectors
AVX1 doesn't support the shuffling of 256-bit integer vectors. For 32/64-bit elements we get around this by shuffling as float/double but for 8/16-bit elements (assuming they can't widen) we currently just split, shuffle as 128-bit vectors and concatenate the results back.

This patch adds the ability to lower using the bit-mask patterns before defaulting to the splitting behaviour. In some cases this ends up matching what AVX2 would do anyhow or what AVX1 does on the split vectors.

Part 1 of 2

Differential Revision: http://reviews.llvm.org/D17292

llvm-svn: 261081
2016-02-17 10:37:49 +00:00
clang [OPENMP] Fix handling loop-based directives with arrays. 2016-02-17 10:29:05 +00:00
clang-tools-extra [clang-tidy] Fix an assert failure in `modernize-loop-convert`. 2016-02-16 10:36:51 +00:00
compiler-rt [compiler-rt][msan] Ensure initialisation before calling __msan_unpoison 2016-02-17 07:12:18 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Add .gitignore for build directories 2016-02-17 00:27:31 +00:00
libcxx Add some status 2016-02-16 16:05:15 +00:00
libcxxabi [libcxxabi] Teach cxa_demangle about Hexagon's long double size 2016-01-20 14:10:23 +00:00
libunwind [AArch64] Fix libunwind build when using GNU assembler 2016-02-11 21:22:57 +00:00
lld Make getOffset a member function of DynamicReloc<ELFT>. 2016-02-17 06:08:42 +00:00
lldb Revert "Use BKPT instead of UDF for arm/thumb breakpoints" 2016-02-16 15:14:36 +00:00
llgo [llgo] Force exporting __morestack from llgoi 2015-11-27 04:46:46 +00:00
llvm [X86][AVX] Support bit-mask integer shuffles for 256-bit integer vectors 2016-02-17 10:37:49 +00:00
openmp [OMPT] Frame information for openmp taskwait 2016-02-12 12:19:59 +00:00
polly ScopDectect: Allow memory accesses with different element types by default (try 3) 2016-02-16 14:37:24 +00:00