diff options
Diffstat (limited to 'clang/test/CodeGen/builtin_float.c')
-rw-r--r-- | clang/test/CodeGen/builtin_float.c | 12 |
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 |