SuccessChanges

Summary

  1. [PhaseOrdering] add test for memcpy removal (PR47114); NFC (details)
  2. [InstCombine] add tests for copysign; NFC (details)
  3. [InstCombine] reduce code duplication; NFC (details)
  4. [InstCombine] fold copysign with fabs/fneg operand (details)
  5. Revert "[PhaseOrdering] add test for memcpy removal (PR47114); NFC" (details)
  6. [X86][AVX] Fold CONCAT(HOP(X,Y),HOP(Z,W)) -> HOP(CONCAT(X,Z),CONCAT(Y,W)) for float types (details)
Commit babb59496b540583c6951813d1e0b3abdea97e7d by spatel
[PhaseOrdering] add test for memcpy removal (PR47114); NFC
The file was addedllvm/test/Transforms/PhaseOrdering/memcpyopt.ll
Commit 4d5fdff43488445746dfea4cf0a5621cfd838c01 by spatel
[InstCombine] add tests for copysign; NFC
The file was modifiedllvm/test/Transforms/InstCombine/copysign.ll
Commit 3fed67b7e6d67b0208c6c8bfc2ed8211d383bc39 by spatel
[InstCombine] reduce code duplication; NFC
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
Commit 3ffb751f3dbf059b2ec061fe2f4302c9eba26b43 by spatel
[InstCombine] fold copysign with fabs/fneg operand

We already get this in the backend, but we need to do
it in IR too to consistently get yet more copysign
transforms.
The file was modifiedllvm/test/Transforms/InstCombine/copysign.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
Commit 29e1d16a3eeba98ef8fb2c250301c7e7eb2554f4 by spatel
Revert "[PhaseOrdering] add test for memcpy removal (PR47114); NFC"

This reverts commit babb59496b540583c6951813d1e0b3abdea97e7d.

This test addition was queued up with some unrelated changes,
but it seems more likely that we need to fix something internal
to -memcpyopt. Also, I'm not sure if including target-specifc
attributes in a generic regression test dir will cause bot
problems.
The file was removedllvm/test/Transforms/PhaseOrdering/memcpyopt.ll
Commit f25d47b7ed3e2e9ddb121471c5d4af76642cd48c by llvm-dev
[X86][AVX] Fold CONCAT(HOP(X,Y),HOP(Z,W)) -> HOP(CONCAT(X,Z),CONCAT(Y,W)) for float types

We can now enable this for AVX1 targets can now assist with canonicalizeShuffleMaskWithHorizOp cleanup.

There's still a few missed opportunities for merging subvector insert/extracts into shuffles, but they shouldn't cause any regressions now.
The file was modifiedllvm/test/CodeGen/X86/haddsub-2.ll
The file was modifiedllvm/test/CodeGen/X86/haddsub-undef.ll
The file was modifiedllvm/test/CodeGen/X86/haddsub-shuf.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp