Sanjay Patel
bb1b1c97fa
[InstSimplify] fix some test names; NFC
...
Too much division...the quotient is the answer.
llvm-svn: 312943
2017-09-11 20:38:31 +00:00
Sanjay Patel
5876189ff1
[InstSimplify] refactor udiv/urem code and add tests; NFCI
...
This removes some duplicated code and makes it easier to support signed div/rem
in a similar way if we want to do that. Note that the existing comments were not
accurate - we don't need a constant divisor to simplify; icmp simplification does
more than that. But as the added tests show, it could go even further.
llvm-svn: 312885
2017-09-10 17:55:08 +00:00
Sanjay Patel
962a8431ea
[InstSimplify] allow folds for bool vector div/rem
...
llvm-svn: 297411
2017-03-09 21:56:03 +00:00
Sanjay Patel
7e56366204
[ConstantFold] vector div/rem with any zero element in divisor is undef
...
Follow-up for:
https://reviews.llvm.org/D30665
https://reviews.llvm.org/rL297390
llvm-svn: 297409
2017-03-09 20:42:30 +00:00
Sanjay Patel
bb47616aef
[InstSimplify] add tests for vector constant folding div/rem-by-0; NFC
...
llvm-svn: 297407
2017-03-09 20:31:20 +00:00
Sanjay Patel
2b1f6f4b92
[InstSimplify] vector div/rem with any zero element in divisor is undef
...
This was suggested as a DAG simplification in the review for rL297026 :
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20170306/435253.html
...but let's start with IR since we have actual docs for IR (LangRef).
Differential Revision:
https://reviews.llvm.org/D30665
llvm-svn: 297390
2017-03-09 16:20:52 +00:00
Sanjay Patel
3bbee79d9e
[InstSimplify] add tests for vector div/rem with UB potential; NFC
...
llvm-svn: 297048
2017-03-06 18:45:39 +00:00
Sanjay Patel
c494239bd8
[InstSimplify] regenerate checks; NFC
...
llvm-svn: 297040
2017-03-06 18:13:01 +00:00
David Majnemer
63da0c238b
[InstSimplify] Optimize away udivs in the presence of range metadata
...
We know that udiv %V, C can be optimized away to 0 if %V is ult C.
llvm-svn: 291296
2017-01-06 22:58:02 +00:00