1 // RUN: %clang_builtins %s %librt -o %t && %run %t 2 // REQUIRES: librt_has_negsf2vfp 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 float __negsf2vfp(float a); 11 12 #if defined(__arm__) && defined(__ARM_FP) && (__ARM_FP & 0x4) test__negsf2vfp(float a)13int test__negsf2vfp(float a) 14 { 15 float actual = __negsf2vfp(a); 16 float expected = -a; 17 if (actual != expected) 18 printf("error in test__negsf2vfp(%f) = %f, expected %f\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 & 0x4) 27 if (test__negsf2vfp(1.0)) 28 return 1; 29 if (test__negsf2vfp(HUGE_VALF)) 30 return 1; 31 if (test__negsf2vfp(0.0)) 32 return 1; 33 if (test__negsf2vfp(-1.0)) 34 return 1; 35 #else 36 printf("skipped\n"); 37 #endif 38 return 0; 39 } 40