1 /* 2 * GXemul floating point tests. 3 * 4 * This file is in the Public Domain. 5 */ 6 7 // Regenerate fpconst.h like this: 8 // grep void\) fpconst.c | while read a; do echo $a";"; done > fpconst.h 9 10 #include "fpconst.h" 11 12 f_0_0(void)13float f_0_0(void) 14 { 15 return 0.0; 16 } 17 d_0_0(void)18double d_0_0(void) 19 { 20 return 0.0; 21 } 22 23 f_m0_0(void)24float f_m0_0(void) 25 { 26 return -0.0; 27 } 28 d_m0_0(void)29double d_m0_0(void) 30 { 31 return -0.0; 32 } 33 34 f_0_17(void)35float f_0_17(void) 36 { 37 return 0.17; 38 } 39 d_0_17(void)40double d_0_17(void) 41 { 42 return 0.17; 43 } 44 45 f_m0_17(void)46float f_m0_17(void) 47 { 48 return -0.17; 49 } 50 d_m0_17(void)51double d_m0_17(void) 52 { 53 return -0.17; 54 } 55 56 f_1_0(void)57float f_1_0(void) 58 { 59 return 1.0; 60 } 61 d_1_0(void)62double d_1_0(void) 63 { 64 return 1.0; 65 } 66 67 f_m1_0(void)68float f_m1_0(void) 69 { 70 return -1.0; 71 } 72 d_m1_0(void)73double d_m1_0(void) 74 { 75 return -1.0; 76 } 77 78 f_1_7(void)79float f_1_7(void) 80 { 81 return 1.7; 82 } 83 d_1_7(void)84double d_1_7(void) 85 { 86 return 1.7; 87 } 88 89 f_m1_7(void)90float f_m1_7(void) 91 { 92 return -1.7; 93 } 94 d_m1_7(void)95double d_m1_7(void) 96 { 97 return -1.7; 98 } 99 100 f_42(void)101float f_42(void) 102 { 103 return 42; 104 } 105 d_42(void)106double d_42(void) 107 { 108 return 42; 109 } 110 111 f_m42(void)112float f_m42(void) 113 { 114 return -42; 115 } 116 d_m42(void)117double d_m42(void) 118 { 119 return -42; 120 } 121 122 f_nan(void)123float f_nan(void) 124 { 125 unsigned int v = 0x7fffffff; 126 void *p = &v; 127 float *pf = (float*) p; 128 return *pf; 129 } 130 d_nan(void)131double d_nan(void) 132 { 133 unsigned long long v = 0x7fffffffffffffffULL; 134 void *p = &v; 135 double *pd = (double*) p; 136 return *pd; 137 } 138 139 f_nan_x(void)140float f_nan_x(void) 141 { 142 unsigned int v = 0x7fc01234; 143 void *p = &v; 144 float *pf = (float*) p; 145 return *pf; 146 } 147 d_nan_x(void)148double d_nan_x(void) 149 { 150 unsigned long long v = 0x7ff8000000001234ULL; 151 void *p = &v; 152 double *pd = (double*) p; 153 return *pd; 154 } 155 156 f_inf(void)157float f_inf(void) 158 { 159 unsigned int v = 0x7f800000; 160 void *p = &v; 161 float *pf = (float*) p; 162 return *pf; 163 } 164 d_inf(void)165double d_inf(void) 166 { 167 unsigned long long v = 0x7ff0000000000000ULL; 168 void *p = &v; 169 double *pd = (double*) p; 170 return *pd; 171 } 172 173 f_m_inf(void)174float f_m_inf(void) 175 { 176 unsigned int v = 0xff800000; 177 void *p = &v; 178 float *pf = (float*) p; 179 return *pf; 180 } 181 d_m_inf(void)182double d_m_inf(void) 183 { 184 unsigned long long v = 0xfff0000000000000ULL; 185 void *p = &v; 186 double *pd = (double*) p; 187 return *pd; 188 } 189 190