- Mar 08, 2023
-
-
Noah Goldstein authored
Masked variants of UNPCKLPD, UNPCKHPD, and PERMILPS were missing and be transformed with the same logic as their non-masked counterparts. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D144763
-
Noah Goldstein authored
Use this to handle new transform: `{v}unpck{l|h}pd` -> `{v}shufps`. We need the sched information here as `{v}shufps` is 1 more byte of code size, so we only want to make this transformation if `{v}shufps` is actually faster. Differential Revision: https://reviews.llvm.org/D144570
-
Noah Goldstein authored
Differential Revision: https://reviews.llvm.org/D145531
-
Craig Topper authored
This only matters for types larger than i64, and is consistent with the code for RecurKind::And which also creates all 1s. We don't have any tests for UMin or And with types larger than i64.
-
Craig Topper authored
There are a couple bugs in the current support for this: -We do all the parsing in single precision so any value less than or equal to the minimum fp32 is accepted as the minimum value for f64. -To support fp16 minimum value, getLoadFP32Imm has a special case, but that causes a miscompile in CodeGen. Differential Revision: https://reviews.llvm.org/D145542
-
Craig Topper authored
Instead of converting to FP value, store them as Index using an immediate operand. Do the same for the explicit index form. This avoids using the FP32 version of these special values as the representation for fli.h and fli.d. inf/nan aren't so bad, but "min" is problematic as the current implementation allows fli.d and fli.h to accept the decimal version of the fp32 minimum value. I will submit another patch to fix that. Differential Revision: https://reviews.llvm.org/D145535
-
Joseph Huber authored
The support for enabling and disabling certain architectures for the OpenMP device RTL is different between AMD and Nvidia. This patch updates the logic to make it common. This supports the `auto` format more generally via the `nvptx-arch` and `amdgpu-arch` options. (These are not availible at CMake time without a runtimes build, or another install somewhere. But that only prevents users from using auto). Reviewed By: ye-luo Differential Revision: https://reviews.llvm.org/D145513
-
Luke Lau authored
These intrinsics are equivalent to the regular @llvm.riscv.vssegNF intrinsics, only they accept fixed length vectors in their overloaded types: The regular intrinsics only operate on scalable vectors. These intrinsics convert the fixed length vectors to scalable ones, and then lower it on to the regular scalable intrinsic. This mirrors the intrinsics added in 0803dba7 This will be used in a later patch with the Interleaved Access pass. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D145022
-
Renaud-K authored
Differential revision: https://reviews.llvm.org/D145530
-
Mark de Wever authored
The module std does not provide c-types in the global namespace. This means all these types need to be fully qualified. This is a first step to convert them by using sed. Since this is an automated conversion other types like uint64_t are kept as is. Note that tests in the directory libcxx/test/std/depr/depr.c.headers should not be converted automatically. This requires manual attention, there some test require testing uint32_t in the global namespace. These test should fail when using the std module, and pass when using the std.compat module. A similar issue occurs with atomic, atomic_uint32_t is specified as using atomic_uint32_t = atomic<uint32_t>; // freestanding So here too we need to keep the name in the global namespace in the tests. Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D145520
-
Paul Walker authored
I've pulled this change from D145404 to land in isolation because I'm concerned the code might be more important than the test coverage might suggest (NOTE: the code has no test coverage).
-
Nikolas Klauser authored
This reverts commit a9356a51.
-
Michael Buch authored
-
Xi Ruoyao authored
Without the definition, build fails on AArch64 with > error: 'AT_HWCAP2' undeclared (first use in this function); > did you mean 'AT_HWCAP'? with old Glibc versions. Differential Revision: https://reviews.llvm.org/D145494
-
Ilya Leoshkevich authored
Glibc provides the argp_parse() function for parsing command line arguments [1]. Indicate that argc/argv are read from and arg_index is written to. Strictly speaking, we also need to indicate that argp is read from, but this would require describing its layout, and most people use a static initializer there, so it's not worth the effort. [1] https://www.gnu.org/software/libc/manual/html_node/Argp.html Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D143330
-
Simon Pilgrim authored
-
Alex Richardson authored
When building compiler-rt builtins for x86_64 they library will by default also be built for i386. We unconditionally add the Float16 compile flags since the check for Float16 support will be done using x86_64 compiler flags, but i386 does not actually support it. Fix this by moving the COMPILER_RT_HAS_FLOAT16 and COMPILER_RT_HAS_FLOAT16 checks to a per-target-architecture check inside the loop (using `check_c_source_compiles` and `cmake_{push,pop}_check_state`). Many of the checks in the builtin-config-ix file should probably also be changed to per-target-arch checks, but so far only the Float16 one has caused issues. This is an alternative to D136044 which added a special case for i386 FreeBSD. Fixes: https://github.com/llvm/llvm-project/issues/57224 Differential Revision: https://reviews.llvm.org/D145237
-
David Spickett authored
The last user was ProcessMessage, which has itself been removed. Reviewed By: emaste Differential Revision: https://reviews.llvm.org/D145561
-
Nikolas Klauser authored
This check flags code which uses `_LIBCPP_STD_VER` the wrong way, or tries to use `__cplusplus`. It flags cases where we use `_LIBCPP_STD_VER >` instead of `_LIBCPP_STD_VER >=` and where wrong values are used (e.g. `_LIBCPP_STD_VER >= 24`). Reviewed By: ldionne, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D144261
-
Shivam Gupta authored
Differential Revision: https://reviews.llvm.org/D145554
-
David Truby authored
This implements the atand intrinsic by performing a multiplication by 180/pi to the result of a call to atan inline. Differential Revision: https://reviews.llvm.org/D144885
-
Siva Chandra authored
Reviewed By: mikhail.ramalho Differential Revision: https://reviews.llvm.org/D145560
-
Viktoriia Bakalova authored
This reverts commit fd8c9ef2. Differential Revision: https://reviews.llvm.org/D145577
-
Guillaume Chatelet authored
In the same vein as https://reviews.llvm.org/D141553 Enable the feature globally to ensure layering and catch circular dependencies (https://llvm.org/docs/CodingStandards.html#library-layering). Differential Revision: https://reviews.llvm.org/D143678
-
David Spickett authored
The last use of these was removed in cd443398. Reviewed By: emaste Differential Revision: https://reviews.llvm.org/D145559
-
Valentin Clement authored
-
David Green authored
These should have been using the LDURBi instructions where the offset is negative, as reported from the reproducer in D144086.
-
Viktoriia Bakalova authored
This reverts commit 85a5c17b.
-
Viktoriia Bakalova authored
This reverts commit 7bd56dda.
-
Viktoriia Bakalova authored
This reverts commit 9814b4d0.
-
Viktoriia Bakalova authored
This reverts commit 85a5c17b.
-
Viktoriia Bakalova authored
This reverts commit 2eb5ac99. Differential Revision: https://reviews.llvm.org/D145576
-
Mikhail R. Gadelha authored
This patch includes: 1. Better error message when cmake finds incompatible triple 2. Added missing header dependencies libc/include/CMakeLists.txt as per app.td 3. Removed unused $LLVM_LIBC_INCLUDE_DIRS cmake variable Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D145496
-
Carl Ritson authored
This reverts commit be0ef4b9. Investigating use after free issue.
-
Valery Pykhtin authored
We reuse live registers after tracking one MBB as live-ins to the successor MBB if the successor is only one but we don't check if the successor has other predecessors. `A B` ` \ /` ` C` A and B have one successor but C has live-ins defined by A and B and therefore should be initialized using LIS. This fixes 83 lit tests out if 420 with EXPENSIVE_CHECK enabled. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D136918
-
Florian Hahn authored
Update less_first,less_second to use std::get to access the first and second component. This extends support to any type implementing std::get, like tuples. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D145489
-
Viktoriia Bakalova authored
This reverts commit 2eb5ac99.
-
Alex Bradbury authored
Differential Revision: https://reviews.llvm.org/D144465
-
Michael Buch authored
This got fixed in D145241 Differential Revision: https://reviews.llvm.org/D145241
-
Florian Hahn authored
Check if replicate recipe is in a replicate region when considering to collect predicated instructions. This allows use IsPredicated for recipes with a mask attached directly in D143865. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D145322
-