diff options
author | James Molloy <james.molloy@arm.com> | 2014-09-15 11:25:38 +0000 |
---|---|---|
committer | James Molloy <james.molloy@arm.com> | 2014-09-15 11:25:38 +0000 |
commit | 04fdc2f8ec64756d37f342a0e614c548b8b99b8c (patch) | |
tree | b0512902cef59895f5ff629b5b7fcd5db8b0ae4c /include/clang/Basic/arm_neon.td | |
parent | 28377e0dad8041ae83c50513206d5e4b5c4c2755 (diff) |
[ARM] Add ACLE predefines: maxmin, rounding and h/w integer division
Patch by Assad Hashmi!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217760 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/arm_neon.td')
-rw-r--r-- | include/clang/Basic/arm_neon.td | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/include/clang/Basic/arm_neon.td b/include/clang/Basic/arm_neon.td index 8208a2c962..ce3b6094b1 100644 --- a/include/clang/Basic/arm_neon.td +++ b/include/clang/Basic/arm_neon.td @@ -1213,7 +1213,7 @@ def FCVTAU_S64 : SInst<"vcvta_u64", "ud", "dQd">; //////////////////////////////////////////////////////////////////////////////// // Round to Integral -let ArchGuard = "__ARM_ARCH >= 8" in { +let ArchGuard = "__ARM_ARCH >= 8 && defined(__ARM_FEATURE_DIRECTED_ROUNDING)" in { def FRINTN_S32 : SInst<"vrndn", "dd", "fQf">; def FRINTA_S32 : SInst<"vrnda", "dd", "fQf">; def FRINTP_S32 : SInst<"vrndp", "dd", "fQf">; @@ -1222,7 +1222,7 @@ def FRINTX_S32 : SInst<"vrndx", "dd", "fQf">; def FRINTZ_S32 : SInst<"vrnd", "dd", "fQf">; } -let ArchGuard = "__ARM_ARCH >= 8 && defined(__aarch64__)" in { +let ArchGuard = "__ARM_ARCH >= 8 && defined(__aarch64__) && defined(__ARM_FEATURE_DIRECTED_ROUNDING)" in { def FRINTN_S64 : SInst<"vrndn", "dd", "dQd">; def FRINTA_S64 : SInst<"vrnda", "dd", "dQd">; def FRINTP_S64 : SInst<"vrndp", "dd", "dQd">; @@ -1235,12 +1235,12 @@ def FRINTI_S64 : SInst<"vrndi", "dd", "fdQfQd">; //////////////////////////////////////////////////////////////////////////////// // MaxNum/MinNum Floating Point -let ArchGuard = "__ARM_ARCH >= 8" in { +let ArchGuard = "__ARM_ARCH >= 8 && defined(__ARM_FEATURE_NUMERIC_MAXMIN)" in { def FMAXNM_S32 : SInst<"vmaxnm", "ddd", "fQf">; def FMINNM_S32 : SInst<"vminnm", "ddd", "fQf">; } -let ArchGuard = "__ARM_ARCH >= 8 && defined(__aarch64__)" in { +let ArchGuard = "__ARM_ARCH >= 8 && defined(__aarch64__) && defined(__ARM_FEATURE_NUMERIC_MAXMIN)" in { def FMAXNM_S64 : SInst<"vmaxnm", "ddd", "dQd">; def FMINNM_S64 : SInst<"vminnm", "ddd", "dQd">; } |