2
2
3
3
// CHECK-LABEL: @parallel
4
4
func.func @parallel (%arg0: index , %arg1: index , %arg2: index ,
5
- %arg3: index , %arg4: index , %arg5: index ) {
5
+ %arg3: index , %arg4: index , %arg5: index ) {
6
6
// CHECK: %[[FOUR:.+]] = llvm.mlir.constant(4 : i32) : i32
7
7
// CHECK: omp.parallel num_threads(%[[FOUR]] : i32) {
8
- // CHECK: omp.wsloop for (%[[LVAR1:.*]], %[[LVAR2:.*]]) : index = (%arg0, %arg1) to (%arg2, %arg3) step (%arg4, %arg5) {
8
+ // CHECK: omp.wsloop {
9
+ // CHECK: omp.loop_nest (%[[LVAR1:.*]], %[[LVAR2:.*]]) : index = (%arg0, %arg1) to (%arg2, %arg3) step (%arg4, %arg5) {
9
10
// CHECK: memref.alloca_scope
10
11
scf.parallel (%i , %j ) = (%arg0 , %arg1 ) to (%arg2 , %arg3 ) step (%arg4 , %arg5 ) {
11
12
// CHECK: "test.payload"(%[[LVAR1]], %[[LVAR2]]) : (index, index) -> ()
12
13
" test.payload" (%i , %j ) : (index , index ) -> ()
13
14
// CHECK: omp.yield
14
15
// CHECK: }
15
16
}
17
+ // CHECK: omp.terminator
18
+ // CHECK: }
16
19
// CHECK: omp.terminator
17
20
// CHECK: }
18
21
return
@@ -23,20 +26,26 @@ func.func @nested_loops(%arg0: index, %arg1: index, %arg2: index,
23
26
%arg3: index , %arg4: index , %arg5: index ) {
24
27
// CHECK: %[[FOUR:.+]] = llvm.mlir.constant(4 : i32) : i32
25
28
// CHECK: omp.parallel num_threads(%[[FOUR]] : i32) {
26
- // CHECK: omp.wsloop for (%[[LVAR_OUT1:.*]]) : index = (%arg0) to (%arg2) step (%arg4) {
27
- // CHECK: memref.alloca_scope
29
+ // CHECK: omp.wsloop {
30
+ // CHECK: omp.loop_nest (%[[LVAR_OUT1:.*]]) : index = (%arg0) to (%arg2) step (%arg4) {
31
+ // CHECK: memref.alloca_scope
28
32
scf.parallel (%i ) = (%arg0 ) to (%arg2 ) step (%arg4 ) {
29
33
// CHECK: omp.parallel
30
- // CHECK: omp.wsloop for (%[[LVAR_IN1:.*]]) : index = (%arg1) to (%arg3) step (%arg5) {
34
+ // CHECK: omp.wsloop {
35
+ // CHECK: omp.loop_nest (%[[LVAR_IN1:.*]]) : index = (%arg1) to (%arg3) step (%arg5) {
31
36
// CHECK: memref.alloca_scope
32
37
scf.parallel (%j ) = (%arg1 ) to (%arg3 ) step (%arg5 ) {
33
38
// CHECK: "test.payload"(%[[LVAR_OUT1]], %[[LVAR_IN1]]) : (index, index) -> ()
34
39
" test.payload" (%i , %j ) : (index , index ) -> ()
35
40
// CHECK: }
36
41
}
37
- // CHECK: omp.yield
42
+ // CHECK: omp.yield
43
+ // CHECK: }
44
+ // CHECK: omp.terminator
38
45
// CHECK: }
39
46
}
47
+ // CHECK: omp.terminator
48
+ // CHECK: }
40
49
// CHECK: omp.terminator
41
50
// CHECK: }
42
51
return
@@ -47,27 +56,33 @@ func.func @adjacent_loops(%arg0: index, %arg1: index, %arg2: index,
47
56
%arg3: index , %arg4: index , %arg5: index ) {
48
57
// CHECK: %[[FOUR:.+]] = llvm.mlir.constant(4 : i32) : i32
49
58
// CHECK: omp.parallel num_threads(%[[FOUR]] : i32) {
50
- // CHECK: omp.wsloop for (%[[LVAR_AL1:.*]]) : index = (%arg0) to (%arg2) step (%arg4) {
59
+ // CHECK: omp.wsloop {
60
+ // CHECK: omp.loop_nest (%[[LVAR_AL1:.*]]) : index = (%arg0) to (%arg2) step (%arg4) {
51
61
// CHECK: memref.alloca_scope
52
62
scf.parallel (%i ) = (%arg0 ) to (%arg2 ) step (%arg4 ) {
53
63
// CHECK: "test.payload1"(%[[LVAR_AL1]]) : (index) -> ()
54
64
" test.payload1" (%i ) : (index ) -> ()
55
65
// CHECK: omp.yield
56
66
// CHECK: }
57
67
}
68
+ // CHECK: omp.terminator
69
+ // CHECK: }
58
70
// CHECK: omp.terminator
59
71
// CHECK: }
60
72
61
73
// CHECK: %[[FOUR:.+]] = llvm.mlir.constant(4 : i32) : i32
62
74
// CHECK: omp.parallel num_threads(%[[FOUR]] : i32) {
63
- // CHECK: omp.wsloop for (%[[LVAR_AL2:.*]]) : index = (%arg1) to (%arg3) step (%arg5) {
75
+ // CHECK: omp.wsloop {
76
+ // CHECK: omp.loop_nest (%[[LVAR_AL2:.*]]) : index = (%arg1) to (%arg3) step (%arg5) {
64
77
// CHECK: memref.alloca_scope
65
78
scf.parallel (%j ) = (%arg1 ) to (%arg3 ) step (%arg5 ) {
66
79
// CHECK: "test.payload2"(%[[LVAR_AL2]]) : (index) -> ()
67
80
" test.payload2" (%j ) : (index ) -> ()
68
81
// CHECK: omp.yield
69
82
// CHECK: }
70
83
}
84
+ // CHECK: omp.terminator
85
+ // CHECK: }
71
86
// CHECK: omp.terminator
72
87
// CHECK: }
73
88
return
0 commit comments