| /llvm-project-15.0.7/llvm/test/Transforms/LoopInterchange/ |
| H A D | loop-interchange-optimization-remarks.ll | 4 ; RUN: -pass-remarks-output=%t -pass-remarks-missed='loop-interchange' \ 5 ; RUN: -pass-remarks='loop-interchange' -S 18 ;; Loops interchange is not profitable. 62 ; CHECK-NEXT: Pass: loop-interchange 70 ; DELIN-NEXT: Pass: loop-interchange 122 ; CHECK-NEXT: Pass: loop-interchange 130 ; DELIN-NEXT: Pass: loop-interchange 178 ; CHECK-NEXT: Pass: loop-interchange 186 ; DELIN-NEXT: Pass: loop-interchange 241 ; CHECK-NEXT: Pass: loop-interchange [all …]
|
| H A D | call-instructions.ll | 2 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -pass-remarks-missed='loop-intercha… 14 ;; Not safe to interchange, because the called function `foo` is not marked as 25 ; CHECK-NEXT: Pass: loop-interchange 29 ; CHECK-NEXT: - String: Cannot interchange loops due to call instruction. 66 ;; Safe to interchange, because the called function `bar` is marked as readnone, 77 ; CHECK-NEXT: Pass: loop-interchange 119 ; STATS: 1 loop-interchange - Number of loops interchanged
|
| H A D | pr43326-ideal-access-pattern.ll | 1 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -pass-remarks-missed='loop-intercha… 5 ; Triply nested loop, should be able to do interchange three times 18 ; REMARKS-NEXT: Pass: loop-interchange 22 ; REMARKS-NEXT: Pass: loop-interchange 26 ; REMARKS-NEXT: Pass: loop-interchange
|
| H A D | interchange-no-deps.ll | 2 ; RUN: opt < %s -loop-interchange -cache-line-size=64 -simplifycfg -simplifycfg-require-and-preserv… 3 ; RUN: -pass-remarks=loop-interchange -pass-remarks-missed=loop-interchange -stats -S 2>&1 \ 8 ; no_deps_interchange just accesses a single nested array and can be interchange. 66 ; STATS: 1 loop-interchange - Number of loops interchanged
|
| H A D | profitability.ll | 1 ; RUN: opt < %s -loop-interchange -cache-line-size=64 -pass-remarks-output=%t -verify-dom-info -ver… 2 ; RUN: -pass-remarks=loop-interchange -pass-remarks-missed=loop-interchange 13 ;; Loops interchange will result in code vectorization and hence profitable. Check for interchange. 53 ;; Check loop interchange profitability model. 94 ;; Loops interchange is not profitable.
|
| H A D | currentLimitation.ll | 1 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -pass-remarks-missed='loop-intercha… 5 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -pass-remarks-missed='loop-intercha… 64 ; When currently cannot interchange this loop, because transform currently
|
| H A D | pr48212.ll | 1 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -pass-remarks-missed='loop-intercha… 6 ; REMARKS-NEXT: Pass: loop-interchange
|
| H A D | reductions-across-inner-and-outer-loop.ll | 1 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -pass-remarks-missed='loop-intercha… 9 ; REMARKS-NEXT: Pass: loop-interchange 79 ; reduction PHI %sum.outer, do not interchange. 81 ; REMARKS-NEXT: Pass: loop-interchange 115 ; Check that we do not interchange if there is an additional instruction 118 ; REMARKS-NEXT: Pass: loop-interchange 155 ; REMARKS-NEXT: Pass: loop-interchange 191 ; Check that we do not interchange or crash if the PHI in the outer loop gets a 194 ; REMARKS-NEXT: Pass: loop-interchange 233 ; REMARKS-NEXT: Pass: loop-interchange [all …]
|
| H A D | inner-only-reductions.ll | 1 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -pass-remarks-missed='loop-intercha… 20 ; CHECK-NEXT: Pass: loop-interchange 60 ;; Not tightly nested. Do not interchange. 69 ;; Not tightly nested. Do not interchange. 73 ; CHECK-NEXT: Pass: loop-interchange
|
| H A D | outer-only-reductions.ll | 1 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -pass-remarks-missed='loop-intercha… 18 ; CHECK-NEXT: Pass: loop-interchange
|
| H A D | interchange-insts-between-indvar.ll | 1 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info \ 2 ; RUN: -S -pass-remarks=loop-interchange 2>&1 | FileCheck %s 37 ; With two stores in the loop there may be WAW dependences, and interchange is illegal.
|
| H A D | vector-gep-operand.ll | 2 ; RUN: opt -loop-interchange -cache-line-size=64 -loop-interchange-threshold=-10 -S %s | FileCheck … 5 ; loop-interchange does not crash.
|
| H A D | innermost-latch-uses-values-in-middle-header.ll | 2 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info \ 9 ;; doing interchange for the (new) middle loop and the outermost loop, because of 12 ; CHECK: Loops are legal to interchange
|
| H A D | pr43326.ll | 1 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -pass-remarks-missed='loop-intercha… 12 ; REMARKS-NEXT: Pass: loop-interchange
|
| H A D | interchanged-loop-nest-3.ll | 2 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info \ 9 ;; Test for interchange in loop nest greater than 2.
|
| H A D | not-interchanged-loop-nest-3.ll | 2 ; RUN: opt < %s -basic-aa -loop-interchange -cache-line-size=64 -verify-dom-info -verify-loop-info \ 9 ;; Test for interchange in loop nest greater than 2.
|
| /llvm-project-15.0.7/mlir/lib/Dialect/SCF/Transforms/ |
| H A D | TileUsingInterface.cpp | 63 ArrayRef<unsigned> interchange) { in applyPermutationToVector() argument 64 assert(interchange.size() == vector.size()); in applyPermutationToVector() 66 llvm::map_range(interchange, [&](unsigned val) { return vector[val]; })); in applyPermutationToVector() 70 invertPermutationVector(ArrayRef<unsigned> interchange) { in invertPermutationVector() argument 71 SmallVector<unsigned> inversion(interchange.size()); in invertPermutationVector() 72 for (auto pos : llvm::enumerate(interchange)) { in invertPermutationVector() 78 static bool isPermutation(ArrayRef<unsigned> interchange) { in isPermutation() argument 80 for (auto val : interchange) { in isPermutation() 85 return seenVals.size() == interchange.size(); in isPermutation()
|
| /llvm-project-15.0.7/mlir/test/Dialect/Linalg/ |
| H A D | transform-ops.mlir | 23 // CHECK: transform.structured.interchange 24 %0 = transform.structured.interchange %arg0
|
| H A D | transform-op-interchange.mlir | 26 transform.structured.interchange %0 { iterator_interchange = [1, 0]} 44 transform.structured.interchange %0 { iterator_interchange = [1, 0]}
|
| /llvm-project-15.0.7/mlir/test/python/dialects/ |
| H A D | transform_structured_ext.py | 118 structured.TileOp(sequence.bodyTarget, sizes=[4, 8], interchange=[0, 1]) 134 structured.TileOp(sequence.bodyTarget, sizes=attr, interchange=ichange) 147 sequence.bodyTarget, sizes=[4, 0, 2, 0], interchange=[0, 1, 2, 3])
|
| /llvm-project-15.0.7/mlir/python/mlir/dialects/ |
| H A D | _structured_transform_ops_ext.py | 219 interchange: OptionalIntList = None, 251 interchange=_get_int_array_attr(interchange) if interchange else None,
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/SCF/Transforms/ |
| H A D | TileUsingInterface.h | 57 SCFTilingOptions &setInterchange(ArrayRef<unsigned> interchange) { in setInterchange() 58 interchangeVector = llvm::to_vector(interchange); in setInterchange()
|
| /llvm-project-15.0.7/llvm/test/Transforms/LICM/ |
| H A D | lnicm.ll | 2 ; RUN: opt -aa-pipeline=basic-aa -passes='loop(loop-interchange)' -cache-line-size=64 -S %s | FileC… 3 ; RUN: opt -aa-pipeline=basic-aa -passes='loop-mssa(lnicm),loop(loop-interchange)' -cache-line-size… 4 ; RUN: opt -aa-pipeline=basic-aa -passes='loop-mssa(licm),loop(loop-interchange)' -cache-line-size=… 17 ; perfect loop nest (e.g. loop-interchange) to perform. 21 ; The loopnest is not interchanged when we only run loop interchange. 64 ; The loopnest is interchanged when we run lnicm and loop interchange. 116 ; The loopnest is not interchanged when we run licm and loop interchange.
|
| /llvm-project-15.0.7/llvm/test/Other/ |
| H A D | loopnest-callback.ll | 1 ;RUN: opt -disable-output -passes=loop-interchange -print-after-all < %s 2>&1 | FileCheck %s
|
| /llvm-project-15.0.7/mlir/test/lib/Interfaces/TilingInterface/ |
| H A D | TestTilingInterface.cpp | 152 ArrayRef<unsigned> interchange = {}) { in addPatternForTiling() argument 154 tilingOptions.setTileSizes(tileSizes).setInterchange(interchange);
|