aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/LockFileManager.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-04-27 22:15:33 +0000
committerCraig Topper <craig.topper@intel.com>2018-04-27 22:15:33 +0000
commitd656410293d4aacd2dad3e0038032b03d84eb140 (patch)
treef91314a7fc8f8248db2f22e1ab0223fe70860e85 /llvm/lib/Support/LockFileManager.cpp
parent4b542c6e64a07577d3cf445065cee75fa2221935 (diff)
downloadllvm-d656410293d4aacd2dad3e0038032b03d84eb140.zip
llvm-d656410293d4aacd2dad3e0038032b03d84eb140.tar.gz
llvm-d656410293d4aacd2dad3e0038032b03d84eb140.tar.bz2
[X86] Make the STTNI flag intrinsics use the flags from pcmpestrm/pcmpistrm if the mask instrinsics are also used in the same basic block.
Summary: Previously the flag intrinsics always used the index instructions even if a mask instruction also exists. To fix fix this I've created a single ISD node type that returns index, mask, and flags. The SelectionDAG CSE process will merge all flavors of intrinsics with the same inputs to a s ingle node. Then during isel we just have to look at which results are used to know what instruction to generate. If both mask and index are used we'll need to emit two instructions. But for all other cases we can emit a single instruction. Since I had to do manual isel anyway, I've removed the pseudo instructions and custom inserter code that was working around tablegen limitations with multiple implicit defs. I've also renamed the recently added sse42.ll test case to sttni.ll since it focuses on that subset of the sse4.2 instructions. Reviewers: chandlerc, RKSimon, spatel Reviewed By: chandlerc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D46202 llvm-svn: 331091
Diffstat (limited to 'llvm/lib/Support/LockFileManager.cpp')
0 files changed, 0 insertions, 0 deletions