- Jun 15, 2023
-
-
Amaury Séchet authored
-
Philip Reames authored
This patch teaches performCombineVMergeAndVOps how to handle a True instruction (the one being merged into) which is a _TU psuedo, but with an implicit_def passthrough operand. These are semantically equivalent to the unsuffixed "TA" psuedos, and we can hnndle them as such. This is a companion to D152380, and demonstrates the unsuffixed to _TA pseudo transition for a non-VMERGE case. Between the two of them, these should cover all the changes required to the post-ISEL combines, and other arithmetic-like instructions should be just TD changes. See https://discourse.llvm.org/t/riscv-transition-in-vector-pseudo-structure-policy-variants/71295 for context on the patch series. Differential Revision: https://reviews.llvm.org/D152740
-
Amaury Séchet authored
-
Shilei Tian authored
If the system has 32 threads, then the test will fail because of partial match.
-
Aart Bik authored
Reviewed By: Peiming, K-Wu Differential Revision: https://reviews.llvm.org/D152874
-
Amaury Séchet authored
-
Krzysztof Parzyszek authored
-
Krzysztof Parzyszek authored
-
Amaury Séchet authored
-
- Jun 14, 2023
-
-
Igor Kirillov authored
Differential Revision: https://reviews.llvm.org/D152025
-
Florian Hahn authored
In same cases, the stride may not be a constant. Just skip those cases for now. This should only happen for cases where LV interleaves only, if it is vectorized the stride needs to be versioned to a constant.
-
Craig Topper authored
We don't have VP_ANY_EXTEND or VP_SIGN_EXTEND_INREG yet so I've deviated a little from the non-VP lowering. My goal was to fix the crashes that occurs on these test cases without this patch. Reviewed By: fakepaper56 Differential Revision: https://reviews.llvm.org/D152854
-
Shilei Tian authored
-
Craig Topper authored
Add ExtraPreds parameter to FPUnaryOp_r_frm_m to pass IsRV64 so we don't need RV64 versions of ExtInfo_rr. Differential Revision: https://reviews.llvm.org/D152890
-
Shilei Tian authored
This patch fixes the issue that, if we have a compile-time serialized parallel region (such as `if (0)`) with `num_threads`, followed by a regular parallel region, the regular parallel region will pick up the value set in the serialized parallel region incorrectly. The reason is, in the front end, if we can prove a parallel region has to serialized, instead of emitting `__kmpc_fork_call`, the front end directly emits `__kmpc_serialized_parallel`, body, and `__kmpc_end_serialized_parallel`. However, this "optimization" doesn't consider the case where `num_threads` is used such that `__kmpc_push_num_threads` is still emitted. Since we don't reset the value in `__kmpc_serialized_parallel`, it will affect the next parallel region followed by it. Fix #63197. Reviewed By: tlwilmar Differential Revision: https://reviews.llvm.org/D152883
-
Adrian Prantl authored
This patch resolves an issue that currently accounts for the vast majority of failures on the matrix bot. Differential Revision: https://reviews.llvm.org/D152872
-
zhongyunde authored
``` Legalize t3: v2i16 = bitcast i32 with (v2i16 extract_subvector (v4i16 bitcast (v2i32 scalar_to_vector (i32 in))), 0) ``` Fix https://github.com/llvm/llvm-project/issues/61638 NOTE: Don't touch getPreferredVectorAction like X86 as this will touch too many test cases. Reviewed By: dmgreen, paulwalker-arm, efriedma Differential Revision: https://reviews.llvm.org/D147678
-
zhongyunde authored
precommit tests for D147678 as we need tests cover BE too. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D152815
-
Nikita Popov authored
-
Kelvin Li authored
-
Ricardo Jesus authored
This adds a scheduling model for the Neoverse V2. All information is taken from the Neoverse V2 Software Optimisation Guide: https://developer.arm.com/documentation/PJDOC-466751330-593177/r0p2 Differential Revision: https://reviews.llvm.org/D151894
-
Valentin Clement authored
Add lowering support for the min operator in reduction clause. Depends on D151565 Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D151671
-
Tue Ly authored
-
Kirill Stoimenov authored
unaligned memory tagging
-
Tue Ly authored
Fixing an issue with LLVM libc's fenv.h defined rounding mode macros differently from system libc, making get_round() return different values from fegetround(). Also letting math tests to skip rounding modes that cannot be set. This should allow math tests to be run on platforms in which fenv.h is not implemented yet. This allows us to re-enable hermatic floating point tests in https://reviews.llvm.org/D151123 and reverting https://reviews.llvm.org/D152742. Reviewed By: jhuber6 Differential Revision: https://reviews.llvm.org/D152873
-
Kelvin Li authored
Assumed-shape, deferred-shape and assumed rank entities of PPC vector type are not supported. Differential Revision: https://reviews.llvm.org/D152864
-
Simon Pilgrim authored
Replace the legacy legalizer versions - still WIP but matches existing s32 handling, we should be able to add full scalar support for G_UADDO/G_USUBE/G_USUBO as well very easily
-
Alex Brachet authored
We define LIBC_INLINE to include [[clang::internal_linkage]], and these must appear before other specifiers. Additionally, there was also a missing cast that was causing warnings. Differential Revision: https://reviews.llvm.org/D152865
-
Viktoriia Bakalova authored
Differential Revision: https://reviews.llvm.org/D152913
-
Simon Pilgrim authored
-
Guillaume Chatelet authored
This patch mimics the behavior of Google Test and allow users to log custom messages after all flavors of ASSERT_ / EXPECT_. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D152630
-
David Spickett authored
The Scalable Matrix Extension (SME) does not require extra options beyond setting the cpu to "max". https://qemu-project.gitlab.io/qemu/system/arm/cpu-features.html#sme-cpu-property-examples SME depends on SVE, so that will be enabled too even if you don't ask for it by name. --sve --sme -> SVE and SME --sme -> SVE and SME --sve -> Only SVE Reviewed By: omjavaid Differential Revision: https://reviews.llvm.org/D152519
-
Krzysztof Parzyszek authored
-
Krzysztof Parzyszek authored
-
Francesco Petrogalli authored
As reported in https://github.com/llvm/llvm-project/issues/63225, we need to make sure we can use the `&operator<<` on instances of the `ResourceSegments` class for builds that set `NDEBUG`. Reviewed By: sylvestre.ledru Differential Revision: https://reviews.llvm.org/D152817
-
Amaury Séchet authored
-
Nikita Popov authored
Fix the infinite loop reported on https://reviews.llvm.org/D151807#4420467. collectShuffleElements() will widen vectors and replace extracts via replaceExtractElements(), to allow the next call of collectShuffleElements() to fold. However, it's possible for another fold to run first, and break the expected sequence again. To ensure this does not happen, directly rerun the collectShuffleElements() fold if we have adjusted extracts.
-
Kristina Bessonova authored
RFC https://discourse.llvm.org/t/rfc-dwarfdebug-fix-and-improve-handling-imported-entities-types-and-static-local-in-subprogram-and-lexical-block-scopes/68544 !Note! Extracted from the following patch for review purpose only, should be squashed with the next patch (D144004) before committing. Currently the back-end emits imported entities in `DwarfDebug::beginModule()`. However in case an imported declaration is a function, it must point to an abstract subprogram if it exists (see PR51501). But in `DwarfDebug::beginModule()` the DWARF generator doesn't have information to identify if an abstract subprogram needs to be created. Only by entering `DwarfDebug::endModule()` all subprograms are processed, so it's clear which subprogram DIE should be referred to. Hence, the patch moves the emission there. The patch is need to fix PR51501, but it only does the preliminary work. Since it changes the order of debug entities in emitted DWARF and therefore affect many tests it's separated from the fix for the sake of simplifying review. Note that there are other issues with handling an imported declaration in `DwarfDebug::beginModule()`. They are described in more details in D114705. Differential Revision: https://reviews.llvm.org/D143985 Depends on D143984
-
Takuya Shimizu authored
BEFORE this patch, unused const-qualified variable templates such as `template <typename T> const double var_t = 0;` were diagnosed as `unused variable 'var_t'` This patch fixes this message to `unused variable template 'var_t'` Differential Revision: https://reviews.llvm.org/D152796
-
Krishna Narayanan authored
The tautological comparison warning was not properly looking through parenthesized expressions, which is now fixed. Fixes https://github.com/llvm/llvm-project/issues/42992 Differential Revision: https://reviews.llvm.org/D149000
-