diff options
author | Craig Topper <craig.topper@intel.com> | 2018-09-15 16:23:33 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2018-09-15 16:23:33 +0000 |
commit | 273f755da35656a77e695459d944aab43e12965b (patch) | |
tree | ef642c79ebd59863398cbf24969c3170a07ea446 /llvm/lib/Demangle/MicrosoftDemangle.cpp | |
parent | 751341905d1eb951adcdacb6cbe90cdca348ab63 (diff) | |
download | llvm-273f755da35656a77e695459d944aab43e12965b.zip llvm-273f755da35656a77e695459d944aab43e12965b.tar.gz llvm-273f755da35656a77e695459d944aab43e12965b.tar.bz2 |
[X86] Fold (movmsk (setne (and X, (1 << C)), 0)) -> (movmsk (X << C))
Summary:
MOVMSK only care about the sign bit so we don't need the setcc to fill the whole element with 0s/1s. We can just shift the bit we're looking for into the sign bit. This saves a constant pool load.
Inspired by PR38840.
Reviewers: RKSimon, spatel
Reviewed By: RKSimon
Subscribers: lebedev.ri, llvm-commits
Differential Revision: https://reviews.llvm.org/D52121
llvm-svn: 342326
Diffstat (limited to 'llvm/lib/Demangle/MicrosoftDemangle.cpp')
0 files changed, 0 insertions, 0 deletions