commit | 9ed66ee093d689bd7e62cdd659b59a7fe96c22a7 | [log] [tgz] |
---|---|---|
author | Roman Lebedev <lebedev.ri@gmail.com> | Mon May 21 21:41:02 2018 +0000 |
committer | Roman Lebedev <lebedev.ri@gmail.com> | Mon May 21 21:41:02 2018 +0000 |
tree | 17b6981ae514993f44273bcaea22815f24a0139f | |
parent | 6b03aa25cd5f453d68d4fb7d69d6c38f3b4e24c5 [diff] |
[DAGCombine][X86][AArch64] Masked merge unfolding: vector edition. Summary: This **appears** to be the last missing piece for the masked merge pattern handling in the backend. This is [[ https://bugs.llvm.org/show_bug.cgi?id=37104 | PR37104 ]]. [[ https://bugs.llvm.org/show_bug.cgi?id=6773 | PR6773 ]] will introduce an IR canonicalization that is likely bad for the end assembly. Previously, `andps`+`andnps` / `bsl` would be generated. (see `@out`) Now, they would no longer be generated (see `@in`), and we need to make sure that they are generated. Differential Revision: https://reviews.llvm.org/D46528 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332904 91177308-0d34-0410-b5e6-96231b3b80d8