[SCEV] Improve zext(A /u B) and zext(A % B)

Summary:
Try to match udiv and urem patterns, and sink zext down to the leaves.

I'm not entirely sure why some unrelated tests change, but the added <nsw>s seem right.

Reviewers: sanjoy

Subscribers: jlebar, hiraditya, bixia, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@335197 91177308-0d34-0410-b5e6-96231b3b80d8
3 files changed