- Apr 22, 2024
-
-
Nikolas Klauser authored
-
Florian Hahn authored
This reverts commit 7dbba39e. Revert as there are reports this triggers during ThinLTO in some configurations.
-
chuongg3 authored
Combines G_SHUFFLE_VECTOR whose sources comes from G_CONCAT_VECTORS into a single G_CONCAT_VECTORS instruction. a = G_CONCAT_VECTORS x, y, undef, undef b = G_CONCAT_VECTORS z, undef, undef, undef c = G_SHUFFLE_VECTORS a, b, <0, 1, 4, undef> ===> c = G_CONCAT_VECTORS x, y, z, undef`
-
Simon Pilgrim authored
Use sd_match to match commutative inner AND/OR/XOR node arguments instead of some messy manual matching of each commutation.
-
Matt Arsenault authored
-
Simon Pilgrim authored
-
Tom Eccles authored
This is the first proof of concept of the modification of FIR codegen to fully support a variety of top level operations (beyond just func.func) proposed in https://discourse.llvm.org/t/rfc-add-an-interface-for-top-level-container-operations
-
Timm Bäder authored
-
Fraser Cormack authored
Commit #87622 broke the build. Ninja was happy with creating the output directories as necessary, but Unix Makefiles isn't. Ensure they are always created. Fixes #88626.
-
Timm Bäder authored
-
Timm Bäder authored
Instead of doing a isa<> + getAs<>
-
Timm Bäder authored
This reverts commit eef57988. This breaks two tests on an arm builder: https://lab.llvm.org/buildbot/#/builders/245/builds/23496
-
pvanhout authored
-
Christian Sigg authored
-
Matt Arsenault authored
Previously these were declared as having the 2008 behavior, with underspecified signed zero handling. Currently, AMDGPU, PPC and LoongArch mark these as legal. The AMDGPU and PPC instructions respect the signed zero behavior. The LoongArch documentation doesn't state, but I'm assuming it also does.
-
Haojian Wu authored
This relands the c8e65e19, which was reverted in b48ea2d3 due to the breakage of windows builtbot. The reland contains some adjustments in the lit test deduction-gudie.cpp, to make the checking text less strict.
-
Timm Bäder authored
-
Simon Pilgrim authored
[VectorCombine] foldShuffleOfBinops - don't fold shuffle(divrem(x,y),divrem(z,w)) if mask contains poison Fixes #89390
-
Simon Pilgrim authored
-
David Green authored
-
AtariDreams authored
It turns out that if any of the operations can be zero, and neither of the operands can be proven to be positive, it is possible for smax to be zero, and KnownBits cannot prove otherwise even with KnownBits::smax. In fact, proving it based on the KnownBits itself at that point without increasing the depth is actually, provably impossible. Same with smin. This covers all the possible cases and is proven to be complete.
-
pvanhout authored
-
Yingwei Zheng authored
This patch folds fabs over select if it is beneficial. I also tried other interger/fp intrinsics. Only handling fabs shows benefit to some real-world applications.
-
martinboehme authored
Reverts llvm/llvm-project#89213 This is causing buildbot failures.
-
martinboehme authored
-
Pierre van Houtryve authored
Allow targets to implement custom module splitting logic for --lto-partitions, see #89245 https://discourse.llvm.org/t/rfc-lto-target-specific-module-splittting/77252
-
donald chen authored
This patch adds support for consumer fusion to the tiling interface, and implements fuse consumers on FuseIntoContainingOp. - Add interface method 'getIterDomainTilePositionFromOperandPosition' to tiling interface which get iteration domain position from operand position. - Add interface method 'getTiledImplementationFromOperandPosition' to tiling interface which generate tiled implementation according to operand position. - Implemented the above two methods and supported consumer fusion for FuseIntoContainingOp. Signed-off-by: Donald Chen
-
Freddy Ye authored
This resolves issue #88501.
-
Craig Topper authored
-
- Apr 21, 2024
-
-
Kazu Hirata authored
We don't need to create these instances of ArrayRef because ConstantDataVector::get takes ArrayRef, and ArrayRef can be implicitly constructed from C arrays.
-
Yingwei Zheng authored
Fixes #89516
-
David Green authored
Similar to #87934, this adds costs to the shuffles in a canonical LD3/LD4 pattern, which are represented in LLVM as deinterleaving-shuffle(load). This likely has less effect at the moment than the ST3/ST4 costs as instcombine will perform certain transforms without considering the cost.
-
Mehdi Amini authored
Reverts llvm/llvm-project#69267 this broke some bots.
-
Gaurav Shukla authored
This patch generalizes tensor.expand_shape and memref.expand_shape to consume the output shape as a list of SSA values. This enables us to implement generic reshape operations with dynamic shapes using collapse_shape/expand_shape pairs. The output_shape input to expand_shape follows the static/dynamic representation that's also used in `tensor.extract_slice`. Differential Revision: https://reviews.llvm.org/D140821 Co-authored-by:
Ramiro Leal-Cavazos <ramiroleal050@gmail.com>
-
cor3ntin authored
In a pack expression, if the id-expression is not valid, do no try to detect whether it is a pack as that would lead to a crash trying to print a recovery expression. Fixes #88929
-
Nikita Popov authored
Revert "[X86] X86LowerTileCopy: Find dead register to use to prevent save-reload of tile register (#83628)" This reverts commit 34acbb38. This change causes major compile-time regressions.
-
Timm Bäder authored
To accomodate for recent changes in array index calculations.
-
zhongyunde 00443407 authored
foldFDivPowDivisor can address A / powi(x, y) to A * powi(x, -y), while for small const value y, for example y=2, the instcombine will transform powi(x, 2) to fmul x, x, so it is not optimal for A / powi(x, 2). Fix https://github.com/llvm/llvm-project/issues/77171
-
zhongyunde 00443407 authored
Since PR86428, foldPowiReassoc is called by both FMul and FDiv, as the optimization of FDiv is placed after the FMul, so now it is correct we don't add the checking of FDiv for powi(X, Y) / X. But, we may add more matching scenarios later, so add the checking opcode explicitly is easier to understand.
-