Lines Matching full:linalg

1 // RUN: mlir-opt %s -linalg-fuse-elementwise-ops -split-input-file | FileCheck %s
14 …%3 = linalg.generic {indexing_maps = [#map0, #map0, #map0], iterator_types = ["parallel", "paralle…
19 linalg.yield %4 : f32
21 // CHECK: linalg.generic {
23 …%4 = linalg.generic {indexing_maps = [#map0, #map0, #map0], iterator_types = ["parallel", "paralle…
32 // CHECK-NOT: linalg.yield
34 // CHECK: linalg.yield
36 linalg.yield %5 : f32
56 …%3 = linalg.generic {indexing_maps = [#map0, #map1, #map0], iterator_types = ["parallel", "paralle…
61 linalg.yield %4 : f32
63 // CHECK: linalg.generic {
65 …%4 = linalg.generic {indexing_maps = [#map0, #map1, #map0], iterator_types = ["parallel", "paralle…
74 // CHECK-NOT: linalg.yield
76 // CHECK: linalg.yield
78 linalg.yield %5 : f32
98 …%3 = linalg.generic {indexing_maps = [#map0, #map1, #map0], iterator_types = ["parallel", "paralle…
103 linalg.yield %4 : f32
105 // CHECK: linalg.generic {
107 …%4 = linalg.generic {indexing_maps = [#map0, #map0, #map0], iterator_types = ["parallel", "paralle…
112 linalg.yield %5 : f32
132 …%3 = linalg.generic {indexing_maps = [#map0, #map1, #map0], iterator_types = ["parallel", "paralle…
137 linalg.yield %4 : f32
139 // CHECK: linalg.generic {
141 …%4 = linalg.generic {indexing_maps = [#map1, #map0, #map0], iterator_types = ["parallel", "paralle…
146 linalg.yield %5 : f32
166 %2 = linalg.generic {indexing_maps = [#map2, #map2, #map2], iterator_types = ["parallel"]}
171 linalg.yield %3 : f32
173 // CHECK: linalg.generic {
177 …%5 = linalg.generic {indexing_maps = [#map1, #map0, #map0], iterator_types = ["parallel", "paralle…
182 linalg.yield %6 : f32
196 %1 = linalg.generic {indexing_maps = [#map0, #map0, #map0], iterator_types = []}
201 linalg.yield %2 : f32
203 // CHECK: linalg.generic {
206 %2 = linalg.generic {indexing_maps = [#map0, #map0, #map0], iterator_types = []}
211 linalg.yield %3 : f32
230 %3 = linalg.generic {
237 linalg.yield %4 : f32
244 // CHECK: linalg.generic
262 %3 = linalg.generic {
269 linalg.yield %4 : f32
276 // CHECK: linalg.generic
290 %3 = linalg.generic {
297 linalg.yield %10 : i32
299 %4 = linalg.generic {
305 %idx0 = linalg.index 0 : index
306 %idx1 = linalg.index 1 : index
311 linalg.yield %8 : i32
317 // CHECK: linalg.generic
323 // CHECK: %[[IDX0:.+]] = linalg.index 0 : index
324 // CHECK: %[[IDX1:.+]] = linalg.index 1 : index
329 // CHECK: linalg.yield %[[VAL3]] : i32
330 // CHECK-NOT: linalg.generic
341 %3 = linalg.generic {
347 %idx0 = linalg.index 0 : index
348 %idx1 = linalg.index 1 : index
353 linalg.yield %7 : i32
355 %4 = linalg.generic {
362 linalg.yield %10 : i32
368 // CHECK: linalg.generic
373 // CHECK: %[[IDX0:.+]] = linalg.index 0 : index
374 // CHECK: %[[IDX1:.+]] = linalg.index 1 : index
380 // CHECK: linalg.yield %[[VAL3]] : i32
381 // CHECK-NOT: linalg.generic
395 %3 = linalg.generic {
401 %idx0 = linalg.index 0 : index
402 %idx1 = linalg.index 1 : index
407 linalg.yield %7 : i32
409 %4= linalg.generic {
415 %idx0 = linalg.index 0 : index
416 %idx1 = linalg.index 1 : index
421 linalg.yield %8 : i32
427 // CHECK: linalg.generic
431 // CHECK: %[[IDX0:.+]] = linalg.index 0 : index
432 // CHECK: %[[IDX1:.+]] = linalg.index 1 : index
437 // CHECK: %[[IDX2:.+]] = linalg.index 0 : index
438 // CHECK: %[[IDX3:.+]] = linalg.index 1 : index
443 // CHECK: linalg.yield %[[VAL4]] : i32
444 // CHECK-NOT: linalg.generic
457 %1 = linalg.generic
462 %2 = linalg.index 0 : index
465 linalg.yield %4 : i32
470 %5 = linalg.generic
477 linalg.yield %6 : i32
484 // CHECK: linalg.generic
488 // CHECK: %[[IDX1:.+]] = linalg.index 1 : index
492 // CHECK: linalg.yield %[[VAL3]] : i32
493 // CHECK-NOT: linalg.generic
503 %1 = linalg.generic
510 linalg.yield %4 : f32
513 %3 = linalg.generic
520 linalg.yield %4 : f32
529 // CHECK: %[[T0:.+]] = linalg.generic
534 // CHECK: linalg.yield
542 %2 = linalg.generic
550 linalg.yield %3 : f32
559 // CHECK: %[[T1:.+]] = linalg.generic
566 // CHECK: linalg.yield %[[T2]]
578 %0 = linalg.generic
585 linalg.yield %2 : f32
587 %1 = linalg.generic
594 linalg.yield %2 : f32
601 // CHECK: %[[RES:.+]] = linalg.generic
608 // CHECK: linalg.yield %[[T4]]
614 // CHECK: %[[RES:.*]] = linalg.generic
615 // CHECK-NOT: linalg.generic
624 %1 = linalg.generic {indexing_maps = [
630 linalg.yield %cp5 : f32
634 %2 = linalg.generic {indexing_maps = [
644 linalg.yield %m : f32
656 %0 = linalg.generic {
662 linalg.yield %r : f64
665 // CHECK-NEXT: %[[R:.*]]:2 = linalg.generic
669 // CHECK-NEXT: linalg.yield %[[A]], %[[B]] : f64, i32
671 %1 = linalg.generic {
678 linalg.yield %r : i32
691 // CHECK: %[[RESULT:.+]] = linalg.generic
696 %result = linalg.generic {
703 linalg.yield %0 : f32
717 %0 = linalg.generic #trait ins(%arg0 : tensor<?x?xf32>) outs(%arg0 : tensor<?x?xf32>) {
720 linalg.yield %1 : f32
722 %2 = linalg.generic #trait ins(%0 : tensor<?x?xf32>) outs(%0 : tensor<?x?xf32>) {
725 linalg.yield %3 : f32
736 // CHECK: %[[GENERIC1:.+]] = linalg.generic
741 // CHECK: %[[RESULT:.+]] = linalg.generic
755 %2:2 = linalg.generic {
766 linalg.yield %3, %arg3 : f32, i32
773 // CHECK: linalg.generic
776 // CHECK: linalg.yield %[[YIELD]], %[[C42]] : f32, i32
782 // implemented, we check that two linalg operations remain.
791 // CHECK: linalg.generic
792 // CHECK: linalg.generic
796 %5 = linalg.generic {
801 linalg.yield %arg2 : f32
804 %7 = linalg.fill ins(%cst : f32) outs(%6 : tensor<?xf32>) -> tensor<?xf32>
805 %8 = linalg.generic {
811 linalg.yield %9 : f32
820 %0 = linalg.generic {
825 %22 = linalg.index 0 : index
827 linalg.yield %23 : i64
830 %2 = linalg.generic {
837 linalg.yield %23 : i32
848 // CHECK: %[[RESULT:.+]]:2 = linalg.generic
854 // CHECK-DAG: %[[T0:.+]] = linalg.index 0
858 // CHECK: linalg.yield %[[CAST1]], %[[EXTRACT]]
865 // CHECK-NOT: linalg.fill
866 // CHECK: %[[GENERIC_OP:.*]] = linalg.generic
875 %2 = linalg.fill ins(%cst : f32) outs(%1 : tensor<?xf32>) -> tensor<?xf32>
877 …%4 = linalg.generic {indexing_maps = [#map0, #map0, #map0], iterator_types=["parallel"]} ins(%arg0…
880 linalg.yield %5 : f32
889 // CHECK-NOT: linalg.fill
890 // CHECK: %[[GENERIC_OP:.*]] = linalg.generic
899 %2 = linalg.fill ins(%cst : f32) outs(%1 : tensor<?xf16>) -> tensor<?xf16>
901 …%4 = linalg.generic {indexing_maps = [#map0, #map0, #map0], iterator_types=["parallel"]} ins(%arg0…
904 linalg.yield %5 : f16
912 // CHECK-NOT: linalg.fill
913 // CHECK: %[[GENERIC_OP:.*]] = linalg.generic
926 %3 = linalg.fill ins(%cst1 : f32) outs(%2 : tensor<?x?xf32>) -> tensor<?x?xf32>
928 %5 = linalg.fill ins(%cst2 : f32) outs(%4 : tensor<?x?xf32>) -> tensor<?x?xf32>
930 …%7 = linalg.generic {indexing_maps = [#map0, #map1, #map0], iterator_types=["parallel","parallel"]…
933 linalg.yield %8 : f32
945 %2:2 = linalg.generic {
951 linalg.yield %4, %5 : f32, f32
953 %3 = linalg.generic {
959 linalg.yield %5 : f32
968 // CHECK: %[[GENERIC:.+]] = linalg.generic
978 // CHECK: linalg.yield %[[T3]] : f32