@@ -22,8 +22,10 @@ module attributes { mpi.dlti = #dlti.map<"MPI:Implementation" = "MPICH"> } {
22
22
// CHECK: [[v7:%.*]] = llvm.call @MPI_Init([[v6]], [[v6]]) : (!llvm.ptr, !llvm.ptr) -> i32
23
23
%0 = mpi.init : !mpi.retval
24
24
25
+ // CHECK: [[comm:%.*]] = llvm.mlir.constant(1140850688 : i64) : i64
25
26
%comm = mpi.comm_world : !mpi.comm
26
- // CHECK: [[v8:%.*]] = llvm.mlir.constant(1140850688 : i32) : i32
27
+
28
+ // CHECK: [[v8:%.*]] = llvm.trunc [[comm]] : i64 to i32
27
29
// CHECK: [[v9:%.*]] = llvm.mlir.constant(1 : i32) : i32
28
30
// CHECK: [[v10:%.*]] = llvm.alloca [[v9]] x i32 : (i32) -> !llvm.ptr
29
31
// CHECK: [[v11:%.*]] = llvm.call @MPI_Comm_rank([[v8]], [[v10]]) : (i32, !llvm.ptr) -> i32
@@ -36,7 +38,8 @@ module attributes { mpi.dlti = #dlti.map<"MPI:Implementation" = "MPICH"> } {
36
38
// CHECK: [[v16:%.*]] = llvm.extractvalue [[v5]][3, 0] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
37
39
// CHECK: [[v17:%.*]] = llvm.trunc [[v16]] : i64 to i32
38
40
// CHECK: [[v18:%.*]] = llvm.mlir.constant(1275069450 : i32) : i32
39
- // CHECK: [[v20:%.*]] = llvm.call @MPI_Send([[v15]], [[v17]], [[v18]], [[v12]], [[v12]], [[v8]]) : (!llvm.ptr, i32, i32, i32, i32, i32) -> i32
41
+ // CHECK: [[comm_1:%.*]] = llvm.trunc [[comm]] : i64 to i32
42
+ // CHECK: [[v20:%.*]] = llvm.call @MPI_Send([[v15]], [[v17]], [[v18]], [[v12]], [[v12]], [[comm_1]]) : (!llvm.ptr, i32, i32, i32, i32, i32) -> i32
40
43
mpi.send (%arg0 , %rank , %rank , %comm ) : memref <100 xf32 >, i32 , i32
41
44
42
45
// CHECK: [[v21:%.*]] = llvm.extractvalue [[v5]][1] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
@@ -45,7 +48,8 @@ module attributes { mpi.dlti = #dlti.map<"MPI:Implementation" = "MPICH"> } {
45
48
// CHECK: [[v24:%.*]] = llvm.extractvalue [[v5]][3, 0] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
46
49
// CHECK: [[v25:%.*]] = llvm.trunc [[v24]] : i64 to i32
47
50
// CHECK: [[v26:%.*]] = llvm.mlir.constant(1275069450 : i32) : i32
48
- // CHECK: [[v28:%.*]] = llvm.call @MPI_Send([[v23]], [[v25]], [[v26]], [[v12]], [[v12]], [[v8]]) : (!llvm.ptr, i32, i32, i32, i32, i32) -> i32
51
+ // CHECK: [[comm_2:%.*]] = llvm.trunc [[comm]] : i64 to i32
52
+ // CHECK: [[v28:%.*]] = llvm.call @MPI_Send([[v23]], [[v25]], [[v26]], [[v12]], [[v12]], [[comm_2]]) : (!llvm.ptr, i32, i32, i32, i32, i32) -> i32
49
53
%1 = mpi.send (%arg0 , %rank , %rank , %comm ) : memref <100 xf32 >, i32 , i32 -> !mpi.retval
50
54
51
55
// CHECK: [[v29:%.*]] = llvm.extractvalue [[v5]][1] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
@@ -54,9 +58,10 @@ module attributes { mpi.dlti = #dlti.map<"MPI:Implementation" = "MPICH"> } {
54
58
// CHECK: [[v32:%.*]] = llvm.extractvalue [[v5]][3, 0] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
55
59
// CHECK: [[v33:%.*]] = llvm.trunc [[v32]] : i64 to i32
56
60
// CHECK: [[v34:%.*]] = llvm.mlir.constant(1275069450 : i32) : i32
61
+ // CHECK: [[comm_3:%.*]] = llvm.trunc [[comm]] : i64 to i32
57
62
// CHECK: [[v36:%.*]] = llvm.mlir.constant(1 : i64) : i64
58
63
// CHECK: [[v37:%.*]] = llvm.inttoptr [[v36]] : i64 to !llvm.ptr
59
- // CHECK: [[v38:%.*]] = llvm.call @MPI_Recv([[v31]], [[v33]], [[v34]], [[v12]], [[v12]], [[v8 ]], [[v37]]) : (!llvm.ptr, i32, i32, i32, i32, i32, !llvm.ptr) -> i32
64
+ // CHECK: [[v38:%.*]] = llvm.call @MPI_Recv([[v31]], [[v33]], [[v34]], [[v12]], [[v12]], [[comm_3 ]], [[v37]]) : (!llvm.ptr, i32, i32, i32, i32, i32, !llvm.ptr) -> i32
60
65
mpi.recv (%arg0 , %rank , %rank , %comm ) : memref <100 xf32 >, i32 , i32
61
66
62
67
// CHECK: [[v39:%.*]] = llvm.extractvalue [[v5]][1] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
@@ -65,9 +70,10 @@ module attributes { mpi.dlti = #dlti.map<"MPI:Implementation" = "MPICH"> } {
65
70
// CHECK: [[v42:%.*]] = llvm.extractvalue [[v5]][3, 0] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
66
71
// CHECK: [[v43:%.*]] = llvm.trunc [[v42]] : i64 to i32
67
72
// CHECK: [[v44:%.*]] = llvm.mlir.constant(1275069450 : i32) : i32
73
+ // CHECK: [[comm_4:%.*]] = llvm.trunc [[comm]] : i64 to i32
68
74
// CHECK: [[v46:%.*]] = llvm.mlir.constant(1 : i64) : i64
69
75
// CHECK: [[v47:%.*]] = llvm.inttoptr [[v46]] : i64 to !llvm.ptr
70
- // CHECK: [[v48:%.*]] = llvm.call @MPI_Recv([[v41]], [[v43]], [[v44]], [[v12]], [[v12]], [[v8 ]], [[v47]]) : (!llvm.ptr, i32, i32, i32, i32, i32, !llvm.ptr) -> i32
76
+ // CHECK: [[v48:%.*]] = llvm.call @MPI_Recv([[v41]], [[v43]], [[v44]], [[v12]], [[v12]], [[comm_4 ]], [[v47]]) : (!llvm.ptr, i32, i32, i32, i32, i32, !llvm.ptr) -> i32
71
77
%2 = mpi.recv (%arg0 , %rank , %rank , %comm ) : memref <100 xf32 >, i32 , i32 -> !mpi.retval
72
78
73
79
// CHECK: [[v49:%.*]] = llvm.call @MPI_Finalize() : () -> i32
@@ -105,9 +111,11 @@ module attributes { mpi.dlti = #dlti.map<"MPI:Implementation" = "OpenMPI"> } {
105
111
106
112
%comm = mpi.comm_world : !mpi.comm
107
113
// CHECK: [[v8:%.*]] = llvm.mlir.addressof @ompi_mpi_comm_world : !llvm.ptr
114
+ // CHECK: [[comm:%.*]] = llvm.ptrtoint [[v8]] : !llvm.ptr to i64
115
+ // CHECK: [[comm_1:%.*]] = llvm.inttoptr [[comm]] : i64 to !llvm.ptr
108
116
// CHECK: [[v9:%.*]] = llvm.mlir.constant(1 : i32) : i32
109
117
// CHECK: [[v10:%.*]] = llvm.alloca [[v9]] x i32 : (i32) -> !llvm.ptr
110
- // CHECK: [[v11:%.*]] = llvm.call @MPI_Comm_rank([[v8 ]], [[v10]]) : (!llvm.ptr, !llvm.ptr) -> i32
118
+ // CHECK: [[v11:%.*]] = llvm.call @MPI_Comm_rank([[comm_1 ]], [[v10]]) : (!llvm.ptr, !llvm.ptr) -> i32
111
119
%retval , %rank = mpi.comm_rank (%comm ) : !mpi.retval , i32
112
120
113
121
// CHECK: [[v12:%.*]] = llvm.load [[v10]] : !llvm.ptr -> i32
@@ -117,7 +125,7 @@ module attributes { mpi.dlti = #dlti.map<"MPI:Implementation" = "OpenMPI"> } {
117
125
// CHECK: [[v16:%.*]] = llvm.extractvalue [[v5]][3, 0] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
118
126
// CHECK: [[v17:%.*]] = llvm.trunc [[v16]] : i64 to i32
119
127
// CHECK: [[v18:%.*]] = llvm.mlir.addressof @ompi_mpi_float : !llvm.ptr
120
- // CHECK: [[v19:%.*]] = llvm.mlir.addressof @ompi_mpi_comm_world : !llvm.ptr
128
+ // CHECK: [[v19:%.*]] = llvm.inttoptr [[comm]] : i64 to !llvm.ptr
121
129
// CHECK: [[v20:%.*]] = llvm.call @MPI_Send([[v15]], [[v17]], [[v18]], [[v12]], [[v12]], [[v19]]) : (!llvm.ptr, i32, !llvm.ptr, i32, i32, !llvm.ptr) -> i32
122
130
mpi.send (%arg0 , %rank , %rank , %comm ) : memref <100 xf32 >, i32 , i32
123
131
@@ -127,7 +135,7 @@ module attributes { mpi.dlti = #dlti.map<"MPI:Implementation" = "OpenMPI"> } {
127
135
// CHECK: [[v24:%.*]] = llvm.extractvalue [[v5]][3, 0] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
128
136
// CHECK: [[v25:%.*]] = llvm.trunc [[v24]] : i64 to i32
129
137
// CHECK: [[v26:%.*]] = llvm.mlir.addressof @ompi_mpi_float : !llvm.ptr
130
- // CHECK: [[v27:%.*]] = llvm.mlir.addressof @ompi_mpi_comm_world : !llvm.ptr
138
+ // CHECK: [[v27:%.*]] = llvm.inttoptr [[comm]] : i64 to !llvm.ptr
131
139
// CHECK: [[v28:%.*]] = llvm.call @MPI_Send([[v23]], [[v25]], [[v26]], [[v12]], [[v12]], [[v27]]) : (!llvm.ptr, i32, !llvm.ptr, i32, i32, !llvm.ptr) -> i32
132
140
%1 = mpi.send (%arg0 , %rank , %rank , %comm ) : memref <100 xf32 >, i32 , i32 -> !mpi.retval
133
141
@@ -137,7 +145,7 @@ module attributes { mpi.dlti = #dlti.map<"MPI:Implementation" = "OpenMPI"> } {
137
145
// CHECK: [[v32:%.*]] = llvm.extractvalue [[v5]][3, 0] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
138
146
// CHECK: [[v33:%.*]] = llvm.trunc [[v32]] : i64 to i32
139
147
// CHECK: [[v34:%.*]] = llvm.mlir.addressof @ompi_mpi_float : !llvm.ptr
140
- // CHECK: [[v35:%.*]] = llvm.mlir.addressof @ompi_mpi_comm_world : !llvm.ptr
148
+ // CHECK: [[v35:%.*]] = llvm.inttoptr [[comm]] : i64 to !llvm.ptr
141
149
// CHECK: [[v36:%.*]] = llvm.mlir.constant(0 : i64) : i64
142
150
// CHECK: [[v37:%.*]] = llvm.inttoptr [[v36]] : i64 to !llvm.ptr
143
151
// CHECK: [[v38:%.*]] = llvm.call @MPI_Recv([[v31]], [[v33]], [[v34]], [[v12]], [[v12]], [[v35]], [[v37]]) : (!llvm.ptr, i32, !llvm.ptr, i32, i32, !llvm.ptr, !llvm.ptr) -> i32
@@ -149,7 +157,7 @@ module attributes { mpi.dlti = #dlti.map<"MPI:Implementation" = "OpenMPI"> } {
149
157
// CHECK: [[v42:%.*]] = llvm.extractvalue [[v5]][3, 0] : !llvm.struct<(ptr, ptr, i64, array<1 x i64>, array<1 x i64>)>
150
158
// CHECK: [[v43:%.*]] = llvm.trunc [[v42]] : i64 to i32
151
159
// CHECK: [[v44:%.*]] = llvm.mlir.addressof @ompi_mpi_float : !llvm.ptr
152
- // CHECK: [[v45:%.*]] = llvm.mlir.addressof @ompi_mpi_comm_world : !llvm.ptr
160
+ // CHECK: [[v45:%.*]] = llvm.inttoptr [[comm]] : i64 to !llvm.ptr
153
161
// CHECK: [[v46:%.*]] = llvm.mlir.constant(0 : i64) : i64
154
162
// CHECK: [[v47:%.*]] = llvm.inttoptr [[v46]] : i64 to !llvm.ptr
155
163
// CHECK: [[v48:%.*]] = llvm.call @MPI_Recv([[v41]], [[v43]], [[v44]], [[v12]], [[v12]], [[v45]], [[v47]]) : (!llvm.ptr, i32, !llvm.ptr, i32, i32, !llvm.ptr, !llvm.ptr) -> i32
0 commit comments