Lines Matching refs:memref

16 func.func @condBranch(%arg0: i1, %arg1: memref<2xf32>, %arg2: memref<2xf32>) {
19 cf.br ^bb3(%arg1 : memref<2xf32>)
21 %0 = memref.alloc() : memref<2xf32>
22 test.buffer_based in(%arg1: memref<2xf32>) out(%0: memref<2xf32>)
23 cf.br ^bb3(%0 : memref<2xf32>)
24 ^bb3(%1: memref<2xf32>):
25 test.copy(%1, %arg2) : (memref<2xf32>, memref<2xf32>)
29 // CHECK-NEXT: %[[ALLOC:.*]] = memref.alloc()
47 %arg1: memref<?xf32>,
48 %arg2: memref<?xf32>,
52 cf.br ^bb3(%arg1 : memref<?xf32>)
54 %1 = memref.alloc(%0) : memref<?xf32>
55 test.buffer_based in(%arg1: memref<?xf32>) out(%1: memref<?xf32>)
56 cf.br ^bb3(%1 : memref<?xf32>)
57 ^bb3(%2: memref<?xf32>):
58 test.copy(%2, %arg2) : (memref<?xf32>, memref<?xf32>)
65 // CHECK-NEXT: %[[ALLOC0:.*]] = memref.alloc(%[[IDX]])
89 %arg1: memref<?xf32>,
90 %arg2: memref<?xf32>,
94 cf.br ^bb6(%arg1 : memref<?xf32>)
96 %1 = memref.alloc(%0) : memref<?xf32>
97 test.buffer_based in(%arg1: memref<?xf32>) out(%1: memref<?xf32>)
100 cf.br ^bb5(%1 : memref<?xf32>)
102 cf.br ^bb5(%1 : memref<?xf32>)
103 ^bb5(%2: memref<?xf32>):
104 cf.br ^bb6(%2 : memref<?xf32>)
105 ^bb6(%3: memref<?xf32>):
106 cf.br ^bb7(%3 : memref<?xf32>)
107 ^bb7(%4: memref<?xf32>):
108 test.copy(%4, %arg2) : (memref<?xf32>, memref<?xf32>)
115 // CHECK-NEXT: %[[ALLOC0:.*]] = memref.alloc(%[[IDX]])
130 func.func @criticalEdge(%arg0: i1, %arg1: memref<2xf32>, %arg2: memref<2xf32>) {
131 cf.cond_br %arg0, ^bb1, ^bb2(%arg1 : memref<2xf32>)
133 %0 = memref.alloc() : memref<2xf32>
134 test.buffer_based in(%arg1: memref<2xf32>) out(%0: memref<2xf32>)
135 cf.br ^bb2(%0 : memref<2xf32>)
136 ^bb2(%1: memref<2xf32>):
137 test.copy(%1, %arg2) : (memref<2xf32>, memref<2xf32>)
141 // CHECK-NEXT: %[[ALLOC:.*]] = memref.alloc()
155 func.func @ifElse(%arg0: i1, %arg1: memref<2xf32>, %arg2: memref<2xf32>) {
156 %0 = memref.alloc() : memref<2xf32>
157 test.buffer_based in(%arg1: memref<2xf32>) out(%0: memref<2xf32>)
159 ^bb1(%arg1, %0 : memref<2xf32>, memref<2xf32>),
160 ^bb2(%0, %arg1 : memref<2xf32>, memref<2xf32>)
161 ^bb1(%1: memref<2xf32>, %2: memref<2xf32>):
162 cf.br ^bb3(%1, %2 : memref<2xf32>, memref<2xf32>)
163 ^bb2(%3: memref<2xf32>, %4: memref<2xf32>):
164 cf.br ^bb3(%3, %4 : memref<2xf32>, memref<2xf32>)
165 ^bb3(%5: memref<2xf32>, %6: memref<2xf32>):
166 %7 = memref.alloc() : memref<2xf32>
167 test.buffer_based in(%7: memref<2xf32>) out(%7: memref<2xf32>)
168 test.copy(%7, %arg2) : (memref<2xf32>, memref<2xf32>)
172 // CHECK-NEXT: %[[ALLOC0:.*]] = memref.alloc()
177 // CHECK: %[[ALLOC1:.*]] = memref.alloc()
193 func.func @ifElseNoUsers(%arg0: i1, %arg1: memref<2xf32>, %arg2: memref<2xf32>) {
194 %0 = memref.alloc() : memref<2xf32>
195 test.buffer_based in(%arg1: memref<2xf32>) out(%0: memref<2xf32>)
197 ^bb1(%arg1, %0 : memref<2xf32>, memref<2xf32>),
198 ^bb2(%0, %arg1 : memref<2xf32>, memref<2xf32>)
199 ^bb1(%1: memref<2xf32>, %2: memref<2xf32>):
200 cf.br ^bb3(%1, %2 : memref<2xf32>, memref<2xf32>)
201 ^bb2(%3: memref<2xf32>, %4: memref<2xf32>):
202 cf.br ^bb3(%3, %4 : memref<2xf32>, memref<2xf32>)
203 ^bb3(%5: memref<2xf32>, %6: memref<2xf32>):
204 test.copy(%arg1, %arg2) : (memref<2xf32>, memref<2xf32>)
208 // CHECK-NEXT: %[[ALLOC0:.*]] = memref.alloc()
225 func.func @ifElseNested(%arg0: i1, %arg1: memref<2xf32>, %arg2: memref<2xf32>) {
226 %0 = memref.alloc() : memref<2xf32>
227 test.buffer_based in(%arg1: memref<2xf32>) out(%0: memref<2xf32>)
229 ^bb1(%arg1, %0 : memref<2xf32>, memref<2xf32>),
230 ^bb2(%0, %arg1 : memref<2xf32>, memref<2xf32>)
231 ^bb1(%1: memref<2xf32>, %2: memref<2xf32>):
232 cf.br ^bb5(%1, %2 : memref<2xf32>, memref<2xf32>)
233 ^bb2(%3: memref<2xf32>, %4: memref<2xf32>):
234 cf.cond_br %arg0, ^bb3(%3 : memref<2xf32>), ^bb4(%4 : memref<2xf32>)
235 ^bb3(%5: memref<2xf32>):
236 cf.br ^bb5(%5, %3 : memref<2xf32>, memref<2xf32>)
237 ^bb4(%6: memref<2xf32>):
238 cf.br ^bb5(%3, %6 : memref<2xf32>, memref<2xf32>)
239 ^bb5(%7: memref<2xf32>, %8: memref<2xf32>):
240 %9 = memref.alloc() : memref<2xf32>
241 test.buffer_based in(%7: memref<2xf32>) out(%9: memref<2xf32>)
242 test.copy(%9, %arg2) : (memref<2xf32>, memref<2xf32>)
246 // CHECK-NEXT: %[[ALLOC0:.*]] = memref.alloc()
252 // CHECK: %[[ALLOC1:.*]] = memref.alloc()
261 func.func @redundantOperations(%arg0: memref<2xf32>) {
262 %0 = memref.alloc() : memref<2xf32>
263 test.buffer_based in(%arg0: memref<2xf32>) out(%0: memref<2xf32>)
264 %1 = memref.alloc() : memref<2xf32>
265 test.buffer_based in(%0: memref<2xf32>) out(%1: memref<2xf32>)
269 // CHECK-NEXT: %[[ALLOC0:.*]] = memref.alloc()
271 // CHECK: %[[ALLOC1:.*]] = memref.alloc()
288 %arg0: memref<2xf32>,
289 %arg1: memref<2xf32>) {
292 %0 = memref.alloc() : memref<2xf32>
293 test.buffer_based in(%arg0: memref<2xf32>) out(%0: memref<2xf32>)
294 cf.br ^exit(%0 : memref<2xf32>)
296 %1 = memref.alloc() : memref<2xf32>
297 test.buffer_based in(%arg0: memref<2xf32>) out(%1: memref<2xf32>)
298 cf.br ^exit(%1 : memref<2xf32>)
299 ^exit(%arg2: memref<2xf32>):
300 test.copy(%arg2, %arg1) : (memref<2xf32>, memref<2xf32>)
304 // CHECK-NEXT: %{{.*}} = memref.alloc()
305 // CHECK-NEXT: %{{.*}} = memref.alloc()
323 %arg0: memref<2xf32>,
324 %arg1: memref<2xf32>) {
327 cf.br ^exit(%arg0 : memref<2xf32>)
329 %1 = memref.alloc() : memref<2xf32>
330 test.buffer_based in(%arg0: memref<2xf32>) out(%1: memref<2xf32>)
331 memref.dealloc %1 : memref<2xf32>
332 cf.br ^exit(%1 : memref<2xf32>)
333 ^exit(%arg2: memref<2xf32>):
334 test.copy(%arg2, %arg1) : (memref<2xf32>, memref<2xf32>)
338 // CHECK-NEXT: %{{.*}} = memref.alloc()
352 %arg1: memref<2xf32>,
353 %arg2: memref<2xf32>) {
356 cf.br ^bb3(%arg1 : memref<2xf32>)
358 %0 = memref.alloc() : memref<2xf32>
359 test.region_buffer_based in(%arg1: memref<2xf32>) out(%0: memref<2xf32>) {
361 %1 = memref.alloc() : memref<2xf32>
362 test.buffer_based in(%arg1: memref<2xf32>) out(%1: memref<2xf32>)
366 cf.br ^bb3(%0 : memref<2xf32>)
367 ^bb3(%1: memref<2xf32>):
368 test.copy(%1, %arg2) : (memref<2xf32>, memref<2xf32>)
371 // CHECK-NEXT: %[[ALLOC0:.*]] = memref.alloc()
374 // CHECK: %[[ALLOC1:.*]] = memref.alloc()
386 %arg1 : index) -> memref<?x?xf32> {
388 %1 = memref.alloc(%arg0, %arg0) : memref<?x?xf32>
389 %2 = scf.if %0 -> (memref<?x?xf32>) {
390 scf.yield %1 : memref<?x?xf32>
392 %3 = memref.alloc(%arg0, %arg1) : memref<?x?xf32>
393 scf.yield %1 : memref<?x?xf32>
395 return %2 : memref<?x?xf32>
398 // CHECK: %[[ALLOC0:.*]] = memref.alloc(%arg0, %arg0)
401 // CHECK-NEXT: %[[ALLOC1:.*]] = memref.alloc(%arg0, %arg1)
412 %arg1 : index) -> memref<?x?xf32> {
414 %1 = memref.alloc(%arg0, %arg0) : memref<?x?xf32>
415 %2 = scf.if %0 -> (memref<?x?xf32>) {
416 scf.yield %1 : memref<?x?xf32>
418 %3 = memref.alloc(%arg0, %arg1) : memref<?x?xf32>
419 scf.yield %3 : memref<?x?xf32>
421 return %2 : memref<?x?xf32>
424 // CHECK: %[[ALLOC0:.*]] = memref.alloc(%arg0, %arg0)
425 // CHECK-NEXT: %[[ALLOC1:.*]] = memref.alloc(%arg0, %arg1)
438 %arg1 : index) -> memref<?x?xf32> {
440 %1 = memref.alloc(%arg0, %arg0) : memref<?x?xf32>
441 %2 = scf.if %0 -> (memref<?x?xf32>) {
442 %3 = scf.if %0 -> (memref<?x?xf32>) {
443 scf.yield %1 : memref<?x?xf32>
445 %4 = memref.alloc(%arg0, %arg1) : memref<?x?xf32>
446 scf.yield %4 : memref<?x?xf32>
448 scf.yield %3 : memref<?x?xf32>
450 %5 = memref.alloc(%arg1, %arg1) : memref<?x?xf32>
451 scf.yield %5 : memref<?x?xf32>
453 return %2 : memref<?x?xf32>
455 // CHECK: %[[ALLOC0:.*]] = memref.alloc(%arg0, %arg0)
456 // CHECK-NEXT: %[[ALLOC1:.*]] = memref.alloc(%arg0, %arg1)
457 // CHECK-NEXT: %[[ALLOC2:.*]] = memref.alloc(%arg1, %arg1)
470 %arg2: index) -> memref<?x?xf32> {
471 %0 = scf.if %arg1 -> (memref<?x?xf32>) {
475 %4 = memref.alloc(%arg2, %3) : memref<?x?xf32>
476 scf.yield %4 : memref<?x?xf32>
481 %4 = memref.alloc(%arg2, %3) : memref<?x?xf32>
482 scf.yield %4 : memref<?x?xf32>
484 return %0 : memref<?x?xf32>
506 func.func @inner_region_control_flow(%arg0 : index) -> memref<?x?xf32> {
507 %0 = memref.alloc(%arg0, %arg0) : memref<?x?xf32>
508 %1 = test.region_if %0 : memref<?x?xf32> -> (memref<?x?xf32>) then {
509 ^bb0(%arg1 : memref<?x?xf32>):
510 test.region_if_yield %arg1 : memref<?x?xf32>
512 ^bb0(%arg1 : memref<?x?xf32>):
513 test.region_if_yield %arg1 : memref<?x?xf32>
515 ^bb0(%arg1 : memref<?x?xf32>):
516 test.region_if_yield %arg1 : memref<?x?xf32>
518 return %1 : memref<?x?xf32>
521 // CHECK: %[[ALLOC0:.*]] = memref.alloc(%arg0, %arg0)
533 %arg1 : index) -> memref<?x?xf32> {
534 %0 = memref.alloc(%arg0, %arg0) : memref<?x?xf32>
535 %1 = test.region_if %0 : memref<?x?xf32> -> (memref<?x?xf32>) then {
536 ^bb0(%arg2 : memref<?x?xf32>):
537 test.region_if_yield %arg2 : memref<?x?xf32>
539 ^bb0(%arg2 : memref<?x?xf32>):
540 %2 = memref.alloc(%arg0, %arg1) : memref<?x?xf32>
541 test.region_if_yield %2 : memref<?x?xf32>
543 ^bb0(%arg2 : memref<?x?xf32>):
544 test.region_if_yield %arg2 : memref<?x?xf32>
546 return %1 : memref<?x?xf32>
549 // CHECK: %[[ALLOC0:.*]] = memref.alloc(%arg0, %arg0)
550 // CHECK-NEXT: %[[ALLOC1:.*]] = memref.alloc(%arg0, %arg1)
558 func.func @condBranchAlloca(%arg0: i1, %arg1: memref<2xf32>, %arg2: memref<2xf32>) {
561 cf.br ^bb3(%arg1 : memref<2xf32>)
563 %0 = memref.alloca() : memref<2xf32>
564 test.buffer_based in(%arg1: memref<2xf32>) out(%0: memref<2xf32>)
565 cf.br ^bb3(%0 : memref<2xf32>)
566 ^bb3(%1: memref<2xf32>):
567 test.copy(%1, %arg2) : (memref<2xf32>, memref<2xf32>)
574 // CHECK-NEXT: %[[ALLOCA:.*]] = memref.alloca()
585 %arg1: memref<2xf32>,
586 %arg2: memref<2xf32>) {
587 %0 = memref.alloca() : memref<2xf32>
588 test.buffer_based in(%arg1: memref<2xf32>) out(%0: memref<2xf32>)
590 ^bb1(%arg1, %0 : memref<2xf32>, memref<2xf32>),
591 ^bb2(%0, %arg1 : memref<2xf32>, memref<2xf32>)
592 ^bb1(%1: memref<2xf32>, %2: memref<2xf32>):
593 cf.br ^bb5(%1, %2 : memref<2xf32>, memref<2xf32>)
594 ^bb2(%3: memref<2xf32>, %4: memref<2xf32>):
595 cf.cond_br %arg0, ^bb3(%3 : memref<2xf32>), ^bb4(%4 : memref<2xf32>)
596 ^bb3(%5: memref<2xf32>):
597 cf.br ^bb5(%5, %3 : memref<2xf32>, memref<2xf32>)
598 ^bb4(%6: memref<2xf32>):
599 cf.br ^bb5(%3, %6 : memref<2xf32>, memref<2xf32>)
600 ^bb5(%7: memref<2xf32>, %8: memref<2xf32>):
601 %9 = memref.alloc() : memref<2xf32>
602 test.buffer_based in(%7: memref<2xf32>) out(%9: memref<2xf32>)
603 test.copy(%9, %arg2) : (memref<2xf32>, memref<2xf32>)
607 // CHECK-NEXT: %[[ALLOCA:.*]] = memref.alloca()
613 // CHECK-NEXT: %[[ALLOC:.*]] = memref.alloc()
624 %arg1: memref<2xf32>,
625 %arg2: memref<2xf32>) {
628 cf.br ^bb3(%arg1 : memref<2xf32>)
630 %0 = memref.alloc() : memref<2xf32>
631 test.region_buffer_based in(%arg1: memref<2xf32>) out(%0: memref<2xf32>) {
633 %1 = memref.alloca() : memref<2xf32>
634 test.buffer_based in(%arg1: memref<2xf32>) out(%1: memref<2xf32>)
638 cf.br ^bb3(%0 : memref<2xf32>)
639 ^bb3(%1: memref<2xf32>):
640 test.copy(%1, %arg2) : (memref<2xf32>, memref<2xf32>)
643 // CHECK-NEXT: %[[ALLOC:.*]] = memref.alloc()
646 // CHECK: %[[ALLOCA:.*]] = memref.alloca()
659 %buf: memref<2xf32>,
660 %res: memref<2xf32>) {
661 %0 = memref.alloc() : memref<2xf32>
663 iter_args(%iterBuf = %buf) -> memref<2xf32> {
665 %3 = memref.alloc() : memref<2xf32>
666 scf.yield %3 : memref<2xf32>
668 test.copy(%1, %res) : (memref<2xf32>, memref<2xf32>)
672 // CHECK: %[[ALLOC0:.*]] = memref.alloc()
674 // CHECK: %[[ALLOC1:.*]] = memref.alloc()
687 %buf: memref<2xf32>) -> memref<2xf32> {
688 %0 = memref.alloc() : memref<2xf32>
690 iter_args(%iterBuf = %buf) -> memref<2xf32> {
692 %3 = scf.if %2 -> (memref<2xf32>) {
693 %4 = memref.alloc() : memref<2xf32>
694 scf.yield %4 : memref<2xf32>
696 scf.yield %0 : memref<2xf32>
698 scf.yield %3 : memref<2xf32>
700 return %1 : memref<2xf32>
703 // CHECK: %[[ALLOC0:.*]] = memref.alloc()
705 // CHECK: %[[ALLOC1:.*]] = memref.alloc()
718 %buf: memref<2xf32>,
719 %res: memref<2xf32>) {
720 %0 = memref.alloc() : memref<2xf32>
722 iter_args(%iterBuf = %buf) -> memref<2xf32> {
724 iter_args(%iterBuf2 = %iterBuf) -> memref<2xf32> {
726 iter_args(%iterBuf3 = %iterBuf2) -> memref<2xf32> {
727 %4 = memref.alloc() : memref<2xf32>
729 %6 = scf.if %5 -> (memref<2xf32>) {
730 %7 = memref.alloc() : memref<2xf32>
731 scf.yield %7 : memref<2xf32>
733 scf.yield %iterBuf3 : memref<2xf32>
735 scf.yield %6 : memref<2xf32>
737 scf.yield %3 : memref<2xf32>
739 scf.yield %2 : memref<2xf32>
741 test.copy(%1, %res) : (memref<2xf32>, memref<2xf32>)
745 // CHECK: %[[ALLOC0:.*]] = memref.alloc()
749 // CHECK-NEXT: %[[ALLOC1:.*]] = memref.alloc()
750 // CHECK: %[[ALLOC2:.*]] = memref.alloc()
760 %buf: memref<?xf32>,
761 %res: memref<?xf32>) {
762 %0 = memref.alloc(%arg0) : memref<?xf32>
764 iter_args(%iterBuf = %buf) -> memref<?xf32> {
766 iter_args(%iterBuf2 = %iterBuf) -> memref<?xf32> {
768 iter_args(%iterBuf3 = %iterBuf2) -> memref<?xf32> {
770 %6 = scf.if %5 -> (memref<?xf32>) {
771 %7 = memref.alloc(%i3) : memref<?xf32>
772 scf.yield %7 : memref<?xf32>
774 scf.yield %iterBuf3 : memref<?xf32>
776 scf.yield %6 : memref<?xf32>
778 scf.yield %3 : memref<?xf32>
780 scf.yield %0 : memref<?xf32>
782 test.copy(%1, %res) : (memref<?xf32>, memref<?xf32>)
787 // CHECK: %[[ALLOC0:.*]] = memref.alloc({{.*}})
791 // CHECK: %[[ALLOC1:.*]] = memref.alloc({{.*}})