annotate mlir/test/Dialect/Linalg/tile_parallel.mlir @ 150:1d019706d866

LLVM10
author anatofuz
date Thu, 13 Feb 2020 15:10:13 +0900
parents
children 0572611fdcc8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: mlir-opt %s -linalg-tile-to-parallel-loops -linalg-tile-sizes=2 | FileCheck %s -check-prefix=TILE-2 --dump-input-on-failure
anatofuz
parents:
diff changeset
2 // RUN: mlir-opt %s -linalg-tile-to-parallel-loops -linalg-tile-sizes=0,2 | FileCheck %s -check-prefix=TILE-02 --dump-input-on-failure
anatofuz
parents:
diff changeset
3 // RUN: mlir-opt %s -linalg-tile-to-parallel-loops -linalg-tile-sizes=0,0,2 | FileCheck %s -check-prefix=TILE-002 --dump-input-on-failure
anatofuz
parents:
diff changeset
4 // RUN: mlir-opt %s -linalg-tile-to-parallel-loops -linalg-tile-sizes=2,3,4 | FileCheck %s -check-prefix=TILE-234 --dump-input-on-failure
anatofuz
parents:
diff changeset
5
anatofuz
parents:
diff changeset
6 #id_2d = affine_map<(i, j) -> (i, j)>
anatofuz
parents:
diff changeset
7 #pointwise_2d_trait = {
anatofuz
parents:
diff changeset
8 args_in = 2,
anatofuz
parents:
diff changeset
9 args_out = 1,
anatofuz
parents:
diff changeset
10 indexing_maps = [#id_2d, #id_2d, #id_2d],
anatofuz
parents:
diff changeset
11 iterator_types = ["parallel", "parallel"]
anatofuz
parents:
diff changeset
12 }
anatofuz
parents:
diff changeset
13
anatofuz
parents:
diff changeset
14 func @sum(%lhs: memref<?x?xf32, offset: ?, strides: [?, 1]>,
anatofuz
parents:
diff changeset
15 %rhs: memref<?x?xf32, offset: ?, strides: [?, 1]>,
anatofuz
parents:
diff changeset
16 %sum: memref<?x?xf32, offset: ?, strides: [?, 1]>) {
anatofuz
parents:
diff changeset
17 linalg.generic #pointwise_2d_trait %lhs, %rhs, %sum {
anatofuz
parents:
diff changeset
18 ^bb0(%lhs_in: f32, %rhs_in: f32, %sum_out: f32):
anatofuz
parents:
diff changeset
19 %result = addf %lhs_in, %rhs_in : f32
anatofuz
parents:
diff changeset
20 linalg.yield %result : f32
anatofuz
parents:
diff changeset
21 }: memref<?x?xf32, offset: ?, strides: [?, 1]>,
anatofuz
parents:
diff changeset
22 memref<?x?xf32, offset: ?, strides: [?, 1]>,
anatofuz
parents:
diff changeset
23 memref<?x?xf32, offset: ?, strides: [?, 1]>
anatofuz
parents:
diff changeset
24 return
anatofuz
parents:
diff changeset
25 }
anatofuz
parents:
diff changeset
26 // TILE-2-LABEL: func @sum(
anatofuz
parents:
diff changeset
27 // TILE-2-SAME: [[LHS:%.*]]: {{.*}}, [[RHS:%.*]]: {{.*}}, [[SUM:%.*]]: {{.*}}) {
anatofuz
parents:
diff changeset
28 // TILE-2-DAG: [[C0:%.*]] = constant 0 : index
anatofuz
parents:
diff changeset
29 // TILE-2-DAG: [[C1:%.*]] = constant 1 : index
anatofuz
parents:
diff changeset
30 // TILE-2-DAG: [[C2:%.*]] = constant 2 : index
anatofuz
parents:
diff changeset
31 // TILE-2: [[LHS_ROWS:%.*]] = dim [[LHS]], 0
anatofuz
parents:
diff changeset
32 // TILE-2: loop.parallel ([[I:%.*]]) = ([[C0]]) to ([[LHS_ROWS]]) step ([[C2]]) {
anatofuz
parents:
diff changeset
33 // TILE-2-NO: loop.parallel
anatofuz
parents:
diff changeset
34 // TILE-2: [[LHS_SUBVIEW:%.*]] = std.subview [[LHS]]
anatofuz
parents:
diff changeset
35 // TILE-2: [[RHS_SUBVIEW:%.*]] = std.subview [[RHS]]
anatofuz
parents:
diff changeset
36 // TILE-2: [[SUM_SUBVIEW:%.*]] = std.subview [[SUM]]
anatofuz
parents:
diff changeset
37 // TILE-2: linalg.generic {{.*}} [[LHS_SUBVIEW]], [[RHS_SUBVIEW]], [[SUM_SUBVIEW]] {
anatofuz
parents:
diff changeset
38
anatofuz
parents:
diff changeset
39 // TILE-02-LABEL: func @sum(
anatofuz
parents:
diff changeset
40 // TILE-02-SAME: [[LHS:%.*]]: {{.*}}, [[RHS:%.*]]: {{.*}}, [[SUM:%.*]]: {{.*}}) {
anatofuz
parents:
diff changeset
41 // TILE-02-DAG: [[C0:%.*]] = constant 0 : index
anatofuz
parents:
diff changeset
42 // TILE-02-DAG: [[C1:%.*]] = constant 1 : index
anatofuz
parents:
diff changeset
43 // TILE-02-DAG: [[C2:%.*]] = constant 2 : index
anatofuz
parents:
diff changeset
44 // TILE-02: [[LHS_COLS:%.*]] = dim [[LHS]], 1
anatofuz
parents:
diff changeset
45 // TILE-02: loop.parallel ([[I:%.*]]) = ([[C0]]) to ([[LHS_COLS]]) step ([[C2]]) {
anatofuz
parents:
diff changeset
46 // TILE-02-NO: loop.parallel
anatofuz
parents:
diff changeset
47 // TILE-02: [[LHS_SUBVIEW:%.*]] = std.subview [[LHS]]
anatofuz
parents:
diff changeset
48 // TILE-02: [[RHS_SUBVIEW:%.*]] = std.subview [[RHS]]
anatofuz
parents:
diff changeset
49 // TILE-02: [[SUM_SUBVIEW:%.*]] = std.subview [[SUM]]
anatofuz
parents:
diff changeset
50 // TILE-02: linalg.generic {{.*}} [[LHS_SUBVIEW]], [[RHS_SUBVIEW]], [[SUM_SUBVIEW]] {
anatofuz
parents:
diff changeset
51
anatofuz
parents:
diff changeset
52 // TILE-002-LABEL: func @sum(
anatofuz
parents:
diff changeset
53 // TILE-002-SAME: [[LHS:%.*]]: {{.*}}, [[RHS:%.*]]: {{.*}}, [[SUM:%.*]]: {{.*}}) {
anatofuz
parents:
diff changeset
54 // TILE-002-NO: loop.parallel
anatofuz
parents:
diff changeset
55 // TILE-002: linalg.generic {{.*}} [[LHS]], [[RHS]], [[SUM]] {
anatofuz
parents:
diff changeset
56
anatofuz
parents:
diff changeset
57 // TILE-234-LABEL: func @sum(
anatofuz
parents:
diff changeset
58 // TILE-234-SAME: [[LHS:%.*]]: {{.*}}, [[RHS:%.*]]: {{.*}}, [[SUM:%.*]]: {{.*}}) {
anatofuz
parents:
diff changeset
59 // TILE-234-DAG: [[C0:%.*]] = constant 0 : index
anatofuz
parents:
diff changeset
60 // TILE-234-DAG: [[C1:%.*]] = constant 1 : index
anatofuz
parents:
diff changeset
61 // TILE-234-DAG: [[C2:%.*]] = constant 2 : index
anatofuz
parents:
diff changeset
62 // TILE-234-DAG: [[C3:%.*]] = constant 3 : index
anatofuz
parents:
diff changeset
63 // TILE-234: [[LHS_ROWS:%.*]] = dim [[LHS]], 0
anatofuz
parents:
diff changeset
64 // TILE-234: [[LHS_COLS:%.*]] = dim [[LHS]], 1
anatofuz
parents:
diff changeset
65 // TILE-234: loop.parallel ([[I:%.*]], [[J:%.*]]) = ([[C0]], [[C0]]) to ([[LHS_ROWS]], [[LHS_COLS]]) step ([[C2]], [[C3]]) {
anatofuz
parents:
diff changeset
66 // TILE-234-NO: loop.parallel
anatofuz
parents:
diff changeset
67 // TILE-234: [[LHS_SUBVIEW:%.*]] = std.subview [[LHS]]
anatofuz
parents:
diff changeset
68 // TILE-234: [[RHS_SUBVIEW:%.*]] = std.subview [[RHS]]
anatofuz
parents:
diff changeset
69 // TILE-234: [[SUM_SUBVIEW:%.*]] = std.subview [[SUM]]
anatofuz
parents:
diff changeset
70 // TILE-234: linalg.generic {{.*}} [[LHS_SUBVIEW]], [[RHS_SUBVIEW]], [[SUM_SUBVIEW]] {