Lines Matching full:affine

1 // RUN: mlir-opt %s -split-input-file -pass-pipeline="builtin.module(func.func(test-affine-loop-uns…
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]]]
25 // CHECK-NEXT: affine.if #[[$SET]](%[[I]]) {
26 // CHECK-NEXT: affine.for %[[J:.*]] = 0 to 100 {
27 // CHECK-NEXT: affine.store %{{.*}}, %[[A]][%[[J]]]
28 // CHECK-NEXT: affine.store %{{.*}}, %[[B]][%[[J]]]
32 // CHECK-NEXT: affine.for %[[JJ:.*]] = 0 to 100 {
33 // CHECK-NEXT: affine.store %{{.*}}, %[[A]][%[[J]]]
37 // CHECK-NEXT: affine.store %{{.*}}, %[[A]][%[[I]]]
50 affine.for %i = 0 to 100 {
51 affine.for %j = 0 to 100 {
52 affine.for %k = 0 to 100 {
53 affine.if affine_set<(d0) : (d0 - 2 >= 0)>(%i) {
54 affine.store %v, %A[%i] : memref<100xi32>
61 // CHECK: affine.for
62 // CHECK-NEXT: affine.if
63 // CHECK-NEXT: affine.for
64 // CHECK-NEXT: affine.for
70 affine.for %i = 0 to 99 {
71 affine.for %j = 0 to 100 {
72 affine.for %k = 0 to 100 {
74 affine.if affine_set<(d0, d1) : (d0 - 2 >= 0, -d1 + 80 >= 0)>(%i, %j) {
75 affine.store %v, %A[%i] : memref<100xi32>
78 affine.store %v, %A[%i + 1] : memref<100xi32>
87 // CHECK: affine.for
88 // CHECK-NEXT: affine.for
89 // CHECK-NEXT: affine.if
90 // CHECK-NEXT: affine.for
92 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}]
97 // CHECK-NEXT: affine.for
99 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}} + 1]
109 affine.for %i = 0 to 100 {
110 affine.store %v, %A[0] : memref<100xi32>
111 affine.if affine_set<(d0) : (d0 - 2 >= 0)>(%N) {
112 affine.store %v, %A[%i] : memref<100xi32>
117 // CHECK: affine.if
118 // CHECK-NEXT: affine.for
119 // CHECK-NEXT: affine.store
120 // CHECK-NEXT: affine.store
123 // CHECK-NEXT: affine.for
124 // CHECK-NEXT: affine.store
132 affine.for %i = 0 to 100 {
133 affine.for %j = 0 to 100 {
134 affine.if affine_set<(d0) : (d0 - 2 >= 0)>(%j) {
135 affine.if affine_set<(d0, d1) : (d0 - 1 >= 0, -d0 + 99 >= 0)>(%i, %j) {
136 // The call to external is to avoid DCE on affine.if.
144 // CHECK: affine.for
145 // CHECK-NEXT: affine.if
146 // CHECK-NEXT: affine.for
147 // CHECK-NEXT: affine.if
157 affine.for %i = 0 to 100 {
158 affine.if affine_set<(d0) : (d0 - 1 >= 0, -d0 + 99 >= 0)>(%N) {
163 // CHECK-NEXT: affine.for
169 // A test case with affine.parallel.
187 affine.for %arg7 = #lb0(%arg5) to min #ub0(%arg5)[%sym] {
188 affine.parallel (%i0, %j0) = (0, 0) to (symbol(%sym), 100) step (10, 10) {
189 affine.for %arg8 = #lb1(%arg4) to min #ub1(%arg4)[%sym] {
190 affine.if #set0(%arg6, %arg7)[%sym, %sym] {
191 affine.for %arg9 = #flb0(%arg6) to #fub0(%arg6) {
192 affine.for %arg10 = #flb1(%arg7) to #fub1(%arg7) {
193 affine.store %v, %arg0[0, 0] : memref<?x?xf64>
197 affine.for %arg9 = #lb0(%arg6) to min #pub0(%arg6)[%sym] {
198 affine.for %arg10 = #lb1(%arg7) to min #pub1(%arg7)[%sym] {
199 affine.store %v, %arg0[0, 0] : memref<?x?xf64>
209 // CHECK: affine.for
210 // CHECK-NEXT: affine.if
211 // CHECK-NEXT: affine.parallel
212 // CHECK-NEXT: affine.for
213 // CHECK-NEXT: affine.for
214 // CHECK-NEXT: affine.for
215 // CHECK-NEXT: affine.store
221 // CHECK-NEXT: affine.parallel
222 // CHECK-NEXT: affine.for
223 // CHECK-NEXT: affine.for
224 // CHECK-NEXT: affine.for
225 // CHECK-NEXT: affine.store
238 affine.if affine_set<() : (0 == 0)>() {
241 affine.for %i = 0 to 100 {
242 affine.if affine_set<()[s0] : (s0 >= 0)>()[%N] {
249 // CHECK-NEXT: affine.if
250 // CHECK-NEXT: affine.for