Go to file
Bill Schmidt 8da737a18a [PPC64LE] Fix vec_sld semantics for little endian
The vec_sld interface provides access to the vsldoi instruction.
Unlike most of the vec_* interfaces, we do not attempt to change the
generated code for vec_sld based on the endian mode.  It is too
difficult to correctly infer the desired semantics because of
different element types, and the corrected instruction sequence is
expensive, involving loading a permute control vector and performing a
generalized permute.

For GCC, this was implemented as "Don't touch the vec_sld"
implementation.  When it came time for the LLVM implementation, I did
the same thing.  However, this was hasty and incorrect.  In LLVM's
version of altivec.h, vec_sld was previously defined in terms of the
vec_perm interface.  Because vec_perm semantics are adjusted for
little endian, this means that leaving vec_sld untouched causes it to
generate something different for LE than for BE.  Not good.

This patch adjusts the form of vec_perm that is used for vec_sld and
vec_vsldoi, effectively undoing the modifications so that the same
vsldoi instruction will be generated for both BE and LE.

There is an accompanying back-end patch to take care of some small
ripple effects caused by these changes.

llvm-svn: 242297
2015-07-15 15:45:53 +00:00
clang [PPC64LE] Fix vec_sld semantics for little endian 2015-07-15 15:45:53 +00:00
clang-tools-extra docs/conf.py: bump version to 3.8 2015-07-14 23:37:08 +00:00
compiler-rt CFI: Add a default blacklist. 2015-07-15 12:16:25 +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: Implement accurate double precision sqrt v2 2015-07-10 13:37:08 +00:00
libcxx Remove non-ascii characters 2015-07-14 20:45:48 +00:00
libcxxabi Remove include directive for the unused libunwind_ext.h. 2015-07-12 14:47:53 +00:00
libunwind Fix unw_getcontext() return value on AArch64. 2015-06-25 15:12:46 +00:00
lld COFF: Fix base relocations for __imp_ symbols on x86. 2015-07-15 00:25:38 +00:00
lldb Fix another little nit with detach and keep stopped, you have to check 2015-07-15 00:59:25 +00:00
llgo [llgo] update libgo-llgo.so version to match libtool_VERSION 2015-07-15 13:17:04 +00:00
llvm [PPC64LE] Fix vec_sld semantics for little endian 2015-07-15 15:45:30 +00:00
openmp Rename OMPT placeholder type names to be in the OMPT name space 2015-07-14 15:42:03 +00:00
polly Mark a couple of items as completed 2015-07-14 10:52:58 +00:00