- Dec 15, 2023
-
-
Phoebe Wang authored
This is to reflect new document change that 64-bit mask is support by AVX10 256-bit targets. Latest documents can be found in: https://cdrdv2.intel.com/v1/dl/getContent/784267 https://cdrdv2.intel.com/v1/dl/getContent/784343
-
martin-luecke authored
This adds Python abstractions for the different handle types of the transform dialect The abstractions allow for straightforward chaining of transforms by calling their member functions. As an initial PR for this infrastructure, only a single transform is included: `transform.structured.match`. With a future `tile` transform abstraction an example of the usage is: ```Python def script(module: OpHandle): module.match_ops(MatchInterfaceEnum.TilingInterface).tile(tile_sizes=[32,32]) ``` to generate the following IR: ```mlir %0 = transform.structured.match interface{TilingInterface} in %arg0 %tiled_op, %loops = transform.structured.tile_using_for %0 [32, 32] ``` These abstractions are intended to enhance the usability and flexibility of the transform dialect by providing an accessible interface that allows for easy assembly of complex transformation chains. -
Jie Fu authored
llvm-project/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:1322:10: error: unused variable 'SWaitInst' [-Werror,-Wunused-variable] auto SWaitInst = ^ llvm-project/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp:1334:10: error: unused variable 'SWaitInst' [-Werror,-Wunused-variable] auto SWaitInst = BuildMI(Block, It, DL, TII->get(AMDGPU::S_WAITCNT_VSCNT)) ^ 2 errors generated. -
Greg Clayton authored
This patch fixes the SymbolFilePDBTests::TestMaxMatches(...) by making it test what it was testing before, see comments in the test case for details. It also disables TestUniqueTypes4.py for now until we can debug or fix why it isn't working.
-
Ulrich Weigand authored
On processors supporting vector registers and SIMD instructions, enable i128 as legal type in VRs. This allows many operations to be implemented via native instructions directly in VRs (including add, subtract, logical operations and shifts). For a few other operations (e.g. multiply and divide, as well as atomic operations), we need to move the i128 value back to a GPR pair to use the corresponding instruction there. Overall, this is still beneficial. The patch includes the following LLVM changes: - Enable i128 as legal type - Set up legal operations (in SystemZInstrVector.td) - Custom expansion for i128 add/subtract with carry - Custom expansion for i128 comparisons and selects - Support for moving i128 to/from GPR pairs when required - Handle 128-bit integer constant values everywhere - Use i128 as intrinsic operand type where appropriate - Updated and new test cases In addition, clang builtins are updated to reflect the intrinsic operand type changes (which also improves compatibility with GCC).
-
CarolineConcatto authored
``` c // All the intrinsics below are [SVE2.1 or SME2] // Variants are also available for _u16[_s32]_x2 and _u16[_u32]_x2 svint16_t svqcvtn_s16[_s32_x2](svint32x2_t zn); ``` According to PR#257[1] [1]https://github.com/ARM-software/acle/pull/257
-
Mirko Brkušanin authored
-
Hsiangkai Wang authored
In this patch, it will convert ``` vector.maskedload %base[%idx_0, %idx_1], %mask, %pass_thru ``` to ``` %ivalue = %pass_thru %m = vector.extract %mask[0] %result0 = scf.if %m { %v = memref.load %base[%idx_0, %idx_1] %combined = vector.insert %v, %ivalue[0] scf.yield %combined } else { scf.yield %ivalue } %m = vector.extract %mask[1] %result1 = scf.if %m { %v = memref.load %base[%idx_0, %idx_1 + 1] %combined = vector.insert %v, %result0[1] scf.yield %combined } else { scf.yield %result0 } ... ``` It will convert ``` vector.maskedstore %base[%idx_0, %idx_1], %mask, %value ``` to ``` %m = vector.extract %mask[0] scf.if %m { %extracted = vector.extract %value[0] memref.store %extracted, %base[%idx_0, %idx_1] } %m = vector.extract %mask[1] scf.if %m { %extracted = vector.extract %value[1] memref.store %extracted, %base[%idx_0, %idx_1 + 1] } ... ``` -
Pierre van Houtryve authored
[AMDGPU][SIInsertWaitcnts] Do not add s_waitcnt when the counters are known to be 0 already (#72830) Co-authored-by:Juan Manuel MARTINEZ CAAMAÑO <juamarti@amd.com>
-
Petar Avramovic authored
Make abstract class PhiLoweringHelper and expose it for use in GlobalISel path. SILowerI1Copies implements PhiLoweringHelper as Vreg1LoweringHelper and it is equivalent to SILowerI1Copies. Notable change that createLaneMaskReg now clones attributes from register that has lane mask attributes instead of creating register with lane mask register class. This is because lane masks have different(more) attributes in GlobalISel. patch 2 from: https://github.com/llvm/llvm-project/pull/73337
-
Mirko Brkušanin authored
-
chuongg3 authored
In AArch64RegisterBankInfo, IsFPOrFPType() does not work correctly with ArrayTypes and StructTypes as it does not not look at their elements. This caused some registers to be selected as gpr instead of fpr.
-
Serge Pavlov authored
GNU addr2line supports lookup by symbol name in addition to the existing address lookup. llvm-symbolizer starting from e144ae54 supports lookup by symbol name. This change extends this lookup with possibility to specify optional offset. Now the address for which source information is searched for can be specified with offset: llvm-symbolize --obj=abc.so "SYMBOL func_22+0x12" It decreases the gap in features of llvm-symbolizer and GNU addr2line. This lookup now is supported for code only. Migrated from: https://reviews.llvm.org/D139859 Pull request: https://github.com/llvm/llvm-project/pull/75067
-
Mariusz Sikora authored
-
Mariusz Sikora authored
-
bipmis authored
Handles canonical icmp eq(ptr1, ptr2) -> where ptr1/ptr2 is a recursive GEP. Can helps scenarios where InstCombineCompares folds icmp eq(sub(ptr2int, ptr2int), 0) -> icmp eq(ptr1, ptr2) and icmp eq(phi(sub(ptr2int, ptr2int), ...)) -> phi i1 (icmp eq(sub(ptr2int, ptr2int), 0), ....)
-
mohammed-nurulhoque authored
deletes slots that have lifetime markers and the lifetime ranges are empty.
-
paperchalice authored
Machine passes define `AnalysisKey`, it is counterintuitive. Add `MachinePassKey` and `MachinePassInfoMixin` to avoid this.
-
Mirko Brkušanin authored
-
David Green authored
Similar to minloc from #74436, this adds a hlfir maxloc intrinsic so that we can keep them symmetrical. It's just a bit of copy and pasting.
-
David Green authored
The kind is already represented in the return type of the operation. Like we did for minloc, this removes the kind parameter from CountOp.
-
Carl Ritson authored
Shows spill allocation overlapping with WWM register use.
-
Mariusz Sikora authored
-
paperchalice authored
These options are used by `TargetPassConfig` to build CodeGen pass pipeline, add them to `CGPassBuilderOption` so `CodeGenPassBuilder` can use them. Currently not all options are added, but it is enough to build a prototype of `CodeGenPassBuilder`. Part of #69879.
-
Guillaume Chatelet authored
This is a follow up on #75353.
-
Mariya Podchishchaeva authored
Fixes https://github.com/llvm/llvm-project/issues/63151 --------- Co-authored-by:
Erich Keane <ekeane@nvidia.com>
-
Yingwei Zheng authored
Alive2: https://alive2.llvm.org/ce/z/kiGxCf Fixes #70374.
-
Yingwei Zheng authored
This patch reinterprets `lshr nneg C, X` as `ashr nneg C, X` to allow more factorization opportunities. Fixes #70582.
-
XinWang10 authored
R16-R31 was added into GPRs in https://github.com/llvm/llvm-project/pull/70958, This patch supports the encoding/decoding for promoted MOVDIR instruction in EVEX space. RFC: https://discourse.llvm.org/t/rfc-design-for-apx-feature-egpr-and-ndd-support/73031/4
-
Mirko Brkušanin authored
-
Pierre van Houtryve authored
Split from #72830
-
Cullen Rhodes authored
The 'vector.outerproduct' -> 'arm_sme.outerproduct' conversion currently errors on unsupported cases when it should return failure.
-
Wang Yaduo authored
Enable the llvm-objdump to disassemble the immediate of RISCV instruction in hexadecimal format with --print-imm-hex flag.
-
Felix Schneider authored
This patch adds a verifier to `tosa.transpose` which fixes a crash. Related: https://github.com/llvm/llvm-project/pull/74367 Fix https://github.com/llvm/llvm-project/issues/74479
-
Vitaly Buka authored
Reverts llvm/llvm-project#74053 Breaks https://lab.llvm.org/buildbot/#/builders/5/builds/39291 Co-authored-by:
Wang Yaduo <wangyaduo@linux.alibaba.com> Issue #75563
-
Craig Topper authored
I'm not sure how to test this because the intrinsic availability already seems to check this.
-
Alan Phipps authored
Fixes a build failure introduced by commit 8ecbb040 ("Reland [Coverage][llvm-cov] Enable MC/DC Support in LLVM Source-based Code Coverage (2/3)") Use of pow() is not necessary.
-
Valentin Clement (バレンタイン クレメン) authored
Some template parameters for the bounds ops generation have been inverted. It should be consistent to be `BoundsOp, BoundsType`.
-
Craig Topper authored
Needed after 3dde0d02
-
Saiyedul Islam authored
Regenerate a few more llc tests to check for COV5 instead of the default ABI version.
-