[X86][BMI1] X86DAGToDAGISel: select BEXTR from x << (32 - y) >> (32 - y) pattern
authorRoman Lebedev <lebedev.ri@gmail.com>
Tue, 23 Oct 2018 09:08:44 +0000 (09:08 +0000)
committerRoman Lebedev <lebedev.ri@gmail.com>
Tue, 23 Oct 2018 09:08:44 +0000 (09:08 +0000)
commit1c95b2f7793214fc874ebce933c77d2d79dd7256
treea9ef1b7195f0f65375455f85c48dbade2120175a
parent356aa4a98e54a0add26baccab86858ca55ef8e03
[X86][BMI1] X86DAGToDAGISel: select BEXTR from x << (32 - y) >> (32 - y) pattern

Summary:
Continuation of D52348.

We also get the `c) x &  (-1 >> (32 - y))` pattern here, because of the D48768.
I will add extra-uses into those tests and follow-up with a patch to handle those patterns too.

Reviewers: RKSimon, craig.topper

Reviewed By: craig.topper

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D53521

llvm-svn: 345014
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
llvm/lib/Target/X86/X86InstrInfo.td
llvm/test/CodeGen/X86/extract-bits.ll
llvm/test/CodeGen/X86/extract-lowbits.ll