Skip to content

Commit a60608a

Browse files
committed
Add cast to _Copy* intrinsics
1 parent de9c861 commit a60608a

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

clang/lib/CodeGen/CGBuiltin.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10783,7 +10783,15 @@ Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigned BuiltinID,
1078310783
BuiltinID == AArch64::BI_CopyFloatFromInt32 ||
1078410784
BuiltinID == AArch64::BI_CopyInt32FromFloat ||
1078510785
BuiltinID == AArch64::BI_CopyInt64FromDouble) {
10786-
return EmitScalarExpr(E->getArg(0));
10786+
Value *Arg = EmitScalarExpr(E->getArg(0));
10787+
llvm::Type *RetTy = ConvertType(E->getType());
10788+
10789+
if (BuiltinID == AArch64::BI_CopyDoubleFromInt64 ||
10790+
BuiltinID == AArch64::BI_CopyFloatFromInt32)
10791+
Arg = Builder.CreateSIToFP(Arg, RetTy);
10792+
else
10793+
Arg = Builder.CreateFPToSI(Arg, RetTy);
10794+
return Arg;
1078710795
}
1078810796

1078910797
if (BuiltinID == AArch64::BI_CountLeadingOnes ||

0 commit comments

Comments
 (0)