/llvm-project/mlir/lib/Dialect/Affine/Transforms/ |
H A D | AffineParallelize.cpp | 51 : loop(l), reductions(std::move(r)) {} in ParallelizationCandidate() 55 /// Desciprtors of reductions that can be parallelized in the loop. 56 SmallVector<LoopReduction> reductions; member 67 SmallVector<LoopReduction> reductions; in runOnOperation() local 68 if (isLoopParallel(loop, parallelReductions ? &reductions : nullptr)) in runOnOperation() 69 parallelizableLoops.emplace_back(loop, std::move(reductions)); in runOnOperation() 83 if (failed(affineParallelize(loop, candidate.reductions))) { in runOnOperation()
|
H A D | SuperVectorize.cpp | 523 /// passing a map from loops to reductions to utility functions, or by passing 524 /// `vectorize-reductions=true` to the vectorization pass. 543 /// vectorize-reductions=true" 1328 ArrayRef<LoopReduction> reductions; in vectorizeAffineForOp() local 1333 reductions = it->second; in vectorizeAffineForOp() 1334 assert(reductions.size() == forOp.getNumIterOperands() && in vectorizeAffineForOp() 1335 "The size of reductions array must match the number of iter_args"); in vectorizeAffineForOp() 1347 for (auto redAndOperand : llvm::zip(reductions, forOp.getInits())) { in vectorizeAffineForOp() 1387 getVectorReductionOp(reductions[i].kind, state.builder, in vectorizeAffineForOp() 1395 if (!isNeutralElementConst(reductions[ in vectorizeAffineForOp() 1772 SmallVector<LoopReduction, 2> reductions; runOnOperation() local [all...] |
/llvm-project/flang/docs/ |
H A D | ArrayComposition.md | 26 * Reductions to scalars (`SUM(X)`, also `ALL`, `ANY`, `COUNT`, 29 * Axial reductions (`SUM(X,DIM=)`, &c.) 30 * Location reductions to indices (`MAXLOC`, `MINLOC`, `FINDLOC`) 31 * Axial location reductions (`MAXLOC(DIM=`, &c.) 105 Partial (axial) reductions can be similarly composed. 110 * Reductions to scalars (`SUM(X)` without `DIM=`) become 113 * Axial reductions (`SUM(X,DIM=d)`) applied to indices `(J,K)` 115 * Location reductions to indices (`MAXLOC(X)` without `DIM=`) 118 * Axial location reductions (`MAXLOC(X,DIM=)`, &c.) 119 are handled like other axial reductions like `SUM(DIM=)`.
|
/llvm-project/openmp/runtime/src/ |
H A D | kmp_gsupport.cpp | 1780 int reductions = gomp_flags & (1u << 12); in __GOMP_taskloop() local 1858 if (reductions) { in __GOMP_taskloop() 2212 long *iend, uintptr_t *reductions, void **mem) { in KMP_EXPAND_NAME() 2215 KA_TRACE(20, ("GOMP_loop_start: T#%d, reductions: %p\n", gtid, reductions)); in KMP_EXPAND_NAME() 2216 if (reductions) in KMP_EXPAND_NAME() 2217 __kmp_GOMP_init_reductions(gtid, reductions, 1); in KMP_EXPAND_NAME() 2264 unsigned long long *istart, unsigned long long *iend, uintptr_t *reductions, in KMP_EXPAND_NAME() 2269 ("GOMP_loop_ull_start: T#%d, reductions: %p\n", gtid, reductions)); in KMP_EXPAND_NAME() 2270 if (reductions) in KMP_EXPAND_NAME() 2271 __kmp_GOMP_init_reductions(gtid, reductions, 1); in KMP_EXPAND_NAME() [all …]
|
/llvm-project/llvm/test/Transforms/LoopVectorize/ARM/ |
H A D | tail-folding-reductions-allowed.ll | 4 …rm-eabihf -mattr=+mve.fp -passes=loop-vectorize -tail-predication=enabled-no-reductions -S < %s | \ 7 …ihf -mattr=+mve.fp -passes=loop-vectorize -tail-predication=force-enabled-no-reductions -S < %s | \ 12 ; Check that this reduction is allowed, except when reductions are disable on
|
/llvm-project/llvm/include/llvm/Frontend/OpenMP/ |
H A D | ConstructCompositionT.h |
|
/llvm-project/flang/test/Lower/OpenMP/ |
H A D | delayed-privatization-reduction.f90 | 1 ! Test that reductions and delayed privatization work properly togehter. Since 3 ! that the block arguments are added in the proper order (reductions first and
|
H A D | delayed-privatization-reduction-byref.f90 | 1 ! Test that reductions and delayed privatization work properly togehter. Since 3 ! that the block arguments are added in the proper order (reductions first and
|
/llvm-project/mlir/test/Dialect/Affine/SuperVectorize/ |
H A D | vectorize_reduction_2d.mlir | 1 …ctorize="virtual-vector-size=32,256 test-fastest-varying=1,0 vectorize-reductions=true" -verify-di… 7 // expected-error@+1 {{Vectorizing reductions is supported only for 1-D vectors}}
|
/llvm-project/llvm/include/llvm/Transforms/Vectorize/ |
H A D | LoopVectorizationLegality.h | 265 /// of the reductions that were found in the loop. 273 /// inductions and reductions. 287 /// we can use in-order reductions. in getPrimaryInduction() 302 const ReductionList &getReductionVars() const { return Reductions; } 314 /// reductions found in the loop. 343 bool isReductionVariable(PHINode *PN) const { return Reductions.count(PN); } 521 /// 5. The loop does not contain reductions or recurrences. 585 ReductionList Reductions; 503 ReductionList Reductions; global() variable
|
/llvm-project/flang/runtime/ |
H A D | reduction-templates.h | 12 // * Partial reductions (i.e., those with DIM= arguments that are not 15 // * Total reductions (i.e., no DIM= argument) with FINDLOC, MAXLOC, & MINLOC 18 // * Character-valued reductions (MAXVAL & MINVAL) return arbitrary 33 // Reductions are implemented with *accumulators*, which are instances of 111 // For reductions on a dimension, e.g. SUM(array,DIM=2) where the shape 180 // Partial reductions with DIM= in PartialReduction()
|
/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/ |
H A D | strict-fadd-vf1.ll | 2 ; RUN: opt -passes=loop-vectorize -force-ordered-reductions=true -force-vector-width=1 -S < %s -deb… 7 ; CHECK-DEBUG: LV: Not interleaving scalar ordered reductions.
|
H A D | sve-strict-fadd-cost.ll | 2 ; RUN: opt < %s -passes=loop-vectorize -debug -disable-output -force-ordered-reductions=true -hints-allow-reordering=false \ 4 ; RUN: opt < %s -passes=loop-vectorize -debug -disable-output -force-ordered-reductions=true -hints-allow-reordering=false \ 7 ; RUN: opt < %s -passes=loop-vectorize -debug -disable-output -force-ordered-reductions=true -hints-allow-reordering=false \
|
H A D | strict-fadd-cost.ll | 2 ; RUN: opt < %s -passes=loop-vectorize -debug -disable-output -force-ordered-reductions=true -hints… 4 ; RUN: opt < %s -passes=loop-vectorize -debug -disable-output -force-ordered-reductions=true -hints…
|
/llvm-project/mlir/test/Integration/Dialect/Vector/CPU/ |
H A D | reductions-f32-reassoc.mlir | 2 // RUN: -convert-vector-to-llvm='reassociate-fp-reductions' \ 23 // Various vector reductions. Not full functional unit tests, but
|
H A D | reductions-f64-reassoc.mlir | 2 // RUN: -convert-vector-to-llvm='reassociate-fp-reductions' \ 23 // Various vector reductions. Not full functional unit tests, but
|
/llvm-project/llvm/lib/CodeGen/ |
H A D | ExpandReductions.cpp | 92 // Canonicalize logical or/and reductions: in expandReductions() 176 INITIALIZE_PASS_BEGIN(ExpandReductions, "expand-reductions", in INITIALIZE_PASS_DEPENDENCY() 179 INITIALIZE_PASS_END(ExpandReductions, "expand-reductions", in INITIALIZE_PASS_DEPENDENCY()
|
/llvm-project/mlir/lib/Analysis/ |
H A D | SliceAnalysis.cpp | 233 /// This utility is generic enough to detect reductions involving multiple in matchReduction() 237 /// matching reductions without pre-defined semantics in core MLIR. It's up to in matchReduction() 240 /// reductions not covered by this generic matching. in matchReduction() 275 // Limit matching to single combiner op until we can properly test reductions
|
/llvm-project/flang/unittests/Runtime/ |
H A D | Reduction.cpp | 1 //===-- flang/unittests/Runtime/Reductions.cpp ----------------------------===// 26 TEST(Reductions, Int4Ops) { in TEST() argument 39 TEST(Reductions, DimMaskProductInt4) { in TEST() argument 58 TEST(Reductions, DoubleMaxMinNorm2) { in TEST() argument 253 TEST(Reductions, Character) { in TEST() argument 347 TEST(Reductions, Logical) { in TEST() argument 478 TEST(Reductions, FindlocNumeric) { in TEST() argument 546 // Partial reductions in TEST() 588 TEST(Reductions, DotProduct) { in TEST() argument 623 TEST(Reductions, ExtremaReal1 argument 647 TEST(Reductions,ReduceInt4) TEST() argument 655 TEST(Reductions,ReduceInt4Dim) TEST() argument [all...] |
/llvm-project/mlir/lib/Conversion/SCFToOpenMP/ |
H A D | SCFToOpenMP.cpp | 241 /// reduction and returns it. Recognizes common reductions in order to identify 261 // Match simple binary reductions that can be expressed with atomicrmw. in declareReduction() 301 // Match simple binary reductions that cannot be expressed with atomicrmw. in declareReduction() 313 // Match select-based min/max reductions. in declareReduction() 366 // Declare reductions. in matchAndRewrite() 473 // false because these reductions always reduce scalars and so do in matchAndRewrite()
|
/llvm-project/mlir/include/mlir/Dialect/Vector/IR/ |
H A D | VectorAttributes.td | 19 // The "kind" of combining function for contractions and reductions. 36 "Kind of combining function for contractions and reductions",
|
/llvm-project/llvm/docs/ |
H A D | BugpointRedesign.md | 22 via classic delta debugging and by adding some IR-specific reductions (e.g. 79 Once these passes are implemented, more meaningful reductions (such as type
|
/llvm-project/mlir/lib/Conversion/AffineToStandard/ |
H A D | AffineToStandard.cpp | 223 ArrayRef<Attribute> reductions = op.getReductions().getValue(); in matchAndRewrite() local 224 for (auto pair : llvm::zip(reductions, op.getResultTypes())) { in matchAndRewrite() 245 assert(reductions.size() == affineParOpTerminator->getNumOperands() && in matchAndRewrite() 246 "Unequal number of reductions and operands."); in matchAndRewrite() 252 for (unsigned i = 0, end = reductions.size(); i < end; i++) { in matchAndRewrite() 256 cast<IntegerAttr>(reductions[i]).getInt()); in matchAndRewrite()
|
/llvm-project/mlir/test/lib/Dialect/LLVM/ |
H A D | TestLowerToLLVM.cpp | 41 *this, "reassociate-fp-reductions", 42 llvm::cl::desc("Allow reassociation og FP reductions"),
|
/llvm-project/mlir/include/mlir/Interfaces/ |
H A D | TilingInterface.td | 369 tile reductions using partial reduction followed by merge. This is 370 complementary to TilingInterface to tile reductions. 397 `mergeReductions` method which will combine the partial reductions. 415 Method to merge partial reductions for an operation that has been
|