| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
The reversion apparently deleted the test/Transforms directory.
Will be re-reverting again.
llvm-svn: 358552
|
|
|
|
|
|
|
|
| |
As it's causing some bot failures (and per request from kbarton).
This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda.
llvm-svn: 358546
|
|
|
|
|
|
|
| |
The transform is broken in 2 ways - it doesn't correct metadata (or even drop it),
and it doesn't work with vectors with undef elements.
llvm-svn: 345033
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
invertible
Summary: This restores the combine that was reverted in r341883. The infinite loop from the failing test no longer occurs due to changes from r342163.
Reviewers: spatel, dmgreen
Reviewed By: spatel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D52070
llvm-svn: 342797
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
are freely invertible.
This allows the xor to be removed completely.
This might help with recomitting r341674, but seems good regardless.
Coincidentally fixes PR38915.
Differential Revision: https://reviews.llvm.org/D51964
llvm-svn: 342163
|
|
|
|
| |
llvm-svn: 342162
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Revert min/max changes in rL341674 dues to high compile times causing timeouts (PR38897).
Checking in to unblock failing builds. Patch available for post-commit review and re-revert once resolved.
Working on a smaller reproducer for PR38897.
Reviewers: craig.topper, spatel
Subscribers: sanjoy, jlebar, llvm-commits
Differential Revision: https://reviews.llvm.org/D51897
llvm-svn: 341883
|
|
|
|
|
|
|
|
|
|
|
|
| |
invertible
If the ~X wasn't able to simplify above the max/min, we might be able to simplify it by moving it below the max/min.
I had to modify the ~(min/max ~X, Y) transform to prevent getting stuck in a loop when we saw the new ~(max/min X, ~Y) before the ~Y had been folded away to remove the new not.
Differential Revision: https://reviews.llvm.org/D51398
llvm-svn: 341674
|
|
|
|
|
|
|
|
|
|
| |
This fold is needed to avoid a regression when we try
to recommit rL300977.
We can't see the most basic win currently because
demanded bits changes the patterns:
https://rise4fun.com/Alive/plpp
llvm-svn: 341559
|
|
|
|
|
|
|
|
| |
These tests demonstrate a missing fold that would
also be needed to avoid a regression when we try
to recommit rL300977.
llvm-svn: 341557
|
|
|
|
|
|
|
|
|
|
|
| |
The tests attempted to check for commuted variants
of these folds, but complexity-based canonicalization
meant we had no coverage for at least 1/2 of the cases.
Also, the folds correctly check hasOneUse(), but there
was no coverage for that.
llvm-svn: 341394
|
|
|
|
| |
llvm-svn: 341332
|
|
|
|
| |
llvm-svn: 341291
|
|
|
|
| |
llvm-svn: 338364
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bitwise 'not' of the min/max could be eliminated in the pattern:
%notx = xor i32 %x, -1
%cmp1 = icmp sgt[slt/ugt/ult] i32 %notx, %y
%smax = select i1 %cmp1, i32 %notx, i32 %y
%res = xor i32 %smax, -1
https://rise4fun.com/Alive/lCN
Reviewers: spatel
Reviewed by: spatel
Subscribers: a.elovikov, llvm-commits
Differential Revision: https://reviews.llvm.org/D45317
llvm-svn: 329791
|
|
|
|
| |
llvm-svn: 328109
|
|
|
|
|
|
| |
C) ^ signmask -> (X + C + signmask)' for vector splats.
llvm-svn: 310232
|
|
|
|
|
|
| |
vectors.
llvm-svn: 310195
|
|
|
|
|
|
| |
commit after fixing a typo in r310186.
llvm-svn: 310188
|
|
|
|
| |
llvm-svn: 310186
|
|
|
|
|
|
| |
This can cause an inf-loop. Investigating...
llvm-svn: 301035
|
|
|
|
|
|
|
|
|
| |
This matches the demanded bits behavior in the DAG and should fix:
https://bugs.llvm.org/show_bug.cgi?id=32706
Differential Revision: https://reviews.llvm.org/D32255
llvm-svn: 300977
|
|
|
|
| |
llvm-svn: 299971
|
|
|
|
|
|
|
|
|
|
| |
selects and phis
Currently we only fold with ConstantInt RHS. This generalizes to any Constant RHS.
Differential Revision: https://reviews.llvm.org/D31610
llvm-svn: 299466
|
|
|
|
|
|
| |
with constant argument. NFC
llvm-svn: 299460
|
|
|
|
|
|
| |
and/or/xor with constant argument. NFC
llvm-svn: 299450
|
|
|
|
|
|
| |
into selects the way we do with scalars.
llvm-svn: 299369
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code comments didn't match the code logic, and we didn't actually distinguish the fake unary (not/neg/fneg)
operators from arguments. Adding another level to the weighting scheme provides more structure and can help
simplify the pattern matching in InstCombine and other places.
I fixed regressions that would have shown up from this change in:
rL290067
rL290127
But that doesn't mean there are no pattern-matching logic holes left; some combines may just be missing regression tests.
Should fix:
https://llvm.org/bugs/show_bug.cgi?id=28296
Differential Revision: https://reviews.llvm.org/D27933
llvm-svn: 294049
|
|
|
|
|
|
|
|
|
| |
splat vectors
This removes the restriction for the icmp constant, but as noted by the FIXME comments,
we still need to change individual checks for binop operand constants.
llvm-svn: 277629
|
|
|
|
| |
llvm-svn: 276472
|
|
|
|
|
|
| |
...mmm sandwiches
llvm-svn: 275302
|
|
|
|
| |
llvm-svn: 275297
|
|
|
|
| |
llvm-svn: 275186
|
|
|
|
|
|
|
|
|
|
|
| |
We had two code paths. One would create names like "foo.1" and the other
names like "foo1".
For globals it is important to use "foo.1" to help C++ name demangling.
For locals there is no strong reason to go one way or the other so I
kept the most common mangling (foo1).
llvm-svn: 253804
|
|
|
|
|
|
|
| |
One code change and several test changes to match that
details in http://reviews.llvm.org/D9481
llvm-svn: 237150
|
|
|
|
|
|
|
|
| |
Change by Ankur Garg.
Differential Revision: http://reviews.llvm.org/D6382
llvm-svn: 222740
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
another mechanical change accomplished though the power of terrible Perl
scripts.
I have manually switched some "s to 's to make escaping simpler.
While I started this to fix tests that aren't run in all configurations,
the massive number of tests is due to a really frustrating fragility of
our testing infrastructure: things like 'grep -v', 'not grep', and
'expected failures' can mask broken tests all too easily.
Essentially, I'm deeply disturbed that I can change the testsuite so
radically without causing any change in results for most platforms. =/
llvm-svn: 159547
|
|
|
|
|
|
|
|
| |
input filename so that opt doesn't print the input filename in the
output so that grep lines in the tests don't unintentionally match
strings in the input filename.
llvm-svn: 81537
|
|
|
|
| |
llvm-svn: 81257
|
|
|
|
|
|
| |
of using llvm-as, now that opt supports this.
llvm-svn: 81226
|
|
|
|
| |
llvm-svn: 48103
|
|
|
|
| |
llvm-svn: 47793
|
|
|
|
|
|
| |
Upgrade tests to work with new llvm.exp version of llvm_runtest.
llvm-svn: 36013
|
|
|
|
| |
llvm-svn: 35583
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove "target endian/pointersize" or add "target datalayout" to make
the test parse properly or set the datalayout because defaults changes.
For PR645:
Make global names use the @ prefix.
For llvm-upgrade changes:
Fix test cases or completely remove use of llvm-upgrade for test cases
that cannot survive the new renaming or upgrade capabilities.
llvm-svn: 33533
|
|
llvm-svn: 33296
|