[mlir][openacc] Add missing print of vector_length in parallel op
This patch adds the missing print for the vector_length in the parallel operation.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D87630
diff --git a/mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp b/mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
index b5dfa2c..11a7748 100644
--- a/mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
+++ b/mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
@@ -269,22 +269,27 @@
printer << ParallelOp::getOperationName();
// async()?
- if (auto async = op.async())
+ if (Value async = op.async())
printer << " " << ParallelOp::getAsyncKeyword() << "(" << async << ")";
// wait()?
printOperandList(op.waitOperands(), ParallelOp::getWaitKeyword(), printer);
// num_gangs()?
- if (auto numGangs = op.numGangs())
+ if (Value numGangs = op.numGangs())
printer << " " << ParallelOp::getNumGangsKeyword() << "(" << numGangs
<< ")";
// num_workers()?
- if (auto numWorkers = op.numWorkers())
+ if (Value numWorkers = op.numWorkers())
printer << " " << ParallelOp::getNumWorkersKeyword() << "(" << numWorkers
<< ")";
+ // vector_length()?
+ if (Value vectorLength = op.vectorLength())
+ printer << " " << ParallelOp::getVectorLengthKeyword() << "("
+ << vectorLength << ")";
+
// if()?
if (Value ifCond = op.ifCond())
printer << " " << ParallelOp::getIfKeyword() << "(" << ifCond << ")";
diff --git a/mlir/test/Dialect/OpenACC/ops.mlir b/mlir/test/Dialect/OpenACC/ops.mlir
index 6cdba22..b534f70 100644
--- a/mlir/test/Dialect/OpenACC/ops.mlir
+++ b/mlir/test/Dialect/OpenACC/ops.mlir
@@ -232,3 +232,15 @@
// CHECK-NEXT: }
// CHECK-NEXT: acc.loop tile([[TILESIZE]]: i64, [[TILESIZE]]: i64) {
// CHECK-NEXT: }
+
+
+func @testparallelop() -> () {
+ %vectorLength = constant 128 : index
+ acc.parallel vector_length(%vectorLength) {
+ }
+ return
+}
+
+// CHECK: [[VECTORLENGTH:%.*]] = constant 128 : index
+// CHECK-NEXT: acc.parallel vector_length([[VECTORLENGTH]]) {
+// CHECK-NEXT: }