- Nov 22, 2023
-
-
Craig Topper authored
-
Muhammad Omair Javaid authored
This reverts commit f79676a1.
-
Erich Keane authored
`atomic` is required to be followed by a special `atomic clause`, so this patch manages the parsing of that. We are representing each of the variants of the atomic construct as separate kinds, because they have distinct rules/application/etc, and this should make it easier to check rules in the future.
-
Andrzej Warzyński authored
Update tests in "vector-contract-matvec-transforms.mlir" so that they are consistent with similar tests in: * "vector-contract-to-outerproduct-transforms.mlir". This is to enable further refactoring in a follow-up patch, namely to: * remove duplication (this will be much easier once consistent naming is used), * extend tests in "vector-contract-matvec-transforms.mlir" with cases for scalable vectors, * merge "vector-contract-matvec-transforms.mlir" and "vector-contract-to-outerproduct-transforms.mlir" (there's no need for 2 different files testing identical transformations). Overview of changes in this patch: 1. Simplify the test by removing MemRef wrappers - this test verifies Vector -> Vector transformations and MemRefs are not needed. 2. Use (m, k) indices instead of (i, j). 3. Rename function names. This is part of a larger effort to improve test coverage for scalable vectors i... -
Craig Topper authored
We can use short forward branch to conditionally negate if the value is negative.
-
Craig Topper authored
-
Joe Nash authored
-
David Li authored
This is part-2 change to improve codegen for vec_fabs. In this patch, v16f16 and v132f16 fabs are improved. There will be at least two followups patches after this one. 1) fixing the ISEL crash when fabs.v32f16 uses custom lowering with AVX512 2) better expansion for v16f16, v32f16 types on AVX1 subtargets.
-
Jon Roelofs authored
This showed up when simplifying some large testcase, where the cfi directives became out of sync with the proc's they enclose. Now restricted to platforms that support .subsections_via_symbols. This reverts commit 797b68c0. Fixes: #72802 Differential revision: https://reviews.llvm.org/D153167 rdar://111459507
-
Simon Pilgrim authored
[X86] X86FixupVectorConstantsPass - attempt to match VEX logic ops back to EVEX if we can create a broadcast fold On non-DQI AVX512 targets, X86InstrInfo::setExecutionDomainCustom will convert EVEX int-domain instructions to VEX fp-domain instructions. But, if we have the chance to use a broadcast fold we're better off using a EVEX instruction, so handle a reverse fold.
-
Jacob Lambert authored
-
Nathan Sidwell authored
Sort x86 intrinsics for better readability and use common prefixes to reduce number of comparisons.
-
Joachim Jenke authored
From "3.1 Reducing the number of edges" of this [[ https://hal.science/hal-04136674v1/ | paper ]] - Optimization (b) Task (dependency) nodes have a `successors` list built upon passed dependency. Given the following code, B will be added to A's successors list building the graph `A` -> `B` ``` // A # pragma omp task depend(out: x) {} // B # pragma omp task depend(in: x) {} ``` In the following code, B is currently added twice to A's successor list ``` // A # pragma omp task depend(out: x, y) {} // B # pragma omp task depend(in: x, y) {} ``` This patch removes such dupplicates by checking lastly inserted task in `A` successor list. Authored by: Romain Pereira (rpereira-dev) Differential Revision: https://reviews.llvm.org/D158544
-
Oleksandr "Alex" Zinenko authored
Don't use unsigned for sizes as they may be larger than that type can hold. Fixes #72678.
-
Aart Bik authored
3! = 6
-
Arthur Eubanks authored
Since goma is going away soon, we need to experiment with other wrappers. We can clean up the goma stuff once it's fully non-functional.
-
Valentin Clement authored
-
Peiming Liu authored
-
Valentin Clement (バレンタイン クレメン) authored
HLFIR lowering as been set by default now and FIR lowering support will be removed in the near future. This patch removes the specific FIR check lines on declare tests.
-
Jeremy Morse authored
DPValues are the non-intrinsic replacements for dbg.values, and when an IR function is converted by SelectionDAG we need to convert the variable location information in the same way. Happily all the information is in the same format, it's just stored in a slightly different object, therefore this patch refactors a few things to store the set of {Variable,Expr,DILocation,Location} instead of just a pointer to a DbgValueInst. This also adds a hook in llc that's much like the one I've added to opt in PR #71937, allowing tests to optionally ask for the use RemoveDIs mode if support for it is built into the compiler. I've added that flag to a variety of SelectionDAG debug-info tests to ensure that we get some coverage on the RemoveDIs / debug-info-iterator buildbot. -
Nick Desaulniers authored
This reverts commit 42204c94. It was accidentally backed out. #20571 #70743
-
Momchil Velikov authored
This patch adds the quadword gather load intrinsics of the form sv<type>_t svld1q_gather_u64index_<typ>(svbool_t, const <type>_t *, svuint64_t); sv<type>_t svld1q_gather_u64base_index_<typ>(svbool_t, svuint64_t, int64_t); and the quadword scatter store intrinsics of the form void svst1q_scatter_u64index_<typ>(svbool_t, <type>_t *, svuint64_t, sv<type>_t); void svst1q_scatter_u64base_index_<typ>(svbool, svuint64_t, int64_t, sv<type>_t); ACLE spec: https://github.com/ARM-software/acle/pull/257
-
- Nov 21, 2023
-
-
Youngsuk Kim authored
Opaque ptr cleanup effort.
-
Erich Keane authored
These two constructs, 'enter data' and 'exit data', are novel compared to what is currently in the parser, as this is the first set implemented where the first token is itself not a valid construct. Because of this, it requires some additional work to do the first keyword parsing.
-
Fangrui Song authored
For a label difference like `.uleb128 A-B`, MC generates a pair of R_RISCV_SET_ULEB128/R_RISCV_SUB_ULEB128 if A-B cannot be folded as a constant. GNU assembler generates a pair of relocations in more cases (when A or B is in a code section with linker relaxation). `.uleb128 A-B` is primarily used by DWARF v5 .debug_loclists/.debug_rnglists (DW_LLE_offset_pair/DW_RLE_offset_pair entry kinds) implemented in Clang and GCC. `.uleb128 A-B` can be used in SHF_ALLOC sections as well (e.g. `.gcc_except_table`). This patch does not handle SHF_ALLOC. `-z dead-reloc-in-nonalloc=` can be used to change the relocated value, if the R_RISCV_SET_ULEB128 symbol is in a discarded section. We don't check the R_RISCV_SUB_ULEB128 symbol since for the expected cases A and B should be defined in the same input section.
-
Ivan Butygin authored
tan atan atanh sinh cosh asin asinh acos acosh atan2
-
Jessica Del authored
Fold any constant input to the `s_wqm` intrinsic.
-
Momchil Velikov authored
This patch adds a set of SVE2.1 quadword load/store intrisics: * Contiguous zero-extending load to quadword (single vector) sv<type>_t svld1uwq[_<typ>](svbool_t, const <type>_t *ptr); sv<type>_t svld1uwq_vnum[_<typ>](svbool_t, const <type> *ptr, int64_t vnum); sv<type>_t svld1udq[_<typ>](svbool_t, const <type>_t *ptr); sv<type>_t svld1udq_vnum[_<typ>](svbool_t, const <type>_t *ptr, int64_t vnum); * Contiguous truncating store of single vector operand void svst1uwq[_<typ>](svbool_t, const <type>_t *ptr, sv<type>_t data); void svst1uwq_vnum[_<typ>](svbool_t, const <type>_t *ptr, int64_t vnum, sv<type>_t data); void svst1udq[_<typ>](svbool_t, const <type>_t *ptr, sv<type>_t data); void svst1udq_vnum[_<typ>](svbool_t, const <type>_t *ptr, int64_t vnum, sv<type>_t data); * Gather load quadword sv<type>_t svld1q_gather[_u64base]_<typ>(svbool_t pg, svuint64_t zn); sv<type>_t svld1q_gather[_u64base]_offset_<typ>(svbool_t pg, svuint64_t zn, int64_t offset); * Scatter store quadword void svst1q_scatter[_u64base][_<typ>](svbool_t pg, svuint64_t zn, sv<type>_t data); void svst1q_scatter[_u64base]_offset[_<typ>](svbool_t pg, svuint64_t zn, int64_t offset, sv<type>_t data); * Contiguous load two, three or four quadword structures. sv<type>x2_t svld2q[_<typ>](svbool_t pg, const <type>_t *rn); sv<type>x2_t svld2q_vnum[_<typ>](svbool_t pg, const <type>_t *rn, uint64_t vnum); sv<type>x3_t svld3q[_<typ>](svbool_t pg, const <type>_t *rn); sv<type>x3_t svld3q_vnum[_<typ>](svbool_t pg, const <type>_t *rn, uint64_t vnum); sv<type>x4_t svld4q[_<typ>](svbool_t pg, const <type>_t *rn); sv<type>x4_t svld4q_vnum[_<typ>](svbool_t pg, const <type>_t *rn, uint64_t vnum); * Contiguous store two, three or four quadword structures. void svst2q[_<typ>](svbool_t pg, <type>_t *rn, sv<type>x2_t zt); void svst2q_vnum[_<typ>](svbool_t pg, <type>_t *rn, int64_t vnum, sv<type>x2_t zt); void svst3q[_<typ>](svbool_t pg, <type>_t *rn, sv<type>x3_t zt); void svst3q_vnum[_<typ>](svbool_t pg, <type>_t *rn, int64_t vnum, sv<type>x3_t zt); void svst4q[_<typ>](svbool_t pg, <type>_t *rn, sv<type>x4_t zt); void svst4q_vnum[_<typ>](svbool_t pg, <type>_t *rn, int64_t vnum, sv<type>x4_t zt); ACLE spec: https://github.com/ARM-software/acle/pull/257 Co-authored-by:Caroline Concatto <caroline.concatto@arm.com> Co-authored-by:
Hassnaa Hamdi <hassnaa.hamdi@arm.com>
-
Nikita Popov authored
In most cases we do not actually have to perform an index size adjustment. Don't perform any APInt operations in that case.
-
Brandon Wu authored
-
Oleksandr "Alex" Zinenko authored
Data layout queries may be issued for types whose size exceeds the range of 32-bit integer as well as for types that don't have a size known at compile time, such as scalable vectors. Use best practices from LLVM IR and adopt `llvm::TypeSize` for size-related queries and `uint64_t` for alignment-related queries. See #72678.
-
martinboehme authored
-
Boian Petkantchin authored
Add all-gather, all-reduce, all-to-all and reduce-scatter. These operations have device mesh semantics.
-
Nikita Popov authored
Whether this is valid depends on the bit widths of the involved integers. Fixes https://github.com/llvm/llvm-project/issues/72927.
-
Nikita Popov authored
The second test is a miscompile.
-
Florian Hahn authored
Add a test case where the AddRec for the pointers in the inner loop have the AddRec of the outer loop as start value. It is sufficient to subtract the start values (%dst, %src) of the outer AddRecs. This simplification will be done in a follow-up commit.
-
https://github.com/llvm/llvm-project/pull/70762smanna12 authored
Lit test generates different outputs for usage of __int128_t in clang-armv8-quick environment. This patch adds triple to fix the lit failure. ``` Step 5 (ninja check 1) failure: 1 unexpected failures 38623 expected passes 71 expected failures 36752 unsupported tests (failure) ******************** TEST 'Clang :: Sema/code_align.c' FAILED ******************** Exit Code: 1 Command Output (stderr): -- RUN: at line 1: /home/tcwg-buildbot/worker/clang-armv8-quick/stage1/bin/clang -cc1 -internal-isystem /home/tcwg-buildbot/worker/clang-armv8-quick/stage1/lib/clang/18/include -nostdsysteminc -fsyntax-only -verify=expected,c-local -x c /home/tcwg-buildbot/worker/clang-armv8-quick/llvm/clang/test/Sema/code_align.c + /home/tcwg-buildbot/worker/clang-armv8-quick/stage1/bin/clang -cc1 + -internal-isystem + /home/tcwg-buildbot/worker/clang-armv8-quick/stage1/lib/clang/18/inclu + de -nostdsysteminc -fsyntax-only -verify=expected,c-local -x c + /home/tcwg-buildbot/worker/clang-armv8-quick/llvm/clang/test/Sema/code + _align.c error: 'c-local-error' diagnostics expected but not seen: File /home/tcwg-buildbot/worker/clang-armv8-quick/llvm/clang/test/Sema/code_align.c Line 79 (directive at /home/tcwg-buildbot/worker/clang-armv8-quick/llvm/clang/test/Sema/code_align.c:78): 'code_align' attribute requires an integer argument which is a constant power of two between 1 and 4096 inclusive; provided argument was (__int128_t)1311768467294899680ULL << 64 File /home/tcwg-buildbot/worker/clang-armv8-quick/llvm/clang/test/Sema/code_align.c Line 89 (directive at /home/tcwg-buildbot/worker/clang-armv8-quick/llvm/clang/test/Sema/code_align.c:88): 'code_align' attribute requires an integer argument which is a constant power of two between 1 and 4096 inclusive; provided argument was -(__int128_t)1311768467294899680ULL << 64 error: 'c-local-error' diagnostics seen but not expected: File /home/tcwg-buildbot/worker/clang-armv8-quick/llvm/clang/test/Sema/code_align.c Line 79: use of undeclared identifier '__int128_t' File /home/tcwg-buildbot/worker/clang-armv8-quick/llvm/clang/test/Sema/code_align.c Line 89: use of undeclared identifier '__int128_t' 4 errors generated. ```
-
agozillon authored
This block of code was here to create pseudo handling of implicit captures in target regions to prevent gfortran test regressions and allow certain pieces of code to function, however, with the introduction of the IFA patch which adds proper handling of implicits by adding them to the map operands list alongside explicit mappings at the initial Fortran -> MLIR generation phase this should no longer be required and may cause some adverse affects at worse in the future.
-
Nico Weber authored
-
Florian Hahn authored
The current code incorrectly assumed that the absolute variable index needs to be at least 1, if the variable is != 0. This is incorrect, in case multiplying with Scale wraps. The code below already checks for wrapping properly, so just remove the incorrect assignment. Fixes https://github.com/llvm/llvm-project/issues/72831.
-