llvm-6502/test
Hal Finkel f8d179ba76 [PowerPC] Add support for the QPX vector instruction set
This adds support for the QPX vector instruction set, which is used by the
enhanced A2 cores on the IBM BG/Q supercomputers. QPX vectors are 256 bytes
wide, holding 4 double-precision floating-point values. Boolean values, modeled
here as <4 x i1> are actually also represented as floating-point values
(essentially  { -1, 1 } for { false, true }). QPX shares many features with
Altivec and VSX, but is distinct from both of them. One major difference is
that, instead of adding completely-separate vector registers, QPX vector
registers are extensions of the scalar floating-point registers (lane 0 is the
corresponding scalar floating-point value). The operations supported on QPX
vectors mirrors that supported on the scalar floating-point values (with some
additional ones for permutations and logical/comparison operations).

I've been maintaining this support out-of-tree, as part of the bgclang project,
for several years. This is not the entire bgclang patch set, but is most of the
subset that can be cleanly integrated into LLVM proper at this time. Adding
this to the LLVM backend is part of my efforts to rebase bgclang to the current
LLVM trunk, but is independently useful (especially for codes that use LLVM as
a JIT in library form).

The assembler/disassembler test coverage is complete. The CodeGen test coverage
is not, but I've included some tests, and more will be added as follow-up work.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230413 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-25 01:06:45 +00:00
..
Analysis Revert r230280: "Bugfix: SCEVExpander incorrectly marks increment operations as no-wrap" 2015-02-24 16:19:29 +00:00
Assembler AsmParser: Check ConstantExpr insertvalue operands for type correctness 2015-02-23 07:13:52 +00:00
Bindings [OCaml] Add Llvm.build_empty_phi. 2015-02-06 13:42:03 +00:00
Bitcode Use common parse routine to read alignment values from bitcode 2015-02-22 19:32:03 +00:00
BugPoint
CodeGen [PowerPC] Add support for the QPX vector instruction set 2015-02-25 01:06:45 +00:00
DebugInfo [llvm-pdbdump] Add an option to dump full class definitions. 2015-02-23 05:58:34 +00:00
ExecutionEngine Make frem.ll flush after calling printf. 2015-02-18 19:32:28 +00:00
Feature Don't promote asynch EH invokes of nounwind functions to calls 2015-02-11 01:23:16 +00:00
FileCheck
Instrumentation InstrProf: Test for appropriate linkage of the profiling structures 2015-02-24 21:42:42 +00:00
Integer
JitListener
Linker Add run line that was missing in r228999. 2015-02-13 16:00:03 +00:00
LTO [LTO API] add lto_codegen_set_module to set the destination module. 2015-02-24 00:45:56 +00:00
MC [PowerPC] Add support for the QPX vector instruction set 2015-02-25 01:06:45 +00:00
Object [obj2yaml/yaml2obj] Add SHT_GROUP support. 2015-02-21 04:28:26 +00:00
Other Don't promote asynch EH invokes of nounwind functions to calls 2015-02-11 01:23:16 +00:00
SymbolRewriter
TableGen
tools InstrProf: Teach llvm-cov to show the max count instead of the last 2015-02-23 21:21:34 +00:00
Transforms LowerBitSets: Introduce global layout builder. 2015-02-24 23:17:02 +00:00
Unit
Verifier Verifier: Unused comdats might not have a corresponding GV 2015-02-20 19:58:48 +00:00
YAMLParser
.clang-format
CMakeLists.txt Back out two accidental changes that snuck in with r229245. Sorry these 2015-02-14 09:05:58 +00:00
lit.cfg [gold] Consolidate the gold plugin options and actually search for 2015-02-14 09:43:57 +00:00
lit.site.cfg.in Remove log statements from config scripts. 2015-02-22 07:31:42 +00:00
Makefile Attempt to fix the builders. 2015-02-22 07:01:41 +00:00
Makefile.tests
TestRunner.sh