History log of /llvm-project/llvm/unittests/Support/KnownBitsTest.cpp (Results 1 – 25 of 70)
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
# 877cb9a2 05-Nov-2024 goldsteinn <35538541+goldsteinn@users.noreply.github.com>

[KnownBits] Make `{s,u}{add,sub}_sat` optimal (#113096)

Changes are:
1) Make signed-overflow detection optimal
2) For signed-overflow, try to rule out direction even if we can't
to

[KnownBits] Make `{s,u}{add,sub}_sat` optimal (#113096)

Changes are:
1) Make signed-overflow detection optimal
2) For signed-overflow, try to rule out direction even if we can't
totally rule out overflow.
3) Intersect add/sub assuming no overflow with possible overflow
clamping values as opposed to add/sub without the assumption.

show more ...


Revision tags: llvmorg-19.1.3
# 40c3e583 22-Oct-2024 Jay Foad <jay.foad@amd.com>

[KnownBits] Check that mul is optimal for low order bits (#113316)


Revision tags: llvmorg-19.1.2
# 5cabf150 01-Oct-2024 Jay Foad <jay.foad@amd.com>

[KnownBits] Make `avg{Ceil,Floor}S` optimal (#110688)

Rewrite the signed functions in terms of the unsigned ones which are
already optimal.


Revision tags: llvmorg-19.1.1
# bbdca53b 30-Sep-2024 Noah Goldstein <goldstein.w.n@gmail.com>

[KnownBitsTest] Add optimality tests to some optimal impls; NFC

Adding optimality test to `add`, `sub`, `avgCeilU` and `avgFloorU`


Revision tags: llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3
# 11ba72e6 12-Aug-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[KnownBits] Add KnownBits::add and KnownBits::sub helper wrappers. (#99468)


Revision tags: llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8
# 4f111198 10-Jun-2024 c8ef <c8ef@outlook.com>

[KnownBits] re-introduce RefinePosionToZero in unittest (#94848)

Context: https://github.com/llvm/llvm-project/pull/94568/files#r1631349423

- Reintroduce the RefinePositionToZero path in the unit

[KnownBits] re-introduce RefinePosionToZero in unittest (#94848)

Context: https://github.com/llvm/llvm-project/pull/94568/files#r1631349423

- Reintroduce the RefinePositionToZero path in the unittest.
- Adjust some inline function argument hints to match the same style.

show more ...


# b25b1db8 07-Jun-2024 c8ef <c8ef@outlook.com>

[KnownBits] Remove `hasConflict()` assertions (#94568)

Allow KnownBits to represent "always poison" values via conflict.

close: #94436


Revision tags: llvmorg-18.1.7
# eab92cb7 19-May-2024 Nhat Nguyen <nhat7203@gmail.com>

[llvm] Add KnownBits implementations for avgFloor and avgCeil (#86445)

This PR is to address the issue #84640


Revision tags: llvmorg-18.1.6, llvmorg-18.1.5
# 346d2c02 22-Apr-2024 Jay Foad <jay.foad@amd.com>

[KnownBitsTest] Standardize variable names in exhaustive tests


# f0cbdd3e 22-Apr-2024 Jay Foad <jay.foad@amd.com>

[KnownBitsTest] Print name of function when exhaustive tests fail (#89588)

When exhaustive unary/binary tests fail, print the name of the function
being tested as well as the values of the inputs a

[KnownBitsTest] Print name of function when exhaustive tests fail (#89588)

When exhaustive unary/binary tests fail, print the name of the function
being tested as well as the values of the inputs and outputs.

Example of a simulated failure in testing "udiv exact":

unittests/Support/KnownBitsTest.cpp:99: Failure
Value of: checkResult(Name, Exact, Computed, {Known1, Known2},
CheckOptimality)
Actual: false (udiv exact: Inputs = ???1, ????, Computed = ???1, Exact =
0???)
Expected: true

show more ...


# 10654e46 22-Apr-2024 Jay Foad <jay.foad@amd.com>

[KnownBitsTest] Common up isCorrect and isOptimal. NFC. (#89585)

This de-duplicates the code that prints useful information when a test
fails.


# 0a5f50d5 19-Apr-2024 Jay Foad <jay.foad@amd.com>

[KnownBits] Simplify optimality checking in unit tests. NFC. (#89368)

Use bool instead of function_ref.


# d8a26ca3 18-Apr-2024 Jay Foad <jay.foad@amd.com>

[KnownBits] Make abdu and abds optimal (#89081)

Fixes #84212


Revision tags: llvmorg-18.1.4, llvmorg-18.1.3
# 4aba595f 02-Apr-2024 Atousa Duprat <atousa.p@gmail.com>

[ADT] Add signed and unsigned mulh to APInt (#84719)

Fixes #84207


Revision tags: llvmorg-18.1.2
# 110f6301 19-Mar-2024 Jay Foad <jay.foad@amd.com>

[KnownBits] Remove useless lambdas from unit test


# 91e68a41 14-Mar-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[Support] KnownBitsTest - don't bother creating lambdas in testBinaryOpExhaustive callbacks if we can just use the raw KnownBits/APIntOps function reference. NFCI.


# ffe41819 12-Mar-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[Support] Add KnownBits::abds signed absolute difference and rename absdiff -> abdu (#84897)

When I created KnownBits::absdiff, I totally missed that we already have ISD::ABDS/ABDU nodes, and we use

[Support] Add KnownBits::abds signed absolute difference and rename absdiff -> abdu (#84897)

When I created KnownBits::absdiff, I totally missed that we already have ISD::ABDS/ABDU nodes, and we use this term in other places/targets as well.

I've added the KnownBits::abds implementation and renamed KnownBits::absdiff to KnownBits::abdu.

Followup to #84791

show more ...


# 33588384 12-Mar-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[ADT] Add APIntOps::abds signed absolute difference and rename absdiff -> abdu (#84791)

When I created APIntOps::absdiff, I totally missed that we already have ISD::ABDS/ABDU nodes, and we use this

[ADT] Add APIntOps::abds signed absolute difference and rename absdiff -> abdu (#84791)

When I created APIntOps::absdiff, I totally missed that we already have ISD::ABDS/ABDU nodes, and we use this term in other places/targets as well.

I've added the APIntOps::abds implementation and renamed APIntOps::absdiff to APIntOps::abdu.

Given that APIntOps::absdiff is so young I don't think we need to create a deprecation wrapper, but I can if anyone thinks it important.

I'll do a KnownBits rename patch after this.

show more ...


Revision tags: llvmorg-18.1.1
# d81db0e5 06-Mar-2024 Noah Goldstein <goldstein.w.n@gmail.com>

[KnownBits] Implement knownbits `lshr`/`ashr` with exact flag

The exact flag basically allows us to set an upper bound on shift
amount when we have a known 1 in `LHS`.

Typically we deduce exact usi

[KnownBits] Implement knownbits `lshr`/`ashr` with exact flag

The exact flag basically allows us to set an upper bound on shift
amount when we have a known 1 in `LHS`.

Typically we deduce exact using knownbits (on non-exact incoming
shifts), so this is particularly impactful, but may be useful in some
circumstances.

Closes #84254

show more ...


# 17162b61 29-Feb-2024 Noah Goldstein <goldstein.w.n@gmail.com>

[KnownBits] Make `nuw` and `nsw` support in `computeForAddSub` optimal

Just some improvements that should hopefully strengthen analysis.

Closes #83580


# 61c06775 29-Feb-2024 Noah Goldstein <goldstein.w.n@gmail.com>

[KnownBits] Add API for `nuw` flag in `computeForAddSub`; NFC


# 214f8972 01-Mar-2024 Fangrui Song <i@maskray.me>

[unittest] Fix -Wsign-compare warnings in KnownBits.cpp after #82354


# fcdf818a 01-Mar-2024 Simon Pilgrim <RKSimon@users.noreply.github.com>

[KnownBits] Add KnownBits::absdiff to compute the absolute difference of 2 unsigned values (#82354)

Equivalent to "umax(A, B) - umin(A, B)"

This is just an initial correctness implementation, hop

[KnownBits] Add KnownBits::absdiff to compute the absolute difference of 2 unsigned values (#82354)

Equivalent to "umax(A, B) - umin(A, B)"

This is just an initial correctness implementation, hopefully we can make this optimal in the future.

show more ...


Revision tags: 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
# 730df5a4 18-Oct-2023 Christian Kissig <dev@kissig.fastmail.fm>

[Support] Add KnownBits::computeForSubBorrow (#67788)

- [Support] Add KnownBits::computeForSubBorrow
- [CodeGen] Implement USUBC, USUBO_CARRY, and SSUBO_CARRY with
KnownBits::computeForSubBorrow

[Support] Add KnownBits::computeForSubBorrow (#67788)

- [Support] Add KnownBits::computeForSubBorrow
- [CodeGen] Implement USUBC, USUBO_CARRY, and SSUBO_CARRY with
KnownBits::computeForSubBorrow
- [CodeGen] Compute unknown bits for Carry/Borrow for ADD/SUB
- [CodeGen] Compute known bits of Carry/Borrow for UADDO, SADDO, USUBO,
and SSUBO

Fixes #65893

---------

Co-authored-by: Shafik Yaghmour <shafik@users.noreply.github.com>

show more ...


Revision tags: 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
# 660e4530 31-May-2023 Nikita Popov <npopov@redhat.com>

[KnownBits] Also test 1-bit values in exhaustive tests (NFC)

Similar to what we do with ConstantRanges, also test 1-bit values
in exhaustive tests, as these often expose special conditions.
This wou

[KnownBits] Also test 1-bit values in exhaustive tests (NFC)

Similar to what we do with ConstantRanges, also test 1-bit values
in exhaustive tests, as these often expose special conditions.
This would have exposed the assertion failure fixed in D151788
earlier.

show more ...


123