OSDN Git Service

[llvm-mca] Add tests for XOP and AVX512 instructions that implicitly clear the upper...
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Mon, 18 Jun 2018 14:00:30 +0000 (14:00 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Mon, 18 Jun 2018 14:00:30 +0000 (14:00 +0000)
commit0f51d6d4e975f86e455e1059d97b67d2baed27cd
treebb367947277224fd18c6048abb9ff35018f7a013
parent6e8480a8e5036b4ec2d37a1453df10bb65696e8b
[llvm-mca] Add tests for XOP and AVX512 instructions that implicitly clear the upper portion of a super-register.

When the destination register of a XOP instruction is an XMM register, bits
[255:128] of the corresponding YMM register are cleared.

When the destination register of a EVEX encoded instruction is an XMM/YMM
register, the upper bits of the corresponding ZMM are cleared.
On processors that feature AVX512, a write to an XMM registers always clears the
upper portion of the corresponding ZMM register if the instruction is VEX or
EVEX encoded.

These new tests show some interesting cases which aren't correctly analyzed by
llvm-mca. The lack of knowledge related to the implicit update on the
super-registers is addressed by D48225.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334945 91177308-0d34-0410-b5e6-96231b3b80d8
test/tools/llvm-mca/X86/Generic/avx512-super-registers-1.s [new file with mode: 0644]
test/tools/llvm-mca/X86/Generic/avx512-super-registers-2.s [new file with mode: 0644]
test/tools/llvm-mca/X86/Generic/avx512-super-registers-3.s [new file with mode: 0644]
test/tools/llvm-mca/X86/Generic/xop-super-registers-1.s [new file with mode: 0644]
test/tools/llvm-mca/X86/Generic/xop-super-registers-2.s [new file with mode: 0644]