summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/builtin_float.c
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/CodeGen/builtin_float.c')
-rw-r--r--clang/test/CodeGen/builtin_float.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/clang/test/CodeGen/builtin_float.c b/clang/test/CodeGen/builtin_float.c
index b97cf1be348..b257854278c 100644
--- a/clang/test/CodeGen/builtin_float.c
+++ b/clang/test/CodeGen/builtin_float.c
@@ -1,4 +1,5 @@
-// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s
+// RUN: %clang_cc1 -emit-llvm -triple x86_64-windows-pc -o - %s | FileCheck %s --check-prefixes=CHECK,FP16
+// RUN: %clang_cc1 -emit-llvm -triple ppc64-be -o - %s -DNO_FP16 | FileCheck %s --check-prefixes=CHECK,NOFP16
// test to ensure that these builtins don't do the variadic promotion of float->double.
void test_floats(float f1, float f2) {
@@ -43,6 +44,15 @@ void test_doubles(double d1, double f2) {
// CHECK-NEXT: zext i1
}
+void test_half(__fp16 *H, __fp16 *H2) {
+ (void)__builtin_isgreater(*H, *H2);
+ // CHECK: fcmp ogt float
+ // CHECK-NEXT: zext i1
+ (void)__builtin_isinf(*H);
+ // NOFP16: fcmp oeq float %{{.+}}, 0x7FF
+ // FP16: fcmp oeq half %{{.+}}, 0xH7C
+}
+
void test_mixed(double d1, float f2) {
(void)__builtin_isgreater(d1, f2);
// CHECK: fpext float {{.*}} to double
OpenPOWER on IntegriCloud