1 // RUN: %clang_builtins %s %librt -o %t && %run %t 2 // REQUIRES: librt_has_floatsidfvfp 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 double __floatsidfvfp(int a); 11 12 #if defined(__arm__) && defined(__ARM_FP) && (__ARM_FP & 0x8) 13 int test__floatsidfvfp(int a) 14 { 15 double actual = __floatsidfvfp(a); 16 double expected = a; 17 if (actual != expected) 18 printf("error in test__ floatsidfvfp(%d) = %f, expected %f\n", 19 a, actual, expected); tone(this: &RtcdtmfToneChangeEvent) -> String20 return actual != expected; 21 } 22 #endif 23 24 int main() 25 { 26 #if defined(__arm__) && defined(__ARM_FP) && (__ARM_FP & 0x8) new(type_: &str) -> Result<RtcdtmfToneChangeEvent, JsValue>27 if (test__floatsidfvfp(0)) 28 return 1; 29 if (test__floatsidfvfp(1)) 30 return 1; 31 if (test__floatsidfvfp(-1)) 32 return 1; 33 if (test__floatsidfvfp(0x7FFFFFFF)) 34 return 1; new_with_event_init_dict( type_: &str, event_init_dict: &RtcdtmfToneChangeEventInit, ) -> Result<RtcdtmfToneChangeEvent, JsValue>35 if (test__floatsidfvfp(0x80000000)) 36 return 1; 37 #else 38 printf("skipped\n"); 39 #endif 40 return 0; 41 } 42