From: Yi Kong Date: Sat, 12 Jul 2014 22:48:13 +0000 (+0000) Subject: Improve comments of ARM ACLE header file and tests X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d5b9b66abac8e9847dab64a9eb98a271f902d125;p=clang Improve comments of ARM ACLE header file and tests Include section number in ARM ACLE specification for easier navigation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212887 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Headers/arm_acle.h b/lib/Headers/arm_acle.h index d706745ad5..a7406fbf0a 100644 --- a/lib/Headers/arm_acle.h +++ b/lib/Headers/arm_acle.h @@ -34,8 +34,8 @@ extern "C" { #endif -/* Miscellaneous data-processing intrinsics */ - +/* 9 DATA-PROCESSING INTRINSICS */ +/* 9.2 Miscellaneous data-processing intrinsics */ static __inline__ uint32_t __attribute__((always_inline, nodebug)) __clz(uint32_t t) { return __builtin_clz(t); @@ -74,17 +74,20 @@ static __inline__ uint64_t __attribute__((always_inline, nodebug)) return __builtin_bswap64(t); } - /* - * Saturating intrinsics + * 9.4 Saturating intrinsics * * FIXME: Change guard to their corrosponding __ARM_FEATURE flag when Q flag * intrinsics are implemented and the flag is enabled. */ +/* 9.4.1 Width-specified saturation intrinsics */ #if __ARM_32BIT_STATE #define __ssat(x, y) __builtin_arm_ssat(x, y) #define __usat(x, y) __builtin_arm_usat(x, y) +#endif +/* 9.4.2 Saturating addition and subtraction intrinsics */ +#if __ARM_32BIT_STATE static __inline__ int32_t __attribute__((always_inline, nodebug)) __qadd(int32_t t, int32_t v) { return __builtin_arm_qadd(t, v); @@ -101,7 +104,7 @@ __qdbl(int32_t t) { } #endif -/* CRC32 intrinsics */ +/* 9.7 CRC32 intrinsics */ #if __ARM_FEATURE_CRC32 static __inline__ uint32_t __attribute__((always_inline, nodebug)) __crc32b(uint32_t a, uint8_t b) { diff --git a/test/CodeGen/arm_acle.c b/test/CodeGen/arm_acle.c index 88d58a40b1..a2f24d3fbf 100644 --- a/test/CodeGen/arm_acle.c +++ b/test/CodeGen/arm_acle.c @@ -3,7 +3,8 @@ #include -/* Miscellaneous data-processing intrinsics */ +/* 9 DATA-PROCESSING INTRINSICS */ +/* 9.2 Miscellaneous data-processing intrinsics */ // ARM-LABEL: test_rev // ARM: call i32 @llvm.bswap.i32(i32 %t) uint32_t test_rev(uint32_t t) { @@ -42,8 +43,10 @@ uint64_t test_clzll(uint64_t t) { return __clzll(t); } -/* Saturating intrinsics */ +/* 9.4 Saturating intrinsics */ #ifdef __ARM_32BIT_STATE + +/* 9.4.1 Width-specified saturation intrinsics */ // AArch32-LABEL: test_ssat // AArch32: call i32 @llvm.arm.ssat(i32 %t, i32 1) int32_t test_ssat(int32_t t) { @@ -55,6 +58,8 @@ int32_t test_ssat(int32_t t) { int32_t test_usat(int32_t t) { return __usat(t, 2); } + +/* 9.4.2 Saturating addition and subtraction intrinsics */ // AArch32-LABEL: test_qadd // AArch32: call i32 @llvm.arm.qadd(i32 %a, i32 %b) int32_t test_qadd(int32_t a, int32_t b) { @@ -77,7 +82,7 @@ int32_t test_qdbl() { } #endif -/* CRC32 intrinsics */ +/* 9.7 CRC32 intrinsics */ // ARM-LABEL: test_crc32b // AArch32: call i32 @llvm.arm.crc32b // AArch64: call i32 @llvm.aarch64.crc32b