llvm-project/llvm/lib
Kevin Qin 5cd73c9e0a [AArch64 NEON] Fix invalid constant used in vselect condition.
There is a wrong assumption that the vector element type and the
type of each ConstantSDNode in the build_vector were the same.
However, when promoting the integer operand of a legally typed
build_vector, the operand type and the vector element type do not
need to be the same
(See method 'DAGTypeLegalizer::PromoteIntOp_BUILD_VECTOR' in
LegalizeIntegerTypes.cpp).

  in AArch64 backend, the following dag sequence:

  C0: i1 = Constant<0>
  C1: i1 = Constant<-1>
  V: v8i1 = BUILD_VECTOR C1, C1, C0, C0, C0, C0, C0, C0

  is type-legalized into:

  NewC0: i32 = Constant<0>
  NewC1: i32 = Constant<1>
  V: v8i8 = BUILD_VECTOR NewC1, NewC1, NewC0, NewC0, NewC0, NewC0, NewC0, NewC0

Forcing a getZeroExtend to VTBits to ensure that the new constant
is correctly.

llvm-svn: 198582
2014-01-06 02:26:10 +00:00
..
Analysis [PM] Add a definition for the static PassID in the CallGraphAnalysis. 2014-01-05 10:38:52 +00:00
AsmParser Begin adding docs and IR-level support for the inalloca attribute 2013-12-19 02:14:12 +00:00
Bitcode Begin adding docs and IR-level support for the inalloca attribute 2013-12-19 02:14:12 +00:00
CodeGen [AArch64 NEON] Fix invalid constant used in vselect condition. 2014-01-06 02:26:10 +00:00
DebugInfo DebugInfo: Move type units into the debug_types section with appropriate comdat grouping and type unit headers 2013-12-13 21:33:40 +00:00
ExecutionEngine Make the llvm mangler depend only on DataLayout. 2014-01-03 19:21:54 +00:00
IR Make the llvm mangler depend only on DataLayout. 2014-01-03 19:21:54 +00:00
IRReader [llvm-c] Expose IRReader interface 2013-11-06 09:21:15 +00:00
LTO Make the llvm mangler depend only on DataLayout. 2014-01-03 19:21:54 +00:00
Linker Revert "Move copying of global initializers below the cloning of functions." 2013-11-09 00:43:18 +00:00
MC Revert "For disassembly when adding a symbolic operand that is a C++ symbol name, also put the human readable name in a comment." 2014-01-03 19:56:20 +00:00
Object Support for microMIPS TLS relocations. 2013-12-19 16:02:32 +00:00
Option Avoid buffer copies when a Twine already is a StringRef. 2013-12-03 18:18:28 +00:00
Support Make llvm::Regex non-copyable but movable. 2014-01-02 19:04:59 +00:00
TableGen [TableGen] Correctly generate implicit anonymous prototype defs in multiclasses 2014-01-02 20:47:09 +00:00
Target [Sparc] Add ELF Object Writer for Sparc. 2014-01-06 01:22:54 +00:00
Transforms Add missed cleanup from r198456 2014-01-04 22:47:48 +00:00
CMakeLists.txt Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
LLVMBuild.txt Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
Makefile Reformat Makefile. No other changes. 2013-10-30 04:03:03 +00:00