|
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4 |
|
| #
38fffa63 |
| 06-Nov-2024 |
Paul Walker <paul.walker@arm.com> |
[LLVM][IR] Use splat syntax when printing Constant[Data]Vector. (#112548)
|
|
Revision tags: llvmorg-19.1.3 |
|
| #
095d49da |
| 17-Oct-2024 |
Yingwei Zheng <dtcxzyw2333@gmail.com> |
[InstCombine] Set `samesign` when converting signed predicates into unsigned (#112642)
Alive2: https://alive2.llvm.org/ce/z/6cqdt-
|
|
Revision tags: llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5 |
|
| #
b8f3024a |
| 24-Apr-2024 |
Andreas Jonson <andjo403@hotmail.com> |
[InstCombine] Swap out range metadata to range attribute for cttz/ctlz/ctpop (#88776)
Since all optimizations that use range metadata now also handle range attribute, this patch replaces writes of
[InstCombine] Swap out range metadata to range attribute for cttz/ctlz/ctpop (#88776)
Since all optimizations that use range metadata now also handle range attribute, this patch replaces writes of
range metadata for call instructions to range attributes.
show more ...
|
|
Revision tags: llvmorg-18.1.4 |
|
| #
b1094776 |
| 11-Apr-2024 |
Yingwei Zheng <dtcxzyw2333@gmail.com> |
[InstCombine] Infer nsw/nuw for trunc (#87910)
This patch adds support for inferring trunc's nsw/nuw flags.
|
|
Revision tags: llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4 |
|
| #
13441eb0 |
| 03-May-2023 |
Noah Goldstein <goldstein.w.n@gmail.com> |
[InstCombine] Add folds for `(icmp spred (ssub.sat X, Y), 0)` -> `X spred Y`
Alive2 links: eq: https://alive2.llvm.org/ce/z/Fv3mvc ne: https://alive2.llvm.org/ce/z/AEuEXU sle: https://al
[InstCombine] Add folds for `(icmp spred (ssub.sat X, Y), 0)` -> `X spred Y`
Alive2 links: eq: https://alive2.llvm.org/ce/z/Fv3mvc ne: https://alive2.llvm.org/ce/z/AEuEXU sle: https://alive2.llvm.org/ce/z/mfKGUS sge: https://alive2.llvm.org/ce/z/tX3_M4 sgt: https://alive2.llvm.org/ce/z/x7VgnZ slt: https://alive2.llvm.org/ce/z/rQN4TM
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D149521
show more ...
|
|
Revision tags: llvmorg-16.0.3 |
|
| #
084ff0db |
| 29-Apr-2023 |
Noah Goldstein <goldstein.w.n@gmail.com> |
[InstCombine] Add tests for `(icmp pred (ssub.sat X, Y), 0)`; NFC
Differential Revision: https://reviews.llvm.org/D149520
|
| #
dc13624e |
| 29-Apr-2023 |
Noah Goldstein <goldstein.w.n@gmail.com> |
[InstCombine] Fold `(cmp eq/ne (umax X, Y),0)` -> `(cmp eq/ne (or X, Y),0)`
`or` is almost always preferable.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D149426
|
| #
ecad53c3 |
| 28-Apr-2023 |
Noah Goldstein <goldstein.w.n@gmail.com> |
[InstCombine] Don't fold `uadd.sat` to `or` if it increase instruction count
In the `(cmp eq/ne (uadd.sat X, Y),0)` case, we where missing a `hasOneUse` check.
Differential Revision: https://review
[InstCombine] Don't fold `uadd.sat` to `or` if it increase instruction count
In the `(cmp eq/ne (uadd.sat X, Y),0)` case, we where missing a `hasOneUse` check.
Differential Revision: https://reviews.llvm.org/D149425
show more ...
|
| #
585af9e3 |
| 28-Apr-2023 |
Noah Goldstein <goldstein.w.n@gmail.com> |
[InstCombine] Add tests `(cmp eq/ne (umax/uadd.sat X, Y), 0)`; NFC
Differential Revision: https://reviews.llvm.org/D149424
|
|
Revision tags: llvmorg-16.0.2 |
|
| #
2caaec65 |
| 06-Apr-2023 |
Nikita Popov <npopov@redhat.com> |
[InstCombine] Regenerate all test checks (NFC)
Due to an improvement to name preservation, a lot of InstCombine tests now show spurious diffs when regenerated.
Rather than regenerating individual f
[InstCombine] Regenerate all test checks (NFC)
Due to an improvement to name preservation, a lot of InstCombine tests now show spurious diffs when regenerated.
Rather than regenerating individual files when they get touched, mass-regenerate all UTC-based InstCombine tests. I have then reset a number of files showing suspicious diffs where the UTC output has clearly been manually adjusted. I apologize if I missed anything in the mass of changes.
show more ...
|
|
Revision tags: llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4 |
|
| #
e2079e89 |
| 07-Mar-2023 |
Noah Goldstein <goldstein.w.n@gmail.com> |
[InstCombine] Add transform `(icmp eq/ne bitreverse(x), C)` -> `(icmp eq/ne x, bitreverse(C))`
EQ: https://alive2.llvm.org/ce/z/TESofr NE: https://alive2.llvm.org/ce/z/mwloaT
Reviewed By: nikic
Di
[InstCombine] Add transform `(icmp eq/ne bitreverse(x), C)` -> `(icmp eq/ne x, bitreverse(C))`
EQ: https://alive2.llvm.org/ce/z/TESofr NE: https://alive2.llvm.org/ce/z/mwloaT
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D145339
show more ...
|
| #
a4bb08ea |
| 05-Mar-2023 |
Noah Goldstein <goldstein.w.n@gmail.com> |
[InstCombine] Add tests for `(icmp eq/ne bitreverse(x), C)`; NFC
Differential Revision: https://reviews.llvm.org/D145338
|
|
Revision tags: llvmorg-16.0.0-rc3 |
|
| #
6f149a17 |
| 10-Feb-2023 |
chenglin.bi <chenglin.bi@linaro.org> |
[InstCombine] Look through truncate to fold icmp with intrinsics
The output of intrinsic functions like ctpop, cttz, ctlz have limited range from 0 to bitwidth. So if the truncate destination type c
[InstCombine] Look through truncate to fold icmp with intrinsics
The output of intrinsic functions like ctpop, cttz, ctlz have limited range from 0 to bitwidth. So if the truncate destination type can hold the source bitwidth size, we can just ignore the truncate and use the truncate src to do combination.
Alive2 proofs: https://alive2.llvm.org/ce/z/9D_-qP
Reviewed By: spatel
Differential Revision: https://reviews.llvm.org/D143368
show more ...
|
| #
e09c76fe |
| 09-Feb-2023 |
chenglin.bi <chenglin.bi@linaro.org> |
[Instcombine] Precommit tests update for icmp(trunc cttz/ctlz(x), C); NFC
|
|
Revision tags: llvmorg-16.0.0-rc2 |
|
| #
defa9b8d |
| 06-Feb-2023 |
chenglin.bi <chenglin.bi@linaro.org> |
[Instcombine] precommit tests for icmp with intrinsic look through trunc; NFC
|
|
Revision tags: llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2 |
|
| #
4ab40eca |
| 03-Oct-2022 |
Bjorn Pettersson <bjorn.a.pettersson@ericsson.com> |
[test][InstCombine] Update some test cases to use opaque pointers
These tests cases were converted using the script at https://gist.github.com/nikic/98357b71fd67756b0f064c9517b62a34
Differential Re
[test][InstCombine] Update some test cases to use opaque pointers
These tests cases were converted using the script at https://gist.github.com/nikic/98357b71fd67756b0f064c9517b62a34
Differential Revision: https://reviews.llvm.org/D135094
show more ...
|
|
Revision tags: llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1 |
|
| #
acdc419c |
| 04-Feb-2022 |
Bjorn Pettersson <bjorn.a.pettersson@ericsson.com> |
[test] Use -passes=instcombine instead of -instcombine in lots of tests. NFC
Another step moving away from the deprecated syntax of specifying pass pipeline in opt.
Differential Revision: https://r
[test] Use -passes=instcombine instead of -instcombine in lots of tests. NFC
Another step moving away from the deprecated syntax of specifying pass pipeline in opt.
Differential Revision: https://reviews.llvm.org/D119081
show more ...
|
|
Revision tags: llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1 |
|
| #
5a6e66ec |
| 26-Oct-2020 |
Sanjay Patel <spatel@rotateright.com> |
[InstCombine] add folds for icmp+ctpop
https://alive2.llvm.org/ce/z/XjFPQJ
define void @src(i64 %value) { %t0 = call i64 @llvm.ctpop.i64(i64 %value) %gt = icmp ugt i64 %t0, 63 %lt = i
[InstCombine] add folds for icmp+ctpop
https://alive2.llvm.org/ce/z/XjFPQJ
define void @src(i64 %value) { %t0 = call i64 @llvm.ctpop.i64(i64 %value) %gt = icmp ugt i64 %t0, 63 %lt = icmp ult i64 %t0, 64 call void @use(i1 %gt, i1 %lt) ret void }
define void @tgt(i64 %value) { %eq = icmp eq i64 %value, -1 %ne = icmp ne i64 %value, -1 call void @use(i1 %eq, i1 %ne) ret void }
declare i64 @llvm.ctpop.i64(i64) #1 declare void @use(i1, i1)
show more ...
|
| #
05f011b2 |
| 26-Oct-2020 |
Sanjay Patel <spatel@rotateright.com> |
[InstCombine] add tests for ctpop at bitwidth limit; NFC
|
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1, llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1, llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3, llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2, llvmorg-8.0.1-rc1 |
|
| #
cee313d2 |
| 17-Apr-2019 |
Eric Christopher <echristo@gmail.com> |
Revert "Temporarily Revert "Add basic loop fusion pass.""
The reversion apparently deleted the test/Transforms directory.
Will be re-reverting again.
llvm-svn: 358552
|
|
Revision tags: llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2, llvmorg-8.0.0-rc1 |
|
| #
6515db20 |
| 19-Jan-2019 |
Nikita Popov <nikita.ppv@gmail.com> |
[InstCombine] Simplify cttz/ctlz + icmp ugt/ult
Followup to D55745, this time handling comparisons with ugt and ult predicates (which are the canonical forms for non-equality predicates).
For ctlz
[InstCombine] Simplify cttz/ctlz + icmp ugt/ult
Followup to D55745, this time handling comparisons with ugt and ult predicates (which are the canonical forms for non-equality predicates).
For ctlz we can convert into a simple icmp, for cttz we can convert into a mask check.
Differential Revision: https://reviews.llvm.org/D56355
llvm-svn: 351645
show more ...
|
| #
25a02c12 |
| 05-Jan-2019 |
Nikita Popov <nikita.ppv@gmail.com> |
[InstCombine] Improve cttz/ctlz + icmp tests; NFC
Change part of the tests to use vectors (I'm using scalar for ugt and vector for ult), add multiuse variations, rename %lz to %tz for the cttz tests
[InstCombine] Improve cttz/ctlz + icmp tests; NFC
Change part of the tests to use vectors (I'm using scalar for ugt and vector for ult), add multiuse variations, rename %lz to %tz for the cttz tests.
llvm-svn: 350471
show more ...
|
| #
b4668040 |
| 05-Jan-2019 |
Nikita Popov <nikita.ppv@gmail.com> |
[InstCombine] Add cttz/ctlz + icmp ugt/ult tests; NFC
llvm-svn: 350468
|
| #
20853a78 |
| 18-Dec-2018 |
Nikita Popov <nikita.ppv@gmail.com> |
[InstCombine] Simplify cttz/ctlz + icmp eq/ne into mask check
Checking whether a number has a certain number of trailing / leading zeros means checking whether it is of the form XXXX1000 / 0001XXXX,
[InstCombine] Simplify cttz/ctlz + icmp eq/ne into mask check
Checking whether a number has a certain number of trailing / leading zeros means checking whether it is of the form XXXX1000 / 0001XXXX, which can be done with an and+icmp.
Related to https://bugs.llvm.org/show_bug.cgi?id=28668. As a next step, this can be extended to non-equality predicates.
Differential Revision: https://reviews.llvm.org/D55745
llvm-svn: 349530
show more ...
|
| #
bb69aaa6 |
| 16-Dec-2018 |
Nikita Popov <nikita.ppv@gmail.com> |
[InstCombined] Add more tests for cttz/ctlz + icmp; NFC
Test cases other than icmp with the bitwidth.
llvm-svn: 349310
|