Go to file
Andrea Di Biagio 84e22b9096 [X86] Teach 'getTargetShuffleMask' how to look through ISD::WrapperRIP when decoding a PSHUFB mask.
The function 'getTargetShuffleMask' already knows how to deal with PSHUFB nodes
where the mask node is a load from constant pool, and the constant pool node
is wrapped by a X86ISD::Wrapper node. This patch extends that logic by teaching
it how to also look through X86ISD::WrapperRIP.

This helps function combineX86ShufflesRecusively to combine more shuffle
sequences containing PSHUFB nodes if we are in RIPRel PIC mode.

Before this change, llc (with -relocation-model=pic -march=x86-64) was unable
to decode a pshufb where the mask was loaded from a constant pool. For example,
the no-op shuffle from test 'x86-fold-pshufb.ll' was not folded into its
operand, so instead of generating a single 'movaps' the backend always
generated a sub-optimal 'movdqa + pshufb' sequence.

Added test x86-fold-pshufb.ll.

llvm-svn: 236863
2015-05-08 15:11:07 +00:00
clang Allow case-insensitive values for -mcpu for ARM and AArch64 2015-05-08 14:50:32 +00:00
clang-tools-extra [clang-tidy] Fix for llvm.org/PR23161 2015-05-08 07:56:24 +00:00
compiler-rt [TSan][MIPS] XFAIL long jump tests for MIPS64 2015-05-08 12:58:03 +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 r600: Use __clc_ldexp on asics that don't implement the intruction 2015-05-06 21:59:30 +00:00
libcxx Replace two naked references of 'std::' with the macro '_VSTD::'. No functionality change. 2015-05-06 12:11:22 +00:00
libcxxabi Disallow conversions from function pointers to void*. 2015-05-01 01:49:37 +00:00
libunwind unwind: add a .clang-format 2015-05-07 19:50:18 +00:00
lld [ARM] Check overflow of R_ARM_THM_JUMP11 2015-05-08 12:45:11 +00:00
lldb Add expectedFailureFreeBSD decorator for buildbot pexpect issue 2015-05-08 14:20:25 +00:00
llgo [llgo] add buildbot-slave config 2015-04-08 01:41:46 +00:00
llvm [X86] Teach 'getTargetShuffleMask' how to look through ISD::WrapperRIP when decoding a PSHUFB mask. 2015-05-08 15:11:07 +00:00
openmp D9306 omp 4.1 async offload support (partial): code changes 2015-05-07 17:41:51 +00:00
polly [cmake] Remove two unused include paths 2015-05-06 12:28:23 +00:00