@@ -18681,22 +18681,6 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID,
1868118681 CGM.getIntrinsic(IID, {ArgTy, Addr->getType(), Val->getType()});
1868218682 return Builder.CreateCall(F, {Addr, Val});
1868318683 }
18684- case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2bf16:
18685- case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2bf16: {
18686- Intrinsic::ID IID;
18687- switch (BuiltinID) {
18688- case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2bf16:
18689- IID = Intrinsic::amdgcn_global_atomic_fadd_v2bf16;
18690- break;
18691- case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2bf16:
18692- IID = Intrinsic::amdgcn_flat_atomic_fadd_v2bf16;
18693- break;
18694- }
18695- llvm::Value *Addr = EmitScalarExpr(E->getArg(0));
18696- llvm::Value *Val = EmitScalarExpr(E->getArg(1));
18697- llvm::Function *F = CGM.getIntrinsic(IID, {Addr->getType()});
18698- return Builder.CreateCall(F, {Addr, Val});
18699- }
1870018684 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_i32:
1870118685 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_v2i32:
1870218686 case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4i16:
@@ -19068,7 +19052,9 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID,
1906819052 case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2f16:
1906919053 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2f16:
1907019054 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f32:
19071- case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f64: {
19055+ case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f64:
19056+ case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2bf16:
19057+ case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2bf16: {
1907219058 llvm::AtomicRMWInst::BinOp BinOp;
1907319059 switch (BuiltinID) {
1907419060 case AMDGPU::BI__builtin_amdgcn_atomic_inc32:
@@ -19090,6 +19076,8 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID,
1909019076 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2f16:
1909119077 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f32:
1909219078 case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_f64:
19079+ case AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2bf16:
19080+ case AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2bf16:
1909319081 BinOp = llvm::AtomicRMWInst::FAdd;
1909419082 break;
1909519083 }
@@ -19126,7 +19114,9 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID,
1912619114 AO = AtomicOrdering::SequentiallyConsistent;
1912719115
1912819116 // The v2bf16 builtin uses i16 instead of a natural bfloat type.
19129- if (BuiltinID == AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_v2bf16) {
19117+ if (BuiltinID == AMDGPU::BI__builtin_amdgcn_ds_atomic_fadd_v2bf16 ||
19118+ BuiltinID == AMDGPU::BI__builtin_amdgcn_global_atomic_fadd_v2bf16 ||
19119+ BuiltinID == AMDGPU::BI__builtin_amdgcn_flat_atomic_fadd_v2bf16) {
1913019120 llvm::Type *V2BF16Ty = FixedVectorType::get(
1913119121 llvm::Type::getBFloatTy(Builder.getContext()), 2);
1913219122 Val = Builder.CreateBitCast(Val, V2BF16Ty);
0 commit comments