Volkan Keles
3ca146d083
[InstCombine] Combine nested min/max intrinsics with constants
...
Reviewers: arsenm, spatel
Reviewed By: spatel
Subscribers: lebedev.ri, wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D53774
llvm-svn: 345751
2018-10-31 17:50:52 +00:00
Volkan Keles
5a672b22e8
[InstCombine] Add preliminary tests for nested min/max combines. NFC
...
Summary: As requested in D53774.
Reviewers: spatel
Reviewed By: spatel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D53875
llvm-svn: 345616
2018-10-30 17:51:14 +00:00
Sanjay Patel
c6944f795d
[InstSimplify] move minnum/maxnum with Inf folds from instcombine
...
llvm-svn: 339396
2018-08-09 22:20:44 +00:00
Sanjay Patel
948ff87d7d
[InstSimplify] move minnum/maxnum with common op fold from instcombine
...
llvm-svn: 339144
2018-08-07 14:36:27 +00:00
Sanjay Patel
b802d18df7
[InstSimplify] move misplaced minnum/maxnum tests; NFC
...
llvm-svn: 339141
2018-08-07 14:12:08 +00:00
Sanjay Patel
3f6e9a71f7
[InstSimplify] move minnum/maxnum with undef fold from instcombine
...
llvm-svn: 338719
2018-08-02 14:33:40 +00:00
Sanjay Patel
28c7e41c09
[InstSimplify] move minnum/maxnum with same arg fold from instcombine
...
llvm-svn: 338652
2018-08-01 23:05:55 +00:00
Sanjay Patel
c7bb14301a
[InstCombine] add folds for minnum(-a, -b) --> -maxnum(a, b)
...
This is similar to what we do for integer min/max with 'not'
ops (rL321882).
This should fix:
https://bugs.llvm.org/show_bug.cgi?id=37404
https://bugs.llvm.org/show_bug.cgi?id=37405
llvm-svn: 332031
2018-05-10 20:03:13 +00:00
Sanjay Patel
b5322e385e
[InstCombine] add minnum/maxnum tests (PR37404, PR37405); NFC
...
llvm-svn: 332025
2018-05-10 19:21:08 +00:00
Sanjay Patel
dc4bb3fd36
[InstCombine] regenerate full checks; NFC
...
llvm-svn: 331998
2018-05-10 17:05:38 +00:00
Matt Arsenault
2458393104
Fix using wrong intrinsic in test
...
This is a leftover from renaming the intrinsic.
It's surprising the unknown llvm. intrinsic wasn't rejected.
llvm-svn: 225304
2015-01-06 23:00:33 +00:00
Matt Arsenault
d6511b49ac
Add minnum / maxnum intrinsics
...
These are named following the IEEE-754 names for these
functions, rather than the libm fmin / fmax to avoid
possible ambiguities. Some languages may implement something
resembling fmin / fmax which return NaN if either operand is
to propagate errors. These implement the IEEE-754 semantics
of returning the other operand if either is a NaN representing
missing data.
llvm-svn: 220341
2014-10-21 23:00:20 +00:00