Skip to content

Commit 5d7484e

Browse files
committed
[flang][cuda][NFC] Use NVVM VoteBallotOp
1 parent 7288f1b commit 5d7484e

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

flang/lib/Optimizer/Builder/IntrinsicCall.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6542,8 +6542,11 @@ mlir::Value
65426542
IntrinsicLibrary::genVoteBallotSync(mlir::Type resultType,
65436543
llvm::ArrayRef<mlir::Value> args) {
65446544
assert(args.size() == 2);
6545-
return genVoteSync(builder, loc, "llvm.nvvm.vote.ballot.sync",
6546-
builder.getI32Type(), args);
6545+
mlir::Value arg1 =
6546+
builder.create<fir::ConvertOp>(loc, builder.getI1Type(), args[1]);
6547+
return builder
6548+
.create<mlir::NVVM::VoteBallotOp>(loc, resultType, args[0], arg1)
6549+
.getResult();
65476550
}
65486551

65496552
// MATCH_ANY_SYNC

flang/test/Lower/CUDA/cuda-device-proc.cuf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ end subroutine
305305
! CHECK-LABEL: func.func @_QPtestvote()
306306
! CHECK: fir.call @llvm.nvvm.vote.all.sync
307307
! CHECK: fir.call @llvm.nvvm.vote.any.sync
308-
! CHECK: fir.call @llvm.nvvm.vote.ballot.sync
308+
! CHECK: %{{.*}} = nvvm.vote.ballot.sync %{{.*}}, %{{.*}} : i32
309309

310310
! CHECK-DAG: func.func private @__ldca_i4x4_(!fir.ref<!fir.array<4xi32>>, !fir.ref<!fir.array<4xi32>>)
311311
! CHECK-DAG: func.func private @__ldcg_i4x4_(!fir.ref<!fir.array<4xi32>>, !fir.ref<!fir.array<4xi32>>)

0 commit comments

Comments
 (0)