llvm-project/llvm/test
Alex Bradbury 2146e8fb1e [RISCV] Constant materialisation for RV64I
This commit introduces support for materialising 64-bit constants for RV64I,
making use of the RISCVMatInt::generateInstSeq helper in order to share logic
for immediate materialisation with the MC layer (where it's used for the li
pseudoinstruction).

test/CodeGen/RISCV/imm.ll is updated to test RV64, and gains new 64-bit
constant tests. It would be preferable if anyext constant returns were sign
rather than zero extended (see PR39092). This patch simply adds an explicit
signext to the returns in imm.ll.

Further optimisations for constant materialisation are possible, most notably
for mask-like values which can be generated my loading -1 and shifting right.
A future patch will standardise on the C++ codepath for immediate selection on
RV32 as well as RV64, and then add further such optimisations to
RISCVMatInt::generateInstSeq in order to benefit both RV32 and RV64 for
codegen and li expansion.

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

llvm-svn: 347042
2018-11-16 10:14:16 +00:00
..
Analysis [TTI] Reduction costs only need to include a single extract element cost 2018-11-15 17:42:53 +00:00
Assembler [IR] Add a dedicated FNeg IR Instruction 2018-11-13 18:15:47 +00:00
Bindings [LLVM-C] Improve Intrinsics Bindings 2018-11-06 01:38:14 +00:00
Bitcode [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
BugPoint
CodeGen [RISCV] Constant materialisation for RV64I 2018-11-16 10:14:16 +00:00
DebugInfo Bias physical register immediate assignments 2018-11-14 21:11:53 +00:00
Demangle [MS Demangler] Print public:, protected:, private: if set in FunctionClass or a variable's StorageClass. 2018-11-13 20:18:26 +00:00
Examples
ExecutionEngine [ORC] Re-apply r345077 with fixes to remove ambiguity in lookup calls. 2018-10-23 23:01:39 +00:00
Feature Mark @llvm.trap cold 2018-11-14 19:53:41 +00:00
FileCheck [FileCheck] introduce CHECK-COUNT-<num> repetition directive 2018-11-13 00:46:13 +00:00
Instrumentation [sancov] Put .SCOV* sections into the right comdat groups on COFF 2018-11-08 00:57:33 +00:00
Integer
JitListener
LTO [LTO] Load sample profile in LTO link step. 2018-11-15 18:06:42 +00:00
Linker llvm-link: Improve diagnostic for module-level metadata mismatch 2018-10-09 01:17:27 +00:00
MC [MSP430] Add support for .refsym directive 2018-11-16 09:50:24 +00:00
Object AMDGPU: Enable code object v3 for AMDHSA only 2018-11-15 02:32:43 +00:00
ObjectYAML [WebAssembly] Add support for dylink section in object format 2018-11-14 18:36:24 +00:00
Other Print newline after banner for ModulePass 2018-11-14 10:05:28 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen [TableGen] fix assert in !cast when used out of definition in a multiclass 2018-10-10 10:52:57 +00:00
ThinLTO/X86 [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
Transforms [InstCombine] adjust rotate direction in tests; NFC 2018-11-15 19:15:41 +00:00
Unit
Verifier [machineverifier] Detect PHI's that are preceeded by non-PHI's 2018-10-03 22:05:31 +00:00
YAMLParser
tools [commit-test] Add blank line for test/tools/llvm-objdump/symbol-table-elf.test 2018-11-15 02:36:20 +00:00
.clang-format
CMakeLists.txt
TestRunner.sh
lit.cfg.py
lit.site.cfg.py.in