Lines Matching full:affine

1 // RUN: mlir-opt -allow-unregistered-dialect %s -pass-pipeline='builtin.module(func.func(affine-loo…
2 // RUN: mlir-opt -allow-unregistered-dialect %s -pass-pipeline='builtin.module(func.func(affine-loo…
14 affine.for %i0 = 0 to 64 {
15 affine.for %i1 = 0 to 4 {
16 affine.store %0, %out[%i0, %i1] : memref<64x4xf32>
19 affine.for %i2 = 0 to 4 {
20 affine.for %i3 = 0 to 4 {
21 affine.for %i4 = 0 to 16 {
22 %v = affine.load %arg1[16 * %i3 - %i4 + 15, %i2] : memref<64x4xf32>
25 affine.for %i5 = 0 to 4 {
26 affine.for %i6 = 0 to 16 {
27 %v = affine.load %arg0[16 * %i5 - %i6 + 15, %i3] : memref<64x4xf32>
30 affine.for %i7 = 0 to 16 {
32 %v = affine.load %out[16 * %i5 + %i7, %i2] : memref<64x4xf32>
34 affine.store %s, %out[16 * %i5 + %i7, %i2] : memref<64x4xf32>
49 // CHECK: affine.for %{{.*}} = 0 to 4 {
50 // CHECK-NEXT: affine.for %{{.*}} = 0 to 64 {
51 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, 0] : memref<64x1xf32>
53 // CHECK-NEXT: affine.for %{{.*}} = 0 to 4 {
54 // CHECK-NEXT: affine.for %{{.*}} = 0 to 16 {
55 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}} * 16 - %{{.*}} + 15, %{{.*}}] : memref<64x4xf32>
58 // CHECK-NEXT: affine.for %{{.*}} = 0 to 4 {
59 // CHECK-NEXT: affine.for %{{.*}} = 0 to 16 {
60 …// CHECK-NEXT: affine.load %{{.*}}[%{{.*}} * 16 - %{{.*}} + 15, %{{.*}}] : memref<64x4xf3…
63 // CHECK-NEXT: affine.for %{{.*}} = 0 to 16 {
65 // CHECK: affine.load %{{.*}}[%{{.*}} * 16 + %{{.*}}, 0] : memref<64x1xf32>
67 …// CHECK: affine.store %{{.*}}, %{{.*}}[%{{.*}} * 16 + %{{.*}}, 0] : memref<64x1xf32>
85 affine.for %i0 = 0 to 10 {
86 affine.store %cf7, %a[%i0] : memref<10xf32>
88 affine.for %i1 = 0 to 10 {
89 %v0 = affine.load %a[%i1] : memref<10xf32>
90 affine.store %v0, %b[%i1] : memref<10xf32>
92 affine.for %i2 = 0 to 10 {
93 %v1 = affine.load %a[%i2] : memref<10xf32>
94 affine.store %v1, %b[%i2] : memref<10xf32>
107 // CHECK: affine.for %{{.*}} = 0 to 10 {
108 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}] : memref<10xf32>
109 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}] : memref<10xf32>
110 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}] : memref<10xf32>
112 // CHECK-NEXT: affine.for %{{.*}} = 0 to 10 {
113 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}] : memref<10xf32>
114 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}] : memref<10xf32>
127 affine.for %i0 = 0 to 10 {
128 affine.store %cf0, %a[%i0] : memref<10xf32>
131 affine.for %i1 = 0 to 5 {
132 affine.for %i2 = 0 to 10 {
133 %v0 = affine.load %a[%i2] : memref<10xf32>
134 affine.store %v0, %a[%i2] : memref<10xf32>
138 // The dependence between the load and affine.store is carried on loop '%i1', and
144 // CHECK: affine.for %{{.*}} = 0 to 10 {
145 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[0] : memref<1xf32>
146 // CHECK-NEXT: affine.for %{{.*}} = 0 to 5 {
147 // CHECK-NEXT: affine.load %{{.*}}[0] : memref<1xf32>
148 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[0] : memref<1xf32>
161 affine.for %i0 = 0 to 6 {
162 affine.for %i1 = 0 to 8 {
163 affine.store %cf0, %a[%i0, %i1] : memref<6x8xf32>
167 affine.for %i2 = 0 to 4 {
168 affine.for %i3 = 0 to 6 {
169 affine.for %i4 = 0 to 2 {
170 affine.for %i5 = 0 to 8 {
171 %v0 = affine.load %a[%i3, %i5] : memref<6x8xf32>
173 affine.store %v1, %a[%i3, %i5] : memref<6x8xf32>
179 // The dependence between the load and affine.store is carried on loops '%i2' and
186 // CHECK: affine.for %{{.*}} = 0 to 6 {
187 // CHECK-NEXT: affine.for %{{.*}} = 0 to 8 {
188 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[0, 0] : memref<1x1xf32>
189 // CHECK-NEXT: affine.for %{{.*}} = 0 to 4 {
190 // CHECK-NEXT: affine.for %{{.*}} = 0 to 2 {
191 // CHECK-NEXT: affine.load %{{.*}}[0, 0] : memref<1x1xf32>
193 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[0, 0] : memref<1x1xf32>
206 affine.for %i0 = 0 to 10 {
207 affine.store %cst, %arg0[%i0] : memref<10xf32>
209 affine.for %i1 = 0 to 10 {
210 %1 = affine.load %arg0[%i1] : memref<10xf32>
211 affine.store %1, %arg0[%i1] : memref<10xf32>
216 // CHECK-NEXT: affine.for %{{.*}} = 0 to 10 {
217 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}] : memref<10xf32>
218 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}] : memref<10xf32>
219 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}] : memref<10xf32>
233 affine.for %i0 = 0 to 32 {
234 affine.for %i1 = 0 to 8 {
235 affine.store %0, %arg1[%i0, %i1] : memref<32x8xf32>
238 affine.for %i = 0 to 2 {
239 affine.for %j = 0 to 8 {
240 affine.for %k = 0 to 8 {
241 affine.for %kk = 0 to 16 {
242 %v = affine.load %arg0[16 * %k + %kk, %j] : memref<128x8xf32>
245 affine.for %ii = 0 to 16 {
246 %v = affine.load %arg1[16 * %i + %ii, %j] : memref<32x8xf32>
248 affine.store %s, %arg1[16 * %i + %ii, %j] : memref<32x8xf32>
255 // CHECK: affine.for %{{.*}} = 0 to 2 {
256 // CHECK-NEXT: affine.for %{{.*}} = 0 to 8 {
257 // CHECK-NEXT: affine.for %{{.*}} = [[$MAP_LB]](%{{.*}}) to [[$MAP_UB]](%{{.*}}) {
258 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<32x8xf32>
260 // CHECK-NEXT: affine.for %{{.*}} = 0 to 8 {
261 // CHECK-NEXT: affine.for %{{.*}} = 0 to 16 {
262 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}} * 16 + %{{.*}}, %{{.*}}] : memref<128x8xf32>
265 // CHECK-NEXT: affine.for %{{.*}} = 0 to 16 {
266 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}} * 16 + %{{.*}}, %{{.*}}] : memref<32x8xf32>
268 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}} * 16 + %{{.*}}, %{{.*}}] : memref<32x…
285 affine.for %i0 = 0 to 10 {
286 affine.for %i1 = 0 to 10 {
287 affine.for %i2 = 0 to 10 {
288 %a0 = affine.apply affine_map<(d0) -> (d0)> (%i0)
289 %a1 = affine.apply affine_map<(d0) -> (d0)> (%i0)
290 %a2 = affine.apply affine_map<(d0, d1) -> (d0 - d1)> (%a0, %a1)
291 affine.store %cf7, %a[%a2] : memref<10xf32>
295 affine.for %i3 = 0 to 10 {
296 affine.for %i4 = 0 to 10 {
297 affine.for %i5 = 0 to 10 {
298 %v0 = affine.load %a[%c0] : memref<10xf32>
303 // CHECK: affine.for %{{.*}} = 0 to 10 {
304 // CHECK-NEXT: affine.for %{{.*}} = 0 to 10 {
305 // CHECK-NEXT: affine.for %{{.*}} = 0 to 10 {
306 // CHECK-NEXT: affine.apply #map(%{{.*}})
307 // CHECK-NEXT: affine.apply #map(%{{.*}})
308 // CHECK-NEXT: affine.apply #map1(%{{.*}}, %{{.*}})
309 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}] : memref<10xf32>
313 // CHECK-NEXT: affine.for %{{.*}} = 0 to 10 {
314 // CHECK-NEXT: affine.for %{{.*}} = 0 to 10 {
315 // CHECK-NEXT: affine.for %{{.*}} = 0 to 10 {
316 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}] : memref<10xf32>
330 affine.for %i0 = 0 to 10 {
331 affine.for %i1 = 0 to 10 {
332 affine.store %cst_1, %0[%i0, %i1] : memref<10x10xf32>
335 affine.for %i2 = 0 to 3 {
336 affine.for %i3 = 0 to 3 {
337 affine.store %cst, %arg0[%i2, %i3] : memref<10x10xf32>
340 affine.for %i4 = 0 to 3 {
341 affine.for %i5 = 0 to 3 {
342 %1 = affine.load %0[%i4, %i5] : memref<10x10xf32>
343 %2 = affine.load %arg0[%i4, %i5] : memref<10x10xf32>
345 affine.store %3, %arg0[%i4, %i5] : memref<10x10xf32>
348 affine.for %i6 = 0 to 3 {
349 affine.for %i7 = 0 to 3 {
350 affine.store %cst_0, %arg1[%i6, %i7] : memref<10x10xf32>
353 affine.for %i8 = 0 to 3 {
354 affine.for %i9 = 0 to 3 {
355 %4 = affine.load %0[%i8, %i9] : memref<10x10xf32>
356 %5 = affine.load %arg1[%i8, %i9] : memref<10x10xf32>
358 affine.store %6, %arg1[%i8, %i9] : memref<10x10xf32>
370 // CHECK: affine.for %{{.*}} = 0 to 3 {
371 // CHECK-NEXT: affine.for %{{.*}} = 0 to 3 {
372 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[0, 0] : memref<1x1xf32>
373 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<10x10xf32>
374 // CHECK-NEXT: affine.load %{{.*}}[0, 0] : memref<1x1xf32>
375 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<10x10xf32>
377 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<10x10xf32>
378 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<10x10xf32>
379 // CHECK-NEXT: affine.load %{{.*}}[0, 0] : memref<1x1xf32>
380 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<10x10xf32>
382 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<10x10xf32>
401 affine.for %i0 = 0 to 10 {
402 affine.for %i1 = 0 to 10 {
403 affine.store %cf7, %in_matrix[%i0, %i1] : memref<10x10xf32>
407 affine.for %i2 = 0 to 10 {
408 affine.for %i3 = 0 to 10 {
409 %v0 = affine.load %in_matrix[%i2, %i3] : memref<10x10xf32>
410 %v1 = affine.load %in_vec0[%i3] : memref<10xf32>
412 %v3 = affine.load %out_vec0[%i3] : memref<10xf32>
414 affine.store %v4, %out_vec0[%i3] : memref<10xf32>
418 affine.for %i4 = 0 to 10 {
419 affine.for %i5 = 0 to 10 {
420 %v5 = affine.load %in_matrix[%i4, %i5] : memref<10x10xf32>
421 %v6 = affine.load %in_vec1[%i5] : memref<10xf32>
423 %v8 = affine.load %out_vec1[%i5] : memref<10xf32>
425 affine.store %v9, %out_vec1[%i5] : memref<10xf32>
429 // CHECK: affine.for %{{.*}} = 0 to 10 {
430 // CHECK-NEXT: affine.for %{{.*}} = 0 to 10 {
431 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, 0] : memref<10x1xf32>
433 // CHECK-NEXT: affine.for %{{.*}} = 0 to 10 {
434 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, 0] : memref<10x1xf32>
435 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}] : memref<10xf32>
437 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}] : memref<10xf32>
439 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}] : memref<10xf32>
441 // CHECK-NEXT: affine.for %{{.*}} = 0 to 10 {
442 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, 0] : memref<10x1xf32>
443 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}] : memref<10xf32>
445 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}] : memref<10xf32>
447 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}] : memref<10xf32>
458 affine.for %i0 = 0 to 100 {
459 affine.for %i1 = 0 to 16 {
461 affine.store %1, %0[%i0, %i1] : memref<100x16xf32>
464 affine.for %i2 = 0 to 100 {
465 affine.for %i3 = 0 to 16 {
466 %2 = affine.load %0[%i2, %i3] : memref<100x16xf32>
472 // CHECK: affine.for %{{.*}} = 0 to 100 {
473 // CHECK-NEXT: affine.for %{{.*}} = 0 to 16 {
475 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[0, %{{.*}}] : memref<1x16xf32>
477 // CHECK-NEXT: affine.for %{{.*}} = 0 to 16 {
478 // CHECK-NEXT: affine.load %{{.*}}[0, %{{.*}}] : memref<1x16xf32>
491 affine.for %i2 = 0 to 9 {
492 affine.for %i3 = 0 to 4 {
493 affine.for %i5 = 0 to 16 {
494 %7 = affine.apply #map(%i2, %i5)
495 affine.store %2, %1[%7, %i3] : memref<144x4xf32>
499 affine.for %i6 = 0 to 9 {
500 affine.for %i7 = 0 to 9 {
501 affine.for %i8 = 0 to 4 {
502 affine.for %i10 = 0 to 16 {
503 %10 = affine.apply #map(%i6, %i10)
504 %11 = affine.load %1[%10, %i8] : memref<144x4xf32>
514 // MAXIMAL: affine.for %{{.*}} = 0 to 9 {
515 // MAXIMAL-NEXT: affine.for %{{.*}} = 0 to 9 {
516 // MAXIMAL-NEXT: affine.for %{{.*}} = 0 to 4 {
517 // MAXIMAL-NEXT: affine.for %{{.*}} = 0 to 16 {
518 // MAXIMAL-NEXT: affine.apply #[[$MAP]](%{{.*}}, %{{.*}})
519 // MAXIMAL-NEXT: affine.store %{{.*}}, %{{.*}}[0, 0] : memref<1x1xf32>
520 // MAXIMAL-NEXT: affine.apply #[[$MAP]](%{{.*}}, %{{.*}})
521 // MAXIMAL-NEXT: affine.load %{{.*}}[0, 0] : memref<1x1xf32>
542 affine.for %i0 = 0 to 64 {
543 affine.for %i1 = 0 to 9 {
544 %4 = affine.apply #map3(%i0, %i1)
545 %5 = affine.apply #map4(%i0, %i1)
546 %6 = affine.apply #map5(%i0, %i1)
547 %7 = affine.apply #map6(%i0, %i1)
548 %8 = affine.apply #map7(%i0, %i1)
549 %9 = affine.load %0[%4, %5, %7, %8, %6, %c0] : memref<2x2x3x3x16x1xf32>
550 affine.store %9, %1[%i0, %i1] : memref<64x9xf32>
553 affine.for %i2 = 0 to 9 {
554 affine.for %i3 = 0 to 4 {
555 affine.for %i4 = 0 to 16 {
556 %10 = affine.apply #map10(%i3, %i4)
557 %11 = affine.load %1[%10, %i2] : memref<64x9xf32>
559 affine.for %i5 = 0 to 16 {
560 %14 = affine.apply #map11(%i2, %i5)
561 affine.store %arg0, %2[%14, %i3] : memref<144x4xf32>
565 affine.for %i6 = 0 to 9 {
566 affine.for %i7 = 0 to 9 {
567 affine.for %i8 = 0 to 4 {
568 affine.for %i9 = 0 to 16 {
569 %15 = affine.apply #map12(%i8, %i9)
570 %16 = affine.load %1[%15, %i7] : memref<64x9xf32>
589 // MAXIMAL-NEXT: affine.for %{{.*}} = 0 to 9 {
590 // MAXIMAL-NEXT: affine.for %{{.*}} = 0 to 4 {
591 // MAXIMAL-NEXT: affine.for %{{.*}} = 0 to 16 {
592 // MAXIMAL-NEXT: affine.for %{{.*}} = 0 to 64 {
593 // MAXIMAL-NEXT: affine.apply [[$MAP0]](%{{.*}}, %{{.*}})
594 // MAXIMAL-NEXT: affine.apply [[$MAP1]](%{{.*}}, %{{.*}})
595 // MAXIMAL-NEXT: affine.apply [[$MAP2]](%{{.*}}, %{{.*}})
596 // MAXIMAL-NEXT: affine.apply [[$MAP3]](%{{.*}}, %{{.*}})
597 // MAXIMAL-NEXT: affine.apply [[$MAP4]](%{{.*}}, %{{.*}})
598 // MAXIMAL-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}]…
599 // MAXIMAL-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, 0] : memref<64x1xf32>
601 // MAXIMAL-NEXT: affine.apply [[$MAP7]](%{{.*}}, %{{.*}})
602 // MAXIMAL-NEXT: affine.load %{{.*}}[%{{.*}} * 16 + %{{.*}}, 0] : memref<64x1xf32>
603 // MAXIMAL-NEXT: affine.for %{{.*}} = 0 to 9 {
604 // MAXIMAL-NEXT: affine.for %{{.*}} = 0 to 4 {
605 // MAXIMAL-NEXT: affine.for %{{.*}} = 0 to 16 {
606 // MAXIMAL-NEXT: affine.apply [[$MAP8]](%{{.*}}, %{{.*}})
607 // MAXIMAL-NEXT: affine.load %{{.*}}[%{{.*}} * 16 - %{{.*}} + 15, 0] : memref<64x1xf32>
612 // MAXIMAL-NEXT: affine.for %{{.*}} = 0 to 16 {
613 // MAXIMAL-NEXT: affine.apply [[$MAP7]](%{{.*}}, %{{.*}})
614 // MAXIMAL-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<144x4xf32>
626 affine.for %i0 = 0 to 100 {
627 affine.store %cf0, %a[%i0]: memref<100xf32>
630 affine.for %i1 = 10 to 20 {
631 %v0 = affine.load %a[%i1]: memref<100xf32>
632 affine.for %i2 = 15 to 25 {
633 %v1 = affine.load %a[%i2]: memref<100xf32>
641 // CHECK: affine.for %{{.*}} = 10 to 20 {
642 // CHECK-NEXT: affine.for %{{.*}} = 10 to 25 {
643 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}} - 10] : memref<15xf32>
645 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}} - 10] : memref<15xf32>
646 // CHECK-NEXT: affine.for %{{.*}} = 15 to 25 {
647 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}} - 10] : memref<15xf32>
657 affine.for %i2 = 0 to 1024 {
658 affine.for %i3 = 0 to 1024 {
659 %0 = affine.load %arg3[%i2, %i3] : memref<1024x1024xf32>
660 %1 = affine.load %arg2[%i2, %i3] : memref<1024x1024xf32>
662 affine.store %2, %arg2[%i2, %i3] : memref<1024x1024xf32>
665 affine.for %i4 = 0 to 1024 {
666 affine.for %i5 = 0 to 1024 {
667 affine.for %i6 = 0 to 1024 {
668 %3 = affine.load %arg1[%i6, %i5] : memref<1024x1024xf32>
669 %4 = affine.load %arg0[%i4, %i6] : memref<1024x1024xf32>
671 %6 = affine.load %arg2[%i4, %i5] : memref<1024x1024xf32>
673 affine.store %7, %arg2[%i4, %i5] : memref<1024x1024xf32>
679 // CHECK: affine.for %{{.*}} = 0 to 1024 {
680 // CHECK-NEXT: affine.for %{{.*}} = 0 to 1024 {
681 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
682 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
684 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
685 // CHECK-NEXT: affine.for %{{.*}} = 0 to 1024 {
686 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
687 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
689 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
691 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
702 affine.for %i0 = 0 to 1024 {
703 affine.for %i1 = 0 to 1024 {
704 affine.store %cst, %arg2[%i0, %i1] : memref<1024x1024xf32>
707 affine.for %i2 = 0 to 1024 {
708 affine.for %i3 = 0 to 1024 {
709 affine.store %cst, %arg4[%i2, %i3] : memref<1024x1024xf32>
712 affine.for %i4 = 0 to 1024 {
713 affine.for %i5 = 0 to 1024 {
714 affine.for %i6 = 0 to 1024 {
715 %0 = affine.load %arg1[%i6, %i5] : memref<1024x1024xf32>
716 %1 = affine.load %arg0[%i4, %i6] : memref<1024x1024xf32>
718 %3 = affine.load %arg2[%i4, %i5] : memref<1024x1024xf32>
720 affine.store %4, %arg2[%i4, %i5] : memref<1024x1024xf32>
724 affine.for %i7 = 0 to 1024 {
725 affine.for %i8 = 0 to 1024 {
726 affine.for %i9 = 0 to 1024 {
727 %5 = affine.load %arg1[%i9, %i8] : memref<1024x1024xf32>
728 %6 = affine.load %arg0[%i7, %i9] : memref<1024x1024xf32>
730 %8 = affine.load %arg4[%i7, %i8] : memref<1024x1024xf32>
732 affine.store %9, %arg4[%i7, %i8] : memref<1024x1024xf32>
740 // CHECK: affine.for %{{.*}} = 0 to 1024 {
741 // CHECK-NEXT: affine.for %{{.*}} = 0 to 1024 {
742 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
743 // CHECK-NEXT: affine.for %{{.*}} = 0 to 1024 {
744 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
745 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
747 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
749 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
752 // CHECK-NEXT: affine.for %{{.*}} = 0 to 1024 {
753 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
754 // CHECK-NEXT: affine.for %{{.*}} = 0 to 1024 {
755 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
756 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
758 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
760 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
771 affine.for %i0 = 0 to 1024 {
772 affine.for %i1 = 0 to 1024 {
773 affine.for %i2 = 0 to 1024 {
774 %0 = affine.load %arg1[%i2, %i1] : memref<1024x1024xf32>
775 %1 = affine.load %arg0[%i0, %i2] : memref<1024x1024xf32>
777 %3 = affine.load %arg2[%i0, %i1] : memref<1024x1024xf32>
779 affine.store %4, %arg2[%i0, %i1] : memref<1024x1024xf32>
783 affine.for %i3 = 0 to 1024 {
784 affine.for %i4 = 0 to 1024 {
785 affine.for %i5 = 0 to 1024 {
786 %5 = affine.load %arg3[%i5, %i4] : memref<1024x1024xf32>
787 %6 = affine.load %arg2[%i3, %i5] : memref<1024x1024xf32>
789 %8 = affine.load %arg4[%i3, %i4] : memref<1024x1024xf32>
791 affine.store %9, %arg4[%i3, %i4] : memref<1024x1024xf32>
796 // CHECK: affine.for %{{.*}} = 0 to 1024 {
797 // CHECK-NEXT: affine.for %{{.*}} = 0 to 1024 {
798 // CHECK-NEXT: affine.for %{{.*}} = 0 to 1024 {
799 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
800 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
802 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
804 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
807 // CHECK-NEXT: affine.for %{{.*}} = 0 to 1024 {
808 // CHECK-NEXT: affine.for %{{.*}} = 0 to 1024 {
809 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
810 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
812 // CHECK-NEXT: affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
814 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%{{.*}}, %{{.*}}] : memref<1024x1024xf32>
829 affine.for %i0 = 0 to 10 {
830 affine.store %cf7, %local_m[%i0] : memref<10xf32>
831 %v0 = affine.load %local_m[%i0] : memref<10xf32>
832 affine.store %v0, %m[%i0] : memref<10xf32>
834 affine.for %i1 = 0 to 10 {
835 %v1 = affine.load %m[%i1] : memref<10xf32>
837 // CHECK: affine.for %[[i0:.*]] = 0 to 10 {
838 // CHECK-NEXT: affine.store %{{.*}}, [[LOCAL_M:%.*]][%[[i0]]] : memref<10xf32>
839 // CHECK-NEXT: [[v0:%.*]] = affine.load [[LOCAL_M]][%[[i0]]] : memref<10xf32>
840 // CHECK-NEXT: affine.store [[v0]], %{{.*}}[0] : memref<1xf32>
841 // CHECK-NEXT: affine.load %{{.*}}[0] : memref<1xf32>
855 affine.for %i0 = 0 to 10 {
856 affine.store %cf7, %dead_m[%i0] : memref<10xf32>
857 affine.store %cf7, %m[%i0] : memref<10xf32>
859 affine.for %i1 = 0 to 10 {
860 %v0 = affine.load %m[%i1] : memref<10xf32>
862 // CHECK: affine.for %[[i0:.*]] = 0 to 10 {
863 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%[[i0]]] : memref<10xf32>
864 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[0] : memref<1xf32>
865 // CHECK-NEXT: affine.load %{{.*}}[0] : memref<1xf32>
878 affine.for %i0 = 0 to 10 {
879 affine.store %cf7, %live_in_out_m[%i0] : memref<10xf32>
880 affine.store %cf7, %m[%i0] : memref<10xf32>
882 affine.for %i1 = 0 to 10 {
883 %v0 = affine.load %m[%i1] : memref<10xf32>
885 // CHECK: affine.for %[[i0:.*]] = 0 to 10 {
886 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[%[[i0]]] : memref<10xf32>
887 // CHECK-NEXT: affine.store %{{.*}}, %{{.*}}[0] : memref<1xf32>
888 // CHECK-NEXT: affine.load %{{.*}}[0] : memref<1xf32>