/external/llvm-project/mlir/test/Transforms/ |
D | loop-fusion.mlir | 1 // RUN: mlir-opt -allow-unregistered-dialect %s -affine-loop-fusion -split-input-file | FileCheck %s 2 // RUN: mlir-opt -allow-unregistered-dialect %s -affine-loop-fusion="fusion-maximal" -split-input-f… 18 affine.for %i0 = 0 to 10 { 19 affine.store %cf7, %m[%i0] : memref<10xf32> 21 affine.for %i1 = 0 to 10 { 22 %v0 = affine.load %m[%i1] : memref<10xf32> 24 // CHECK: affine.for %{{.*}} = 0 to 10 { 25 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[0] : memref<1xf32> 26 // CHECK-NEXT: affine.load %{{.*}}[0] : memref<1xf32> 42 affine.for %i0 = 0 to 10 { [all …]
|
D | memref-dataflow-opt.mlir | 13 affine.for %i0 = 0 to 10 { 14 affine.store %cf7, %m[%i0] : memref<10xf32> 15 %v0 = affine.load %m[%i0] : memref<10xf32> 20 // CHECK-NEXT: affine.for %{{.*}} = 0 to 10 { 33 affine.for %i0 = 0 to 10 { 34 affine.store %cf7, %m[%i0] : memref<10xf32> 35 %v0 = affine.load %m[%i0] : memref<10xf32> 37 affine.store %cf8, %m[%i0] : memref<10xf32> 38 affine.store %cf9, %m[%i0] : memref<10xf32> 39 %v2 = affine.load %m[%i0] : memref<10xf32> [all …]
|
D | memref-bound-check.mlir | 14 affine.for %i = -1 to 10 { 15 affine.for %j = -1 to 10 { 16 %idx0 = affine.apply affine_map<(d0, d1) -> (d0)>(%i, %j) 17 %idx1 = affine.apply affine_map<(d0, d1) -> (d1)>(%i, %j) 19 %x = affine.load %A[%idx0, %idx1] : memref<9 x 9 x i32> 20 // expected-error@-1 {{'affine.load' op memref out of upper bound access along dimension #1}} 21 // expected-error@-2 {{'affine.load' op memref out of lower bound access along dimension #1}} 22 // expected-error@-3 {{'affine.load' op memref out of upper bound access along dimension #2}} 23 // expected-error@-4 {{'affine.load' op memref out of lower bound access along dimension #2}} 25 %idy = affine.apply affine_map<(d0, d1) -> (10*d0 - d1 + 19)>(%i, %j) [all …]
|
D | pipeline-data-transfer.mlir | 1 // RUN: mlir-opt -allow-unregistered-dialect %s -split-input-file -affine-pipeline-data-transfer | … 19 affine.for %i = 0 to 8 { 20 …affine.dma_start %A[%i], %Ah[%i], %tag[%zero], %num_elts : memref<256 x f32>, memref<32 x f32, 1>,… 21 affine.dma_wait %tag[%zero], %num_elts : memref<1 x f32> 22 %v = affine.load %Ah[%i] : memref<32 x f32, affine_map<(d0) -> (d0)>, 1> 24 affine.store %r, %Ah[%i] : memref<32 x f32, affine_map<(d0) -> (d0)>, 1> 25 affine.for %j = 0 to 32 { 36 // CHECK-NEXT: affine.dma_start %{{.*}}[%{{.*}}], %{{.*}}[%{{.*}} mod 2, %{{.*}}], %{{.*}}[%{{.*}}… 37 // CHECK-NEXT: affine.for %{{.*}} = 1 to 8 { 38 // CHECK-NEXT: affine.dma_start %{{.*}}[%{{.*}}], %{{.*}}[%{{.*}} mod 2, %{{.*}}], %{{.*}}[%{{.*… [all …]
|
D | loop-fusion-dependence-check.mlir | 19 affine.for %i0 = 0 to 10 { 21 %v0 = affine.load %a[%i0] : memref<10xf32> 22 affine.store %cf7, %b[%i0] : memref<10xf32> 24 affine.for %i1 = 0 to 10 { 25 affine.store %cf7, %a[%i1] : memref<10xf32> 26 %v1 = affine.load %c[%i1] : memref<10xf32> 28 affine.for %i2 = 0 to 10 { 30 %v2 = affine.load %b[%i2] : memref<10xf32> 31 affine.store %cf7, %c[%i2] : memref<10xf32> 53 affine.for %i0 = 0 to 10 { [all …]
|
D | loop-fusion-transformation.mlir | 7 affine.for %i0 = 0 to 16 { 8 affine.store %cst, %0[%i0] : memref<100xf32> 10 affine.for %i1 = 0 to 5 { 11 %1 = affine.load %0[%i1] : memref<100xf32> 14 // CHECK: affine.for %[[IV0:.*]] = 0 to 5 { 15 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%[[IV0]]] : memref<100xf32> 16 // CHECK-NEXT: affine.load %{{.*}}[%[[IV0]]] : memref<100xf32> 33 affine.for %i0 = 0 to 10 { 34 affine.for %i1 = 0 to 10 { 35 %v0 = affine.load %b[%i0] : memref<10xf32> [all …]
|
D | loop-invariant-code-motion.mlir | 8 affine.for %arg0 = 0 to 10 { 10 affine.for %arg1 = 0 to 10 { 12 affine.store %v0, %m[%arg0] : memref<10xf32> 21 // CHECK-NEXT: affine.for 22 // CHECK-NEXT: affine.for 23 // CHECK-NEXT: affine.store 35 affine.for %arg0 = 0 to 10 { 36 affine.for %arg1 = 0 to 10 { 54 affine.for %arg0 = 0 to 10 { 55 %v0 = affine.load %m1[%arg0] : memref<10xf32> [all …]
|
/external/llvm-project/mlir/test/Dialect/Affine/ |
D | loop-unswitch.mlir | 1 // RUN: mlir-opt %s -split-input-file -test-affine-loop-unswitch | FileCheck %s 8 affine.for %i = 0 to 100 { 9 affine.store %v, %A[%i] : memref<100xi32> 10 affine.for %j = 0 to 100 { 11 affine.store %v, %A[%j] : memref<100xi32> 12 affine.if affine_set<(d0) : (d0 - 2 >= 0)>(%i) { 13 affine.store %v, %B[%j] : memref<100xi32> 17 affine.store %v, %A[%i] : memref<100xi32> 23 // CHECK: affine.for %[[I:.*]] = 0 to 100 { 24 // CHECK-NEXT: affine.store %{{.*}}, %[[A]][%[[I]]] [all …]
|
D | affine-loop-invariant-code-motion.mlir | 1 // RUN: mlir-opt %s -affine-loop-invariant-code-motion -split-input-file | FileCheck %s 8 affine.for %arg0 = 0 to 10 { 10 affine.for %arg1 = 0 to 10 { 11 affine.store %v0, %m[%arg0] : memref<10xf32> 19 // CHECK-NEXT: affine.for %arg0 = 0 to 10 { 20 // CHECK-NEXT: affine.store %1, %0[%arg0] : memref<10xf32> 27 // The store-load forwarding can see through affine apply's since it relies on 33 affine.for %arg0 = 0 to 10 { 34 %t0 = affine.apply affine_map<(d1) -> (d1 + 1)>(%arg0) 35 affine.store %cf7, %m[%t0] : memref<10xf32> [all …]
|
D | load-store.mlir | 8 affine.for %i0 = 0 to 10 { 9 affine.for %i1 = 0 to 10 { 10 %1 = affine.load %0[%i0, %i1] : memref<100x100xf32> 11 // CHECK: %{{.*}} = affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<100x100xf32> 22 affine.for %i0 = 0 to 10 { 23 affine.for %i1 = 0 to 10 { 24 %1 = affine.load %0[%i0 + 3, %i1 + 7] : memref<100x100xf32> 25 affine.store %1, %0[%i0 + 3, %i1 + 7] : memref<100x100xf32> 26 // CHECK: %{{.*}} = affine.load %{{.*}}[%{{.*}} + 3, %{{.*}} + 7] : memref<100x100xf32> 27 // CHECK: affine.store %{{.*}}, %{{.*}}[%{{.*}} + 3, %{{.*}} + 7] : memref<100x100xf32> [all …]
|
D | parallelize.mlir | 1 // RUN: mlir-opt %s -allow-unregistered-dialect -affine-parallelize| FileCheck %s 2 // RUN: mlir-opt %s -allow-unregistered-dialect -affine-parallelize='max-nested=1' | FileCheck --ch… 9 affine.for %arg0 = 0 to 1 { 10 affine.for %arg1 = 0 to 8 { 11 affine.for %arg2 = 0 to 8 { 12 affine.for %arg3 = 0 to 64 { 13 affine.store %cst, %0[%arg0, %arg1, %arg2, %arg3] : memref<1x8x8x64xf32> 18 affine.for %arg0 = 0 to 1 { 19 affine.for %arg1 = 0 to 8 { 20 affine.for %arg2 = 0 to 8 { [all …]
|
D | dma-generate.mlir | 1 // RUN: mlir-opt -allow-unregistered-dialect %s -split-input-file -affine-data-copy-generate="gener… 2 // RUN: mlir-opt -allow-unregistered-dialect %s -split-input-file -affine-data-copy-generate="gener… 26 …// CHECK: affine.dma_start %{{.*}}[%{{.*}}], %{{.*}}[%{{.*}}], %{{.*}}[%{{.*}}], %{{.*}} : memref… 27 // CHECK: affine.dma_wait %{{.*}}[%{{.*}}], %{{.*}} : memref<1xi32> 33 …// CHECK: affine.dma_start %{{.*}}[%{{.*}}], %{{.*}}[%{{.*}}], %{{.*}}[%{{.*}}], %{{.*}} : m… 34 // CHECK-NEXT: affine.dma_wait %{{.*}}[%{{.*}}], %{{.*}} : memref<1xi32> 35 // CHECK: affine.for %[[IV:.*]] = 0 to 256 { 36 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}] : memref<256xf32, 2> 39 // CHECK: affine.load %{{.*}}[%[[IV]]] : memref<256xf32, 2> 41 // CHECK: affine.load %{{.*}}[%[[IV]]] : memref<256xf32, 2> [all …]
|
D | ops.mlir | 4 // Check that the attributes for the affine operations are round-tripped. 5 // Check that `affine.yield` is visible in the generic form. 8 // CHECK: affine.for 11 // GENERIC: "affine.for"() 13 // GENERIC-NEXT: "affine.yield"() : () -> () 15 affine.for %i = 0 to 10 { 18 // CHECK: affine.if 21 // GENERIC: "affine.if"() 22 // GENERIC-NEXT: "affine.yield"() : () -> () 25 affine.if affine_set<() : ()> () { [all …]
|
D | affine-data-copy.mlir | 1 // RUN: mlir-opt %s -split-input-file -affine-data-copy-generate="generate-dma=false fast-mem-space… 3 // RUN: mlir-opt %s -split-input-file -affine-data-copy-generate="generate-dma=false fast-mem-space… 5 // Test affine data copy with a memref filter. We use a test pass that invokes 6 // affine data copy utility on the input loop nest. 7 // '-test-affine-data-copy-memref-filter' passes the first memref found in an 8 // affine.load op in the innermost loop as a filter. 9 // RUN: mlir-opt %s -split-input-file -test-affine-data-copy='memref-filter' | FileCheck %s --check… 10 // RUN: mlir-opt %s -split-input-file -test-affine-data-copy='for-memref-region' | FileCheck %s --c… 27 affine.for %i = 0 to 4096 step 128 { 28 affine.for %j = 0 to 4096 step 128 { [all …]
|
D | canonicalize.mlir | 49 affine.for %i0 = 0 to 15 { 52 %x0 = affine.apply affine_map<(d0) -> (d0 - 1)> (%i0) 53 %x1_0 = affine.apply affine_map<(d0, d1) -> (d0)> (%x0, %x0) 54 %x1_1 = affine.apply affine_map<(d0, d1) -> (d1)> (%x0, %x0) 56 // CHECK: [[I0A:%[0-9]+]] = affine.apply [[$MAP0]](%{{.*}}) 61 %y0 = affine.apply affine_map<(d0) -> (d0 + 1)> (%i0) 62 %y1_0 = affine.apply affine_map<(d0, d1) -> (d0)> (%y0, %y0) 63 %y1_1 = affine.apply affine_map<(d0, d1) -> (d1)> (%y0, %y0) 65 // CHECK-NEXT: [[I1A:%[0-9]+]] = affine.apply [[$MAP1]](%{{.*}}) 70 %xy_0 = affine.apply affine_map<(d0, d1) -> (d0)> (%x0, %y0) [all …]
|
D | loop-tiling.mlir | 1 // RUN: mlir-opt %s -split-input-file -affine-loop-tile="tile-size=32" | FileCheck %s 2 // RUN: mlir-opt %s -split-input-file -affine-loop-tile="cache-size=512" | FileCheck %s --check-pre… 3 // RUN: mlir-opt %s -split-input-file -affine-loop-tile="tile-size=32 separate" | FileCheck %s --ch… 13 // CHECK-NEXT: affine.for %{{.*}} = 0 to 256 step 32 { 14 // CHECK-NEXT: affine.for %{{.*}} = 0 to 512 step 32 { 15 // CHECK-NEXT: affine.for %{{.*}} = 0 to 1024 step 32 { 16 // CHECK-NEXT: affine.for %[[I:.*]] = [[$ID]](%{{.*}}) to [[$UB]](%{{.*}}) { 17 // CHECK-NEXT: affine.for %[[J:.*]] = [[$ID]](%{{.*}}) to [[$UB]](%{{.*}}) { 18 // CHECK-NEXT: affine.for %[[K:.*]] = [[$ID]](%{{.*}}) to [[$UB]](%{{.*}}) { 26 // CHECK-NEXT: affine.for %{{.*}} = 0 to 50 step 32 { [all …]
|
D | affine-loop-normalize.mlir | 1 // RUN: mlir-opt %s -affine-loop-normalize -split-input-file | FileCheck %s 13 // CHECK: affine.parallel (%[[i0:.*]], %[[j0:.*]]) = (0, 0) to (4, 2) 14 affine.parallel (%i, %j) = (0, 1) to (10, 5) step (3, 2) { 15 // CHECK: %[[i1:.*]] = affine.apply [[$MAP0]](%[[i0]]) 16 // CHECK: %[[j1:.*]] = affine.apply [[$MAP1]](%[[j0]]) 17 // CHECK: affine.parallel (%[[k0:.*]]) = (0) to (%[[j1]] - %[[i1]]) 18 affine.parallel (%k) = (%i) to (%j) { 19 // CHECK: %[[k1:.*]] = affine.apply [[$MAP2]](%[[i1]], %[[k0]]) 20 // CHECK: affine.store %{{.*}}, %{{.*}}[%[[i1]], %[[k1]]] : memref<2x4xf32> 21 affine.store %cst, %0[%i, %k] : memref<2x4xf32> [all …]
|
D | simplify-affine-structures.mlir | 1 // RUN: mlir-opt -allow-unregistered-dialect %s -split-input-file -simplify-affine-structures | Fil… 12 affine.for %arg0 = 1 to 10 { 13 affine.for %arg1 = 1 to 100 { 14 // CHECK: affine.if #[[$SET_EMPTY]]() 15 affine.if affine_set<(d0, d1) : (2 == 0)>(%arg0, %arg1) { 25 affine.for %arg0 = 1 to 10 { 26 affine.for %arg1 = 1 to 100 { 27 // CHECK: affine.if #[[$SET_EMPTY]]() 28 affine.if affine_set<(d0, d1) : (1 >= 0, -1 >= 0)> (%arg0, %arg1) { 38 affine.for %arg0 = 1 to 10 { [all …]
|
D | unroll.mlir | 1 // RUN: mlir-opt -allow-unregistered-dialect %s -affine-loop-unroll="unroll-full" | FileCheck %s --… 2 // RUN: mlir-opt -allow-unregistered-dialect %s -affine-loop-unroll="unroll-full unroll-full-thresh… 3 // RUN: mlir-opt -allow-unregistered-dialect %s -affine-loop-unroll="unroll-factor=4" | FileCheck %… 4 // RUN: mlir-opt -allow-unregistered-dialect %s -affine-loop-unroll="unroll-factor=1" | FileCheck %… 28 // UNROLL-FULL: affine.for %arg0 = 0 to 100 step 2 { 29 affine.for %i = 0 to 100 step 2 { 34 affine.for %j = 0 to 4 { 44 // UNROLL-FULL-NEXT: affine.for %arg0 = 0 to 100 step 2 { 45 affine.for %i = 0 to 100 step 2 { 47 // UNROLL-FULL: %1 = affine.apply [[$MAP0]](%c0) [all …]
|
D | invalid.mlir | 9 %0 = "affine.apply"(%arg0) {map = affine_map<(d0) -> (d0)>} : (i32) -> (index) 19 %0 = "affine.apply"(%arg0) {map = affine_map<(d0) -> (d0)>} : (index) -> (i32) 28 affine.for %n0 = 0 to 7 { 32 affine.for %n1 = 0 to #map(%dim)[%arg] { 43 affine.for %n0 = 0 to 7 { 47 affine.for %n1 = #map(%dim)[%arg] to 7 { 57 affine.load %M[%arg] : memref<10xi32> 71 affine.for %i0 = 0 to 7 { 73 affine.for %n0 = #map0(%i0)[%i0] to 7 { 84 affine.for %i0 = 0 to 7 { [all …]
|
/external/llvm-project/mlir/test/Dialect/Affine/SuperVectorize/ |
D | normalize_maps.mlir | 1 // RUN: mlir-opt %s -affine-super-vectorizer-test -normalize-maps | FileCheck %s 12 affine.for %i0 = 0 to 7 { 13 %0 = affine.apply affine_map<(d0) -> (d0)> (%i0) 14 %1 = affine.apply affine_map<(d0) -> (d0)> (%0) 15 %2 = affine.apply affine_map<(d0, d1) -> (d0 + d1)> (%0, %0) 16 %3 = affine.apply affine_map<(d0, d1) -> (d0 - d1)> (%0, %0) 18 // CHECK-NEXT: affine.for %{{.*}} = 0 to 7 19 // CHECK-NEXT: {{.*}} affine.apply #[[$ID1]](%{{.*}}) 20 // CHECK-NEXT: {{.*}} affine.apply #[[$D0TIMES2]](%{{.*}}) 21 // CHECK-NEXT: {{.*}} affine.apply #[[$ZERO]]() [all …]
|
D | vectorize_outer_loop_transpose_2d.mlir | 1 // RUN: mlir-opt %s -affine-super-vectorize="virtual-vector-size=32,256 test-fastest-varying=0,2" |… 18 affine.for %i0 = 0 to %M { 19 affine.for %i1 = 0 to %N { 20 affine.for %i2 = 0 to %P { 21 %a2 = affine.load %A[%i0, %i1, %i2] : memref<?x?x?xf32> 25 // CHECK: affine.for %{{.*}} = 0 to %{{.*}} step 32 26 // CHECK: affine.for %{{.*}} = 0 to %{{.*}} step 256 27 // CHECK: affine.for %{{.*}} = 0 to %{{.*}} { 29 affine.for %i3 = 0 to %M { 30 affine.for %i4 = 0 to %N { [all …]
|
D | vectorize_transpose_2d.mlir | 1 // RUN: mlir-opt %s -affine-super-vectorize="virtual-vector-size=32,256 test-fastest-varying=0,1" |… 18 affine.for %i0 = 0 to %M { 19 affine.for %i1 = 0 to %N { 20 affine.for %i2 = 0 to %P { 21 %a2 = affine.load %A[%i0, %i1, %i2] : memref<?x?x?xf32> 25 // CHECK: affine.for %{{.*}} = 0 to %{{.*}} step 32 26 // CHECK: affine.for %{{.*}} = 0 to %{{.*}} { 27 // CHECK: affine.for %{{.*}} = 0 to %{{.*}} step 256 29 affine.for %i3 = 0 to %M { 30 affine.for %i4 = 0 to %N { [all …]
|
/external/ImageMagick/Magick++/lib/ |
D | Options.cpp | 794 affine, in transformOrigin() local 795 current=_drawInfo->affine; in transformOrigin() 797 affine.sx=1.0; in transformOrigin() 798 affine.rx=0.0; in transformOrigin() 799 affine.ry=0.0; in transformOrigin() 800 affine.sy=1.0; in transformOrigin() 801 affine.tx=tx_; in transformOrigin() 802 affine.ty=ty_; in transformOrigin() 804 _drawInfo->affine.sx=current.sx*affine.sx+current.ry*affine.rx; in transformOrigin() 805 _drawInfo->affine.rx=current.rx*affine.sx+current.sy*affine.rx; in transformOrigin() [all …]
|
/external/llvm-project/mlir/docs/Dialects/ |
D | Affine.md | 1 # 'affine' Dialect 3 This dialect provides a powerful abstraction for affine operations and analyses. 23 // A 2d to 3d affine mapping. 62 The affine dialect imposes certain restrictions on dimension and symbolic 70 5. the result of an [`affine.apply` 83 [`affine.for`](#affinefor-operation) and 84 [`affine.parallel`](#affineparallel-operation) operations, and the result of an 85 [`affine.apply` operation](#affineapply-operation) (which recursively may use 93 affine-expr ::= `(` affine-expr `)` 94 | affine-expr `+` affine-expr [all …]
|