summaryrefslogtreecommitdiffstats
path: root/clang/test/Preprocessor/arm-target-features.c
diff options
context:
space:
mode:
authorOliver Stannard <oliver.stannard@arm.com>2015-09-03 09:34:53 +0000
committerOliver Stannard <oliver.stannard@arm.com>2015-09-03 09:34:53 +0000
commitee0286201cb2d5a1462d521d3dc83261209e76b4 (patch)
treede2e56664702efcc8762e7ef88e8b73b026645c3 /clang/test/Preprocessor/arm-target-features.c
parent6dfe16414fc3c73a53c1932f8f69111c240f6d9c (diff)
downloadbcm5719-llvm-ee0286201cb2d5a1462d521d3dc83261209e76b4.tar.gz
bcm5719-llvm-ee0286201cb2d5a1462d521d3dc83261209e76b4.zip
[ARM] Allow passing/returning of __fp16 arguments
The ACLE (ARM C Language Extensions) 2.0 allows the __fp16 type to be used as a functon argument or return type (ACLE 1.1 did not). The current public release of the AAPCS (2.09) states that __fp16 values should be converted to single-precision before being passed or returned, but AAPCS 2.10 (to be released shortly) changes this, so that they are passed in the least-significant 16 bits of either a GPR (for base AAPCS) or a single-precision register (for AAPCS-VFP). This does not change how arguments are passed if they get passed on the stack. This patch brings clang up to compliance with the latest versions of both of these specs. We can now set the __ARM_FP16_ARGS ACLE predefine, and we have always been able to set the __ARM_FP16_FORMAT_IEEE predefine (we do not support the alternative format). llvm-svn: 246755
Diffstat (limited to 'clang/test/Preprocessor/arm-target-features.c')
-rw-r--r--clang/test/Preprocessor/arm-target-features.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/test/Preprocessor/arm-target-features.c b/clang/test/Preprocessor/arm-target-features.c
index c4b887f4552..0cc909444fc 100644
--- a/clang/test/Preprocessor/arm-target-features.c
+++ b/clang/test/Preprocessor/arm-target-features.c
@@ -5,6 +5,8 @@
// CHECK: __ARM_FEATURE_CRC32 1
// CHECK: __ARM_FEATURE_DIRECTED_ROUNDING 1
// CHECK: __ARM_FEATURE_NUMERIC_MAXMIN 1
+// CHECK: __ARM_FP16_ARGS 1
+// CHECK: __ARM_FP16_FORMAT_IEEE 1
// RUN: %clang -target armv7a-none-linux-gnu -x c -E -dM %s -o - | FileCheck --check-prefix=CHECK-V7 %s
// CHECK-V7: __ARMEL__ 1
OpenPOWER on IntegriCloud