]> granicus.if.org Git - llvm/commit
Revert r368276 "[TargetLowering] SimplifyDemandedBits - call SimplifyMultipleUseDeman...
authorHans Wennborg <hans@hanshq.net>
Tue, 13 Aug 2019 09:33:25 +0000 (09:33 +0000)
committerHans Wennborg <hans@hanshq.net>
Tue, 13 Aug 2019 09:33:25 +0000 (09:33 +0000)
commit3b17e47a11266a40b6c0660d5e1829a2bed5c7db
tree6edec002317dfeaf2b130dc1ed184c94688c5854
parent7ba7168c1120f5aa8664d42c5940a6d1f66d12fa
Revert r368276 "[TargetLowering] SimplifyDemandedBits - call SimplifyMultipleUseDemandedBits for ISD::EXTRACT_VECTOR_ELT"

This introduced a false positive MemorySanitizer warning about use of
uninitialized memory in a vectorized crc function in Chromium. That suggests
maybe something is not right with this transformation. See
https://crbug.com/992853#c7 for a reproducer.

This also reverts the follow-up commits r368307 and r368308 which
depended on this.

> This patch attempts to peek through vectors based on the demanded bits/elt of a particular ISD::EXTRACT_VECTOR_ELT node, allowing us to avoid dependencies on ops that have no impact on the extract.
>
> In particular this helps remove some unnecessary scalar->vector->scalar patterns.
>
> The wasm shift patterns are annoying - @tlively has indicated that the wasm vector shift codegen are to be refactored in the near-term and isn't considered a major issue.
>
> Differential Revision: https://reviews.llvm.org/D65887

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368660 91177308-0d34-0410-b5e6-96231b3b80d8
13 files changed:
lib/CodeGen/SelectionDAG/TargetLowering.cpp
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/AArch64/vecreduce-and-legalization.ll
test/CodeGen/ARM/dagcombine-anyexttozeroext.ll
test/CodeGen/WebAssembly/simd-arith.ll
test/CodeGen/WebAssembly/simd-extended-extract.ll
test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
test/CodeGen/X86/promote-vec3.ll
test/CodeGen/X86/shrink_vmul.ll
test/CodeGen/X86/vec_smulo.ll
test/CodeGen/X86/vec_umulo.ll
test/CodeGen/X86/vector-reduce-mul.ll
test/CodeGen/X86/xor.ll