Skip to content

Commit 95557e3

Browse files
authored
[flang][cuda][NFC] Use the NVVM op for syncwarp (#166695)
1 parent 9a0000b commit 95557e3

File tree

2 files changed

+3
-9
lines changed

2 files changed

+3
-9
lines changed

flang/lib/Optimizer/Builder/CUDAIntrinsicCall.cpp

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1122,13 +1122,7 @@ CUDAIntrinsicLibrary::genSyncThreadsOr(mlir::Type resultType,
11221122
void CUDAIntrinsicLibrary::genSyncWarp(
11231123
llvm::ArrayRef<fir::ExtendedValue> args) {
11241124
assert(args.size() == 1);
1125-
constexpr llvm::StringLiteral funcName = "llvm.nvvm.bar.warp.sync";
1126-
mlir::Value mask = fir::getBase(args[0]);
1127-
mlir::FunctionType funcType =
1128-
mlir::FunctionType::get(builder.getContext(), {mask.getType()}, {});
1129-
auto funcOp = builder.createFunction(loc, funcName, funcType);
1130-
llvm::SmallVector<mlir::Value> argsList{mask};
1131-
fir::CallOp::create(builder, loc, funcOp, argsList);
1125+
mlir::NVVM::SyncWarpOp::create(builder, loc, fir::getBase(args[0]));
11321126
}
11331127

11341128
// THIS_GRID

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ end
105105

106106
! CHECK-LABEL: func.func @_QPdevsub() attributes {cuf.proc_attr = #cuf.cuda_proc<global>}
107107
! CHECK: nvvm.barrier0
108-
! CHECK: fir.call @llvm.nvvm.bar.warp.sync(%c1{{.*}}) fastmath<contract> : (i32) -> ()
108+
! CHECK: nvvm.bar.warp.sync %c1{{.*}} : i32
109109
! CHECK: fir.call @llvm.nvvm.membar.gl() fastmath<contract> : () -> ()
110110
! CHECK: fir.call @llvm.nvvm.membar.cta() fastmath<contract> : () -> ()
111111
! CHECK: fir.call @llvm.nvvm.membar.sys() fastmath<contract> : () -> ()
@@ -219,7 +219,7 @@ end
219219
! CHECK-LABEL: func.func @_QPhost1()
220220
! CHECK: cuf.kernel
221221
! CHECK: nvvm.barrier0
222-
! CHECK: fir.call @llvm.nvvm.bar.warp.sync(%c1{{.*}}) fastmath<contract> : (i32) -> ()
222+
! CHECK: nvvm.bar.warp.sync %c1{{.*}} : i32
223223
! CHECK: fir.call @llvm.nvvm.barrier0.and(%c1{{.*}}) fastmath<contract> : (i32) -> i32
224224
! CHECK: fir.call @llvm.nvvm.barrier0.popc(%c1{{.*}}) fastmath<contract> : (i32) -> i32
225225
! CHECK: fir.call @llvm.nvvm.barrier0.or(%c1{{.*}}) fastmath<contract> : (i32) -> i32

0 commit comments

Comments
 (0)