diff options
author | Craig Topper <craig.topper@intel.com> | 2020-08-03 10:09:57 -0700 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2020-08-03 10:10:17 -0700 |
commit | ac82b918c74f3fab8d4a7c1905277bda6b9bccb4 (patch) | |
tree | 409a8e65b80bcada747cbea949547c33aaa0f827 /llvm/lib/Transforms/Utils/LoopVersioning.cpp | |
parent | 32f3a9a9d68eea7d40a19767b591622b4b737990 (diff) | |
download | llvm-ac82b918c74f3fab8d4a7c1905277bda6b9bccb4.zip llvm-ac82b918c74f3fab8d4a7c1905277bda6b9bccb4.tar.gz llvm-ac82b918c74f3fab8d4a7c1905277bda6b9bccb4.tar.bz2 |
[X86] Use h-register for final XOR of __builtin_parity on 64-bit targets.
This adds an isel pattern and special XOR8rr_NOREX instruction
to enable the use of h-registers for __builtin_parity. This avoids
a copy and a shift instruction. The NOREX instruction is in case
register allocation doesn't use the matching l-register for some
reason. If a R8-R15 register gets picked instead, we won't be
able to encode the instruction since an h-register can't be used
with a REX prefix.
Fixes PR46954
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopVersioning.cpp')
0 files changed, 0 insertions, 0 deletions