1 // RUN: %clang_builtins %s %librt -o %t && %run %t 2 // REQUIRES: librt_has_fixunsdfsivfp 3 4 #include "int_lib.h" 5 #include <stdio.h> 6 #include <stdlib.h> 7 #include <math.h> 8 9 10 extern COMPILER_RT_ABI unsigned int __fixunsdfsivfp(double a); 11 12 #if defined(__arm__) && defined(__ARM_FP) && (__ARM_FP & 0x8) test__fixunsdfsivfp(double a)13int test__fixunsdfsivfp(double a) 14 { 15 unsigned int actual = __fixunsdfsivfp(a); 16 unsigned int expected = a; 17 if (actual != expected) 18 printf("error in test__fixunsdfsivfp(%f) = %u, expected %u\n", 19 a, actual, expected); 20 return actual != expected; 21 } 22 #endif 23 main()24int main() 25 { 26 #if defined(__arm__) && defined(__ARM_FP) && (__ARM_FP & 0x8) 27 if (test__fixunsdfsivfp(0.0)) 28 return 1; 29 if (test__fixunsdfsivfp(1.0)) 30 return 1; 31 if (test__fixunsdfsivfp(-1.0)) 32 return 1; 33 if (test__fixunsdfsivfp(4294967295.0)) 34 return 1; 35 if (test__fixunsdfsivfp(65536.0)) 36 return 1; 37 #else 38 printf("skipped\n"); 39 #endif 40 return 0; 41 } 42