History log of /llvm-project/libc/test/src/string/memory_utils/op_tests.cpp (Results 1 – 25 of 28)
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, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0
# ded08015 12-Sep-2024 Sirui Mu <msrlancern@gmail.com>

[libc] Add osutils for Windows and make libc and its tests build on Windows target (#104676)

This PR first adds osutils for Windows, and changes some libc code to
make libc and its tests build on t

[libc] Add osutils for Windows and make libc and its tests build on Windows target (#104676)

This PR first adds osutils for Windows, and changes some libc code to
make libc and its tests build on the Windows target. It then temporarily
disables some libc tests that are currently problematic on Windows.

Specifically, the changes besides the addition of osutils include:

- Macro `LIBC_TYPES_HAS_FLOAT16` is disabled on Windows. `clang-cl`
generates calls to functions in `compiler-rt` to handle float16
arithmetic and these functions are currently not linked in on Windows.
- Macro `LIBC_TYPES_HAS_INT128` is disabled on Windows.
- The invocation to `::aligned_malloc` is changed to an invocation to
`::_aligned_malloc`.
- The following unit tests are temporarily disabled because they
currently fail on Windows:
- `test.src.__support.big_int_test`
- `test.src.__support.arg_list_test`
- `test.src.fenv.getenv_and_setenv_test`
- Tests involving `__m128i`, `__m256i`, and `__m512i` in
`test.src.string.memory_utils.op_tests.cpp`
- `test_range_errors` in `libc/test/src/math/smoke/AddTest.h` and
`libc/test/src/math/smoke/SubTest.h`

show more ...


Revision tags: llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init
# 88f0dc48 15-Jul-2024 OverMighty <its.overmighty@gmail.com>

[libc] Fix warnings emitted by GCC (#98751)

Fixes #98709.


# 5ff3ff33 12-Jul-2024 Petr Hosek <phosek@google.com>

[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration (#98597)

This is a part of #97655.


# ce9035f5 12-Jul-2024 Mehdi Amini <joker.eph@gmail.com>

Revert "[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration" (#98593)

Reverts llvm/llvm-project#98075

bots are broken


# 3f30effe 11-Jul-2024 Petr Hosek <phosek@google.com>

[libc] Migrate to using LIBC_NAMESPACE_DECL for namespace declaration (#98075)

This is a part of #97655.


Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2
# 07d7b9c2 11-Mar-2024 Guillaume Chatelet <gchatelet@google.com>

[libc] Fix forward arm32 builtbot (#84794)

Introduced by https://github.com/llvm/llvm-project/pull/83441.


# a84e66a9 09-Mar-2024 Guillaume Chatelet <gchatelet@google.com>

[libc] Provide `LIBC_TYPES_HAS_INT64` (#83441)

Umbrella bug #83182


Revision tags: 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
# b6bc9d72 26-Sep-2023 Guillaume Chatelet <gchatelet@google.com>

[libc] Mass replace enclosing namespace (#67032)

This is step 4 of
https://discourse.llvm.org/t/rfc-customizable-namespace-to-allow-testing-the-libc-when-the-system-libc-is-also-llvms-libc/73079


Revision tags: 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
# 1c814c99 30-Jun-2023 Guillaume Chatelet <gchatelet@google.com>

[libc] Improve memcmp latency and codegen

This is based on ideas from @nafi to:
- use a branchless version of 'cmp' for 'uint32_t',
- completely resolve the lexicographic comparison through vector

[libc] Improve memcmp latency and codegen

This is based on ideas from @nafi to:
- use a branchless version of 'cmp' for 'uint32_t',
- completely resolve the lexicographic comparison through vector
operations when wide types are available. We also get rid of byte
reloads and serializing '__builtin_ctzll'.

I did not include the suggestion to replace comparisons of 'uint16_t'
with two 'uint8_t' as it did not seem to help the codegen. This can
be revisited in sub-sequent patches.

The code been rewritten to reduce nested function calls, making the
job of the inliner easier and preventing harmful code duplication.

Reviewed By: nafi3000

Differential Revision: https://reviews.llvm.org/D148717

show more ...


# bd1cba9f 21-Jun-2023 Guillaume Chatelet <gchatelet@google.com>

Revert D148717 "[libc] Improve memcmp latency and codegen"

Once integrated in our codebase the patch triggered a bunch of failing
tests. We do not yet understand where the bug is but we revert it to

Revert D148717 "[libc] Improve memcmp latency and codegen"

Once integrated in our codebase the patch triggered a bunch of failing
tests. We do not yet understand where the bug is but we revert it to
move forward with integration.
This reverts commit 5e32765c15ab8df3d2635a2bb5078c5b1d5714d5.

show more ...


# 5e32765c 12-Jun-2023 Guillaume Chatelet <gchatelet@google.com>

[libc] Improve memcmp latency and codegen

This is based on ideas from @nafi to:
- use a branchless version of 'cmp' for 'uint32_t',
- completely resolve the lexicographic comparison through vector

[libc] Improve memcmp latency and codegen

This is based on ideas from @nafi to:
- use a branchless version of 'cmp' for 'uint32_t',
- completely resolve the lexicographic comparison through vector
operations when wide types are available. We also get rid of byte
reloads and serializing '__builtin_ctzll'.

I did not include the suggestion to replace comparisons of 'uint16_t'
with two 'uint8_t' as it did not seem to help the codegen. This can
be revisited in sub-sequent patches.

The code been rewritten to reduce nested function calls, making the
job of the inliner easier and preventing harmful code duplication.

Reviewed By: nafi3000

Differential Revision: https://reviews.llvm.org/D148717

show more ...


# 1ec995cc 12-Jun-2023 Guillaume Chatelet <gchatelet@google.com>

Revert D148717 "[libc] Improve memcmp latency and codegen"

This broke aarch64 debug buildbot https://lab.llvm.org/buildbot/#/builders/223/builds/21703
This reverts commit bd4f978754758d5ef29d1f10370

Revert D148717 "[libc] Improve memcmp latency and codegen"

This broke aarch64 debug buildbot https://lab.llvm.org/buildbot/#/builders/223/builds/21703
This reverts commit bd4f978754758d5ef29d1f10370f45362da3de37.

show more ...


# bd4f9787 12-Jun-2023 Guillaume Chatelet <gchatelet@google.com>

[libc] Improve memcmp latency and codegen

This is based on ideas from @nafi to:
- use a branchless version of 'cmp' for 'uint32_t',
- completely resolve the lexicographic comparison through vector

[libc] Improve memcmp latency and codegen

This is based on ideas from @nafi to:
- use a branchless version of 'cmp' for 'uint32_t',
- completely resolve the lexicographic comparison through vector
operations when wide types are available. We also get rid of byte
reloads and serializing '__builtin_ctzll'.

I did not include the suggestion to replace comparisons of 'uint16_t'
with two 'uint8_t' as it did not seem to help the codegen. This can
be revisited in sub-sequent patches.

The code been rewritten to reduce nested function calls, making the
job of the inliner easier and preventing harmful code duplication.

Reviewed By: nafi3000

Differential Revision: https://reviews.llvm.org/D148717

show more ...


Revision tags: llvmorg-16.0.6
# e49a6085 05-Jun-2023 Guillaume Chatelet <gchatelet@google.com>

Revert D148717 "[libc] Improve memcmp latency and codegen"

This reverts commit 9ec6ebd3ceabb29482aa18a64b943788b65223dc.

The patch broke RISCV and aarch64 builtbots.


Revision tags: llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3
# 9ec6ebd3 19-Apr-2023 Guillaume Chatelet <gchatelet@google.com>

[libc] Improve memcmp latency and codegen

This is based on ideas from @nafi to:
- use a branchless version of 'cmp' for 'uint32_t',
- completely resolve the lexicographic comparison through vector

[libc] Improve memcmp latency and codegen

This is based on ideas from @nafi to:
- use a branchless version of 'cmp' for 'uint32_t',
- completely resolve the lexicographic comparison through vector
operations when wide types are available. We also get rid of byte
reloads and serializing '__builtin_ctzll'.

I did not include the suggestion to replace comparisons of 'uint16_t'
with two 'uint8_t' as it did not seem to help the codegen. This can
be revisited in sub-sequent patches.

The code been rewritten to reduce nested function calls, making the
job of the inliner easier and preventing harmful code duplication.

Reviewed By: nafi3000

Differential Revision: https://reviews.llvm.org/D148717

show more ...


# a417ee9c 02-May-2023 Joseph Huber <jhuber6@vols.utk.edu>

[libc] Remove use of 'assert' from the string tests

Currently we use `assert` as a stand-in for the typical test assertions.
This is because these functions exist outside of the base test class so
w

[libc] Remove use of 'assert' from the string tests

Currently we use `assert` as a stand-in for the typical test assertions.
This is because these functions exist outside of the base test class so
we can't use the typical assertion methods. The presence of these
asserts makes it difficult to compile these tests in a standalone
format. This patch removes all occurrences.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D149656

show more ...


Revision tags: llvmorg-16.0.2
# 458734b8 18-Apr-2023 Guillaume Chatelet <gchatelet@google.com>

[reland][libc] handle memset sequence as a separate struct

These sequence of calls don't really make sense for head_tail and loop_and_tail.


# 3950e44e 18-Apr-2023 Guillaume Chatelet <gchatelet@google.com>

Revert "[libc] handle memset sequence as a separate struct"

This patch broke the build bots.
This reverts commit 6fdc244e9f13d2ce20a26d05513f22a1e099f90a.


# 6fdc244e 18-Apr-2023 Guillaume Chatelet <gchatelet@google.com>

[libc] handle memset sequence as a separate struct

These sequence of calls don't really make sense for head_tail and loop_and_tail.


# 1a4696d9 11-Apr-2023 Guillaume Chatelet <gchatelet@google.com>

[libc][NFC] Use new approach based on types to code memset


Revision tags: llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2
# a2569a76 07-Feb-2023 Guillaume Chatelet <gchatelet@google.com>

[libc][NFC] Rename macros


# af1315c2 06-Feb-2023 Siva Chandra Reddy <sivachandra@google.com>

[libc][NFC] Move UnitTest and IntegrationTest to the 'test' directory.

This part of the effort to make all test related pieces into the `test`
directory. This helps is excluding test related pieces

[libc][NFC] Move UnitTest and IntegrationTest to the 'test' directory.

This part of the effort to make all test related pieces into the `test`
directory. This helps is excluding test related pieces in a straight
forward manner if LLVM_INCLUDE_TESTS is OFF. Future patches will also move
the MPFR wrapper and testutils into the 'test' directory.

show more ...


# 1637351f 07-Feb-2023 Guillaume Chatelet <gchatelet@google.com>

[libc][NFC] Rename architecture macros and move to macros folder


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
# 3635195e 27-Oct-2022 Guillaume Chatelet <gchatelet@google.com>

[libc] Improve testing of mem functions

This patch extracts the testing logic from `op_tests.cpp` into
`memory_check_utils.h` so we can reuse it for mem* function integration
tests.

This makes test

[libc] Improve testing of mem functions

This patch extracts the testing logic from `op_tests.cpp` into
`memory_check_utils.h` so we can reuse it for mem* function integration
tests.

This makes testing consistent and thorough.
For instance this catches a bug that got unnoticed during submission of
D136595 and D135134. Integration test for memcmp was only testing a
single size.

This also leverages ASAN to make sure that data is not read / written
outside permitted boundaries

Differential Revision: https://reviews.llvm.org/D136865

show more ...


# d7917fdc 24-Oct-2022 Guillaume Chatelet <gchatelet@google.com>

[libc] Use cpp::byte instead of char in mem* functions

`cpp::byte` is better than `char` which -depending on platform- can be `signed char` or `unsigned char`. This has introduced subtle arithmetic

[libc] Use cpp::byte instead of char in mem* functions

`cpp::byte` is better than `char` which -depending on platform- can be `signed char` or `unsigned char`. This has introduced subtle arithmetic errors.

show more ...


12