================ @@ -20955,6 +20955,25 @@ Value *CodeGenFunction::EmitSPIRVBuiltinExpr(unsigned BuiltinID, /*ReturnType=*/I->getType(), Intrinsic::spv_reflect, ArrayRef<Value *>{I, N}, nullptr, "spv.reflect"); } + case SPIRV::BI__builtin_spirv_smoothstep: { + Value *Min = EmitScalarExpr(E->getArg(0)); + Value *Max = EmitScalarExpr(E->getArg(1)); + Value *X = EmitScalarExpr(E->getArg(2)); + assert(E->getArg(0)->getType()->hasFloatingRepresentation() && + E->getArg(1)->getType()->hasFloatingRepresentation() && + E->getArg(2)->getType()->hasFloatingRepresentation() && + "SmoothStep operands must have a float representation"); + assert((E->getArg(0)->getType()->isScalarType() || + E->getArg(0)->getType()->isVectorType()) && + (E->getArg(1)->getType()->isScalarType() || + E->getArg(1)->getType()->isVectorType()) && + (E->getArg(2)->getType()->isScalarType() || + E->getArg(2)->getType()->isVectorType()) && + "SmoothStep operands must be a scalar or vector"); + return Builder.CreateIntrinsic( + /*ReturnType=*/Min->getType(), Intrinsic::spv_smoothstep, + ArrayRef<Value *>{Min, Max, X}, nullptr, "spv.smoothstep"); ---------------- farzonl wrote:
could you put an inline comment for the nullptr so I know what exactly we are setting to nullptr? ```cpp /*blah=*/nullptr ``` https://github.com/llvm/llvm-project/pull/132288 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits