================ @@ -21901,6 +21901,30 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, return nullptr; } +static Value *EmitXCVIntrinsic(CodeGenFunction &CGF, unsigned BuiltinID, + unsigned IntrinsicID, + MutableArrayRef<Value *> Ops, + const CallExpr *E) { + llvm::Type *MachineType = + llvm::IntegerType::getInt32Ty(CGF.CGM.getLLVMContext()); + for (unsigned i = 0, e = E->getNumArgs(); i != e; i++) { + if (Ops[i]->getType() != MachineType) { + QualType type = E->getArg(i)->getType(); + assert((type->isSignedIntegerType() || type->isUnsignedIntegerType() || + type->isPointerType()) && + "Argument of Core-V builtin must have signed or unsigned integer " + "or Pointer type"); + if (type->isSignedIntegerType()) { + Ops[i] = CGF.Builder.CreateSExt(Ops[i], MachineType); ---------------- topperc wrote:
Why aren't the builtins declared to take the MachineType so that the cast will be done automatically? https://github.com/llvm/llvm-project/pull/100684 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits