llvm-project/llvm/test/MC
Florian Hahn f63a5e91db [AArch64] Tie source and destination operands for AESMC/AESIMC.
Summary:
Most CPUs implementing AES fusion require instruction pairs of the form
    AESE Vn, _
    AESMC Vn, Vn
and
    AESD Vn, _
    AESIMC Vn, Vn

The constraint is added to AES(I)MC instructions which use the result of
an AES(E|D) instruction by using AES(I)MCTrr pseudo instructions, which
constraint source and destination registers to be the same.

A nice side effect of this change is that now all possible pairs are
scheduled back-to-back on the exynos-m1 for the misched-fusion-aes.ll
test case.

I had to update aes_load_store. The version I added initially was very
reduced and with the new constraint, AESE/AESMC could not be scheduled
back-to-back. I updated the test to be more realistic and still expose
the same scheduling problem as the initial test case.

Reviewers: t.p.northover, rengolin, evandro, kristof.beyls, silviu.baranga

Reviewed By: t.p.northover, evandro

Subscribers: aemerson, javed.absar, llvm-commits

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

llvm-svn: 309495
2017-07-29 20:35:28 +00:00
..
AArch64 [AArch64] Tie source and destination operands for AESMC/AESIMC. 2017-07-29 20:35:28 +00:00
AMDGPU AMDGPU: Add instruction definitions for some scratch_* instructions 2017-07-21 15:36:16 +00:00
ARM [ARM] Unify handling of M-Class system registers 2017-07-19 12:57:16 +00:00
AVR [AVR] Remove a bunch of now-obselete tests 2017-07-01 05:23:13 +00:00
AsmParser fix trivial typo in comment, NFC 2017-06-26 06:32:04 +00:00
COFF [codeview] Change readobj symbol dumping format 2017-07-11 23:41:41 +00:00
Disassembler [X86] Add nopq instruction which is a rex encoded version of nopl for gas compatibility. 2017-07-22 01:30:53 +00:00
ELF Use @LINE in two more tests. 2017-07-06 21:33:23 +00:00
Hexagon [Hexagon] Handle a global operand to A2_addi when creating duplexes 2017-06-22 15:53:31 +00:00
Lanai [lanai] Add more tests for assembly of conditional ALU ops 2016-07-11 17:58:16 +00:00
MachO IR: Replace the "Linker Options" module flag with "llvm.linker.options" named metadata. 2017-06-12 20:10:48 +00:00
Markup
Mips Revert "Reland "[mips][mt][6/7] Add support for mftr, mttr instructions."" 2017-07-14 15:08:05 +00:00
PowerPC [Power9] Added support for the modsw, moduw, modsd, modud hardware instructions. 2017-06-12 17:58:42 +00:00
Sparc [Sparc] invalid adjustments in TLS_LE/TLS_LDO relocations removed 2017-07-25 15:28:28 +00:00
SystemZ [SystemZ, AsmParser] Enable the mnemonic spell corrector. 2017-07-18 09:17:00 +00:00
WebAssembly [WebAssembly] Expose the offset of each data segment 2017-07-12 00:24:54 +00:00
X86 X86 Asm uses assertions instead of proper diagnostic. This patch fixes that. 2017-07-25 13:05:12 +00:00