@@ -6508,12 +6508,13 @@ IntrinsicLibrary::genMatchAllSync(mlir::Type resultType,
6508
6508
}
6509
6509
6510
6510
static mlir::Value genVoteSync (fir::FirOpBuilder &builder, mlir::Location loc,
6511
- llvm::StringRef funcName,
6511
+ llvm::StringRef funcName, mlir::Type resTy,
6512
6512
llvm::ArrayRef<mlir::Value> args) {
6513
6513
mlir::MLIRContext *context = builder.getContext ();
6514
6514
mlir::Type i32Ty = builder.getI32Type ();
6515
+ mlir::Type i1Ty = builder.getI1Type ();
6515
6516
mlir::FunctionType ftype =
6516
- mlir::FunctionType::get (context, {i32Ty, i32Ty }, {i32Ty });
6517
+ mlir::FunctionType::get (context, {i32Ty, i1Ty }, {resTy });
6517
6518
auto funcOp = builder.createFunction (loc, funcName, ftype);
6518
6519
llvm::SmallVector<mlir::Value> filteredArgs;
6519
6520
return builder.create <fir::CallOp>(loc, funcOp, args).getResult (0 );
@@ -6523,22 +6524,25 @@ static mlir::Value genVoteSync(fir::FirOpBuilder &builder, mlir::Location loc,
6523
6524
mlir::Value IntrinsicLibrary::genVoteAllSync (mlir::Type resultType,
6524
6525
llvm::ArrayRef<mlir::Value> args) {
6525
6526
assert (args.size () == 2 );
6526
- return genVoteSync (builder, loc, " llvm.nvvm.vote.all.sync" , args);
6527
+ return genVoteSync (builder, loc, " llvm.nvvm.vote.all.sync" ,
6528
+ builder.getI1Type (), args);
6527
6529
}
6528
6530
6529
6531
// ANY_SYNC
6530
6532
mlir::Value IntrinsicLibrary::genVoteAnySync (mlir::Type resultType,
6531
6533
llvm::ArrayRef<mlir::Value> args) {
6532
6534
assert (args.size () == 2 );
6533
- return genVoteSync (builder, loc, " llvm.nvvm.vote.any.sync" , args);
6535
+ return genVoteSync (builder, loc, " llvm.nvvm.vote.any.sync" ,
6536
+ builder.getI1Type (), args);
6534
6537
}
6535
6538
6536
6539
// BALLOT_SYNC
6537
6540
mlir::Value
6538
6541
IntrinsicLibrary::genVoteBallotSync (mlir::Type resultType,
6539
6542
llvm::ArrayRef<mlir::Value> args) {
6540
6543
assert (args.size () == 2 );
6541
- return genVoteSync (builder, loc, " llvm.nvvm.vote.ballot.sync" , args);
6544
+ return genVoteSync (builder, loc, " llvm.nvvm.vote.ballot.sync" ,
6545
+ builder.getI32Type (), args);
6542
6546
}
6543
6547
6544
6548
// MATCH_ANY_SYNC
0 commit comments