SuccessChanges

Summary

  1. [InstCombine] Fold (C - X) ^ signmask -> (C + signmask - X).
  2. [InstCombine] Teach the code that pulls logical operators through constant shifts to handle vector splats too.
  3. [InstCombine] Support vector splats in foldSelectICmpAnd. Unfortunately, it looks like there's some other missed optimizations in the generated code for some of these cases. I'll try to look at some of those next.
Revision 310186 by ctopper:
[InstCombine] Fold (C - X) ^ signmask -> (C + signmask - X).
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineAndOrXor.cppllvm.src/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/xor.llllvm.src/test/Transforms/InstCombine/xor.ll
Revision 310185 by ctopper:
[InstCombine] Teach the code that pulls logical operators through constant shifts to handle vector splats too.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineShifts.cppllvm.src/lib/Transforms/InstCombine/InstCombineShifts.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/pr17827.llllvm.src/test/Transforms/InstCombine/pr17827.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/select-with-bitwise-ops.llllvm.src/test/Transforms/InstCombine/select-with-bitwise-ops.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/vector-casts.llllvm.src/test/Transforms/InstCombine/vector-casts.ll
Revision 310184 by ctopper:
[InstCombine] Support vector splats in foldSelectICmpAnd.

Unfortunately, it looks like there's some other missed optimizations in the generated code for some of these cases. I'll try to look at some of those next.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cppllvm.src/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/select-with-bitwise-ops.llllvm.src/test/Transforms/InstCombine/select-with-bitwise-ops.ll