Go to file
Andrea Di Biagio 6c7d70469c [X86][AVX] Fix wrong lowering of VPERM2X128 nodes
There were cases where the backend computed a wrong permute mask for a VPERM2X128 node.

Example:
\code
define <8 x float> @foo(<8 x float> %a, <8 x float> %b) {
  %shuffle = shufflevector <8 x float> %a, <8 x float> %b, <8 x i32> <i32 undef, i32 undef, i32 6, i32 7, i32 undef, i32 undef, i32 6, i32 7>
  ret <8 x float> %shuffle
}
\code end

Before this patch, llc (with -mattr=+avx) emitted the following vperm2f128:
  vperm2f128 $0, %ymm0, %ymm0, %ymm0  # ymm0 = ymm0[0,1,0,1]

With this patch, llc emits a vperm2f128 with a correct permute mask:
  vperm2f128 $17, %ymm0, %ymm0, %ymm0  # ymm0 = ymm0[2,3,2,3]

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

llvm-svn: 231601
2015-03-08 16:28:47 +00:00
clang Make constant static variables const so they can go into a read-only section 2015-03-08 16:06:46 +00:00
clang-tools-extra Renamed function to avoid confusion about purpose. 2015-03-06 00:39:42 +00:00
compiler-rt Adding sanitizer_symbolizer_win.h to CMakeLists.txt 2015-03-07 11:04:36 +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 Fix bitselect for float/double types v2 2015-03-05 15:31:05 +00:00
libcxx Oops. This arg is passed, just ignored. 2015-03-06 18:51:25 +00:00
libcxxabi Unwind: remove unnecessary check 2015-03-07 22:21:31 +00:00
lld PECOFF: Fix off-by-one error. 2015-03-08 03:23:43 +00:00
lldb Fix whitespace on Python SWIG wrapper 2015-03-08 16:24:30 +00:00
llgo [llgo] Disable known failing packages in check-libgo 2015-03-06 02:49:07 +00:00
llvm [X86][AVX] Fix wrong lowering of VPERM2X128 nodes 2015-03-08 16:28:47 +00:00
openmp moved Windows-specific flags under the WINDOWS guard in CMake 2015-03-05 17:50:48 +00:00
polly Drop meaningless test case 2015-03-08 16:12:47 +00:00