From 468acf9e29b8b9bcefd227d0a0e65356678b43cd Mon Sep 17 00:00:00 2001 From: Bob Wilson Date: Tue, 7 Dec 2010 20:03:04 +0000 Subject: [PATCH] Implement vmull and vmull_n intrinsics without using clang builtins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121174 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/arm_neon.td | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/include/clang/Basic/arm_neon.td b/include/clang/Basic/arm_neon.td index 27b703e082..3ddbdddf51 100644 --- a/include/clang/Basic/arm_neon.td +++ b/include/clang/Basic/arm_neon.td @@ -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">; -- 2.40.0