]> granicus.if.org Git - clang/commitdiff
Implement vmull and vmull_n intrinsics without using clang builtins.
authorBob Wilson <bob.wilson@apple.com>
Tue, 7 Dec 2010 20:03:04 +0000 (20:03 +0000)
committerBob Wilson <bob.wilson@apple.com>
Tue, 7 Dec 2010 20:03:04 +0000 (20:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121174 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/arm_neon.td

index 27b703e08253e5ed1537e7154809858b6419e94c..3ddbdddf5151b380148890c6ca11e3787b39048c 100644 (file)
@@ -18,9 +18,11 @@ def OP_NONE  : Op;
 def OP_ADD   : Op;
 def OP_SUB   : Op;
 def OP_MUL   : Op;
+def OP_MULL  : Op;
 def OP_MLA   : Op;
 def OP_MLS   : Op;
 def OP_MUL_N : Op;
+def OP_MULL_N: Op;
 def OP_MLA_N : Op;
 def OP_MLS_N : Op;
 def OP_MUL_LN: Op;
@@ -122,7 +124,8 @@ def VQDMULH  : SInst<"vqdmulh", "ddd", "siQsQi">;
 def VQRDMULH : SInst<"vqrdmulh", "ddd", "siQsQi">;
 def VQDMLAL  : SInst<"vqdmlal", "wwdd", "si">;
 def VQDMLSL  : SInst<"vqdmlsl", "wwdd", "si">;
-def VMULL    : SInst<"vmull", "wdd", "csiUcUsUiPc">;
+def VMULL    : Inst<"vmull", "wdd", "csiUcUsUi", OP_MULL>;
+def VMULLP   : SInst<"vmull", "wdd", "Pc">;
 def VQDMULL  : SInst<"vqdmull", "wdd", "si">;
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -308,7 +311,7 @@ def VMLSL_LANE   : SInst<"vmlsl_lane", "wwddi", "siUsUi">;
 def VQDMLSL_LANE : SInst<"vqdmlsl_lane", "wwddi", "si">;
 def VMUL_N       : Inst<"vmul_n", "dds", "sifUsUiQsQiQfQUsQUi", OP_MUL_N>;
 def VMUL_LANE    : Inst<"vmul_lane", "dddi", "sifUsUiQsQiQfQUsQUi", OP_MUL_LN>;
-def VMULL_N      : SInst<"vmull_n", "wda", "siUsUi">;
+def VMULL_N      : Inst<"vmull_n", "wda", "siUsUi", OP_MULL_N>;
 def VMULL_LANE   : SInst<"vmull_lane", "wddi", "siUsUi">;
 def VQDMULL_N    : SInst<"vqdmull_n", "wda", "si">;
 def VQDMULL_LANE : SInst<"vqdmull_lane", "wddi", "si">;