History log of /llvm-project/llvm/test/Transforms/InstCombine/cmp-intrinsic.ll (Results 1 – 25 of 27)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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


12