Skip to content

Commit 5f14db1

Browse files
committed
Moved the hlsl codegen to target specific path
1 parent d7c52f7 commit 5f14db1

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,18 @@ Value *CodeGenFunction::EmitHLSLBuiltinExpr(unsigned BuiltinID,
639639
getDotProductIntrinsic(CGM.getHLSLRuntime(), VecTy0->getElementType()),
640640
ArrayRef<Value *>{Op0, Op1}, nullptr, "hlsl.dot");
641641
}
642+
case Builtin::BI__builtin_hlsl_dot2add: {
643+
llvm::Triple::ArchType Arch = CGM.getTarget().getTriple().getArch();
644+
assert(Arch == llvm::Triple::dxil && "Intrinsic dot2add can be executed as a builtin only on dxil");
645+
Value *A = EmitScalarExpr(E->getArg(0));
646+
Value *B = EmitScalarExpr(E->getArg(1));
647+
Value *C = EmitScalarExpr(E->getArg(2));
648+
649+
Intrinsic::ID ID = llvm ::Intrinsic::dx_dot2add;
650+
return Builder.CreateIntrinsic(
651+
/*ReturnType=*/C->getType(), ID, ArrayRef<Value *>{A, B, C}, nullptr,
652+
"dx.dot2add");
653+
}
642654
case Builtin::BI__builtin_hlsl_dot4add_i8packed: {
643655
Value *A = EmitScalarExpr(E->getArg(0));
644656
Value *B = EmitScalarExpr(E->getArg(1));

0 commit comments

Comments
 (0)