From: Renato Golin Date: Thu, 3 Jul 2014 10:14:52 +0000 (+0000) Subject: Add the __qdbl intrinsic to the arm_acle.h header X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a9f8b0771cf47372908c2df7d10df057525c2ce7;p=clang Add the __qdbl intrinsic to the arm_acle.h header Patch by: Moritz Roth git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212264 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Headers/arm_acle.h b/lib/Headers/arm_acle.h index ed48d80a59..ef8de37887 100644 --- a/lib/Headers/arm_acle.h +++ b/lib/Headers/arm_acle.h @@ -90,6 +90,11 @@ static __inline__ int32_t __attribute__((always_inline, nodebug)) __qsub(int32_t t, int32_t v) { return __builtin_arm_qsub(t, v); } + +static __inline__ int32_t __attribute__((always_inline, nodebug)) +__qdbl(int32_t t) { + return __builtin_arm_qadd(t, t); +} #endif /* CRC32 intrinsics */ diff --git a/test/CodeGen/arm_acle.c b/test/CodeGen/arm_acle.c index f766a8b975..88d58a40b1 100644 --- a/test/CodeGen/arm_acle.c +++ b/test/CodeGen/arm_acle.c @@ -66,6 +66,15 @@ int32_t test_qadd(int32_t a, int32_t b) { int32_t test_qsub(int32_t a, int32_t b) { return __qsub(a, b); } + +extern int32_t f(); +// AArch32-LABEL: test_qdbl +// AArch32: [[VAR:%[a-z0-9]+]] = {{.*}} call {{.*}} @f +// AArch32-NOT: call {{.*}} @f +// AArch32: call i32 @llvm.arm.qadd(i32 [[VAR]], i32 [[VAR]]) +int32_t test_qdbl() { + return __qdbl(f()); +} #endif /* CRC32 intrinsics */