llvm/lib
Pirama Arumuga Nainar f2b19f9394 Fix *_EXTEND_VECTOR_INREG legalization
Summary:
While promoting *_EXTEND_VECTOR_INREG nodes whose inputs are already
promoted, perform the appropriate sign extension for the promoted node
before doing the *_EXTEND_VECTOR_INREG operation.  If not, the undefined
high-order bits of the promoted operand may (a) be garbage inc ase of
zext) or (b) contribute the wrong sign-bit (in case of sext)

Updated the promote-vec3.ll test after this change.  The diff shows
explicit zeroing in case of zext and intermediate sign extension in case
of sext.

Reviewers: RKSimon

Subscribers: llvm-commits, srhines

Differential Revision: https://reviews.llvm.org/D25790

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284752 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-20 17:56:36 +00:00
..
Analysis Retire llvm::alignOf in favor of C++11 alignof. 2016-10-20 15:02:18 +00:00
AsmParser DebugInfo: preparation to implement DW_AT_alignment 2016-10-20 00:13:12 +00:00
Bitcode Fix spelling mistake in comment. 2016-10-20 10:42:14 +00:00
CodeGen Fix *_EXTEND_VECTOR_INREG legalization 2016-10-20 17:56:36 +00:00
DebugInfo Remove LLVM_NOEXCEPT and replace it with noexcept 2016-10-19 23:52:38 +00:00
Demangle Avoid using alignas and constexpr. 2016-09-06 20:36:24 +00:00
ExecutionEngine [mips][mcjit] Add the majority of N32 support. 2016-10-20 13:02:23 +00:00
Fuzzer [libFuzzer] extend -print_coverage to also print uncovered lines, functions, and files. 2016-10-19 00:12:03 +00:00
IR Retire llvm::alignOf in favor of C++11 alignof. 2016-10-20 15:02:18 +00:00
IRReader
LibDriver
LineEditor
Linker Typo: nomed struct -> named struct 2016-10-19 20:10:03 +00:00
LTO [ThinLTO] Default backend threads to heavyweight_hardware_concurrency 2016-10-19 17:35:01 +00:00
MC Retire llvm::alignOf in favor of C++11 alignof. 2016-10-20 15:02:18 +00:00
Object Remove LLVM_NOEXCEPT and replace it with noexcept 2016-10-19 23:52:38 +00:00
ObjectYAML
Option Generalize ArgList::AddAllArgs more 2016-09-29 19:47:58 +00:00
Passes Conditionally eliminate library calls where the result value is not used 2016-10-18 21:36:27 +00:00
ProfileData Retire llvm::alignOf in favor of C++11 alignof. 2016-10-20 15:02:18 +00:00
Support Do a sweep over move ctors and remove those that are identical to the default. 2016-10-20 12:20:28 +00:00
TableGen
Target [Target] remove TargetRecip class; 2nd try 2016-10-20 16:55:45 +00:00
Transforms [GVN] Use defaulted members. No functional change. 2016-10-20 13:09:12 +00:00
CMakeLists.txt Try to fix a circular dependency in the modules build. 2016-09-06 20:16:19 +00:00
LLVMBuild.txt Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00