Home
last modified time | relevance | path

Searched refs:affine (Results 1 – 25 of 359) sorted by relevance

12345678910>>...15

/external/llvm-project/mlir/test/Transforms/
Dloop-fusion.mlir1 // 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 …]
Dmemref-dataflow-opt.mlir13 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 …]
Dmemref-bound-check.mlir14 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 …]
Dpipeline-data-transfer.mlir1 // RUN: mlir-opt -allow-unregistered-dialect %s -split-input-file -affine-pipeline-data-transfer | …
19 affine.for %i = 0 to 8 {
20affine.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 …]
Dloop-fusion-dependence-check.mlir19 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 …]
Dloop-fusion-transformation.mlir7 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 …]
Dloop-invariant-code-motion.mlir8 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/
Dloop-unswitch.mlir1 // 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 …]
Daffine-loop-invariant-code-motion.mlir1 // 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 …]
Dload-store.mlir8 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 …]
Dparallelize.mlir1 // 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 …]
Ddma-generate.mlir1 // 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 …]
Dops.mlir4 // 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 …]
Daffine-data-copy.mlir1 // 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 …]
Dcanonicalize.mlir49 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 …]
Dloop-tiling.mlir1 // 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 …]
Daffine-loop-normalize.mlir1 // 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 …]
Dsimplify-affine-structures.mlir1 // 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 …]
Dunroll.mlir1 // 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 …]
Dinvalid.mlir9 %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/
Dnormalize_maps.mlir1 // 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 …]
Dvectorize_outer_loop_transpose_2d.mlir1 // 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 …]
Dvectorize_transpose_2d.mlir1 // 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/
DOptions.cpp794 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/
DAffine.md1 # '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 …]

12345678910>>...15