aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopVersioning.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2020-08-03 10:09:57 -0700
committerCraig Topper <craig.topper@intel.com>2020-08-03 10:10:17 -0700
commitac82b918c74f3fab8d4a7c1905277bda6b9bccb4 (patch)
tree409a8e65b80bcada747cbea949547c33aaa0f827 /llvm/lib/Transforms/Utils/LoopVersioning.cpp
parent32f3a9a9d68eea7d40a19767b591622b4b737990 (diff)
downloadllvm-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