[all-commits] [llvm/llvm-project] b53046: [DAG] SimplifyDemandedBits - fold AND(INSERT_SUBVE...
Simon Pilgrim via All-commits
all-commits at lists.llvm.org
Fri Jul 8 08:08:54 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: b53046122fc5b4f087bfeee84ee6089b66fa7390
https://github.com/llvm/llvm-project/commit/b53046122fc5b4f087bfeee84ee6089b66fa7390
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2022-07-08 (Fri, 08 Jul 2022)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/X86/avx512-calling-conv.ll
M llvm/test/CodeGen/X86/avx512-ext.ll
M llvm/test/CodeGen/X86/avx512-mask-op.ll
M llvm/test/CodeGen/X86/min-legal-vector-width.ll
M llvm/test/CodeGen/X86/vec-strict-cmp-128-fp16.ll
M llvm/test/CodeGen/X86/vec-strict-cmp-sub128.ll
M llvm/test/CodeGen/X86/vec_smulo.ll
M llvm/test/CodeGen/X86/vec_umulo.ll
Log Message:
-----------
[DAG] SimplifyDemandedBits - fold AND(INSERT_SUBVECTOR(C,X,I),M) -> INSERT_SUBVECTOR(AND(C,M),X,I)
If all the demanded bits of the AND mask covering the inserted subvector 'X' are known to be one, then the mask isn't affecting the subvector at all.
In which case, if the base vector 'C' is undef/constant, then move the AND mask up to just (constant) fold it directly.
Addresses some of the regressions from D129150, particularly the cases where we're attempting to zero the upper elements of a widened vector.
Differential Revision: https://reviews.llvm.org/D129290
More information about the All-commits
mailing list