forked from OSchip/llvm-project
Add support for vmul_p8 Neon intrinsic. Radar 8446141.
llvm-svn: 120812
This commit is contained in:
parent
4dcf83cbd5
commit
7795599f4b
|
@ -111,7 +111,8 @@ def VRADDHN : IInst<"vraddhn", "dww", "csiUcUsUi">;
|
|||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// E.3.2 Multiplication
|
||||
def VMUL : Inst<"vmul", "ddd", "csifUcUsUiPcQcQsQiQfQUcQUsQUiQPc", OP_MUL>;
|
||||
def VMUL : Inst<"vmul", "ddd", "csifUcUsUiQcQsQiQfQUcQUsQUi", OP_MUL>;
|
||||
def VMULP : SInst<"vmul", "ddd", "PcQPc">;
|
||||
def VMLA : Inst<"vmla", "dddd", "csifUcUsUiQcQsQiQfQUcQUsQUi", OP_MLA>;
|
||||
def VMLAL : SInst<"vmlal", "wwdd", "csiUcUsUi">;
|
||||
def VMLS : Inst<"vmls", "dddd", "csifUcUsUiQcQsQiQfQUcQUsQUi", OP_MLS>;
|
||||
|
|
|
@ -1537,6 +1537,10 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
|
|||
Ops[0] = Builder.CreateBitCast(Ops[0], QTy);
|
||||
return Builder.CreateTrunc(Ops[0], Ty, "vmovn");
|
||||
}
|
||||
case ARM::BI__builtin_neon_vmul_v:
|
||||
assert(poly && "vmul builtin only supported for polynomial types");
|
||||
return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vmulp, &Ty, 1),
|
||||
Ops, "vmul");
|
||||
case ARM::BI__builtin_neon_vmull_lane_v: {
|
||||
const llvm::Type *DTy =llvm::VectorType::getTruncatedElementVectorType(VTy);
|
||||
Ops[1] = Builder.CreateBitCast(Ops[1], DTy);
|
||||
|
|
Loading…
Reference in New Issue