forked from OSchip/llvm-project
Stop using clang builtins for Neon vaba intrinsics.
llvm-svn: 121277
This commit is contained in:
parent
194ad82666
commit
7d66df9c33
|
@ -62,6 +62,7 @@ def OP_REV64 : Op;
|
||||||
def OP_REV32 : Op;
|
def OP_REV32 : Op;
|
||||||
def OP_REV16 : Op;
|
def OP_REV16 : Op;
|
||||||
def OP_REINT : Op;
|
def OP_REINT : Op;
|
||||||
|
def OP_ABA : Op;
|
||||||
|
|
||||||
class Inst <string n, string p, string t, Op o> {
|
class Inst <string n, string p, string t, Op o> {
|
||||||
string Name = n;
|
string Name = n;
|
||||||
|
@ -167,7 +168,7 @@ def VTST : WInst<"vtst", "udd", "csiUcUsUiPcQcQsQiQUcQUsQUiQPc">;
|
||||||
// E.3.5 Absolute Difference
|
// E.3.5 Absolute Difference
|
||||||
def VABD : SInst<"vabd", "ddd", "csiUcUsUifQcQsQiQUcQUsQUiQf">;
|
def VABD : SInst<"vabd", "ddd", "csiUcUsUifQcQsQiQUcQUsQUiQf">;
|
||||||
def VABDL : SInst<"vabdl", "wdd", "csiUcUsUi">;
|
def VABDL : SInst<"vabdl", "wdd", "csiUcUsUi">;
|
||||||
def VABA : SInst<"vaba", "dddd", "csiUcUsUiQcQsQiQUcQUsQUi">;
|
def VABA : Inst<"vaba", "dddd", "csiUcUsUiQcQsQiQUcQUsQUi", OP_ABA>;
|
||||||
def VABAL : SInst<"vabal", "wwdd", "csiUcUsUi">;
|
def VABAL : SInst<"vabal", "wwdd", "csiUcUsUi">;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -1181,16 +1181,6 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
|
||||||
unsigned Int;
|
unsigned Int;
|
||||||
switch (BuiltinID) {
|
switch (BuiltinID) {
|
||||||
default: return 0;
|
default: return 0;
|
||||||
case ARM::BI__builtin_neon_vaba_v:
|
|
||||||
case ARM::BI__builtin_neon_vabaq_v: {
|
|
||||||
Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
|
|
||||||
SmallVector<Value*, 2> Args;
|
|
||||||
Args.push_back(Ops[1]);
|
|
||||||
Args.push_back(Ops[2]);
|
|
||||||
Int = usgn ? Intrinsic::arm_neon_vabdu : Intrinsic::arm_neon_vabds;
|
|
||||||
Ops[1] = EmitNeonCall(CGM.getIntrinsic(Int, &Ty, 1), Args, "vaba");
|
|
||||||
return Builder.CreateAdd(Ops[0], Ops[1], "vaba");
|
|
||||||
}
|
|
||||||
case ARM::BI__builtin_neon_vabal_v: {
|
case ARM::BI__builtin_neon_vabal_v: {
|
||||||
Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
|
Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
|
||||||
SmallVector<Value*, 2> Args;
|
SmallVector<Value*, 2> Args;
|
||||||
|
|
Loading…
Reference in New Issue