Simon Pilgrim
37c9034bd6
[DAGCombiner] Correctly extract the ConstOrConstSplat shift value for SHL nodes
...
We were failing to extract a constant splat shift value if the shifted value was being masked.
The (shl (and (setcc) N01CV) N1CV) -> (and (setcc) N01CV<<N1CV) combine was unnecessarily preventing this.
llvm-svn: 286454
2016-11-10 14:35:09 +00:00
Simon Pilgrim
87f38fa85c
[DAGCombiner] Show missed opportunity to UNDEF out-of-range SHL
...
Fails to match constant shift value due to presence of AND mask.
llvm-svn: 286452
2016-11-10 14:19:45 +00:00
Sanjay Patel
ca92c36e01
[DAG] enhance computeKnownBits to handle SHL with vector splat constant
...
Also, use APInt to avoid crashing on types larger than vNi64.
llvm-svn: 284874
2016-10-21 20:16:27 +00:00
Simon Pilgrim
a20aeea998
[DAGCombiner] Add general constant vector support to (shl (add x, c1), c2) -> (add (shl x, c2), c1 << c2)
...
We already supported scalar constant / splatted constant vector - now accepts any (non opaque) constant scalar / vector
llvm-svn: 284613
2016-10-19 17:12:22 +00:00
Simon Pilgrim
4554e161be
[DAGCombiner] Add general constant vector support to (shl (sra x, c1), c1) -> (and x, (shl -1, c1))
...
We already supported scalar constant / splatted constant vector - now accepts any (non opaque) constant scalar / vector
llvm-svn: 284608
2016-10-19 16:15:30 +00:00
Simon Pilgrim
c2e9724909
[DAGCombiner] Add general constant vector support to (shl (mul x, c1), c2) -> (mul x, c1 << c2)
...
We already supported scalar constant / splatted constant vector - now accepts any (non opaque) constant scalar / vector
llvm-svn: 284607
2016-10-19 15:59:28 +00:00
Simon Pilgrim
b2ca2505cc
[DAGCombine] Generalize distributeTruncateThroughAnd to work with any non-opaque constant or constant vector
...
llvm-svn: 284574
2016-10-19 08:57:37 +00:00
Simon Pilgrim
476560aac4
[X86][SSE] Added vector lshr/shl combine tests
...
This doesn't cover all combines in DAGCombiner::visitSRL/visitSHL yet, but identifies several cases where we fail to combine vectors (or non-splatted) vectors
llvm-svn: 284518
2016-10-18 19:28:12 +00:00