1 typedef unsigned int uint; 2 typedef unsigned long ulong; 3 4 static int uint_2_int(uint a) { return (int)a; } 5 static int long_2_int(long a) { return (int)a; } 6 static int ulong_2_int(ulong a) { return (int)a; } 7 static int vptr_2_int(void *a) { return (int)a; } 8 static int iptr_2_int(int *a) { return (int)a; } 9 static int float_2_int(float a) { return (int)a; } 10 static int double_2_int(double a) { return (int)a; } 11 static uint int_2_uint(int a) { return (uint)a; } 12 static uint long_2_uint(long a) { return (uint)a; } 13 static uint ulong_2_uint(ulong a) { return (uint)a; } 14 static uint vptr_2_uint(void *a) { return (uint)a; } 15 static uint iptr_2_uint(int *a) { return (uint)a; } 16 static uint float_2_uint(float a) { return (uint)a; } 17 static uint double_2_uint(double a) { return (uint)a; } 18 static long int_2_long(int a) { return (long)a; } 19 static long uint_2_long(uint a) { return (long)a; } 20 static long ulong_2_long(ulong a) { return (long)a; } 21 static long vptr_2_long(void *a) { return (long)a; } 22 static long iptr_2_long(int *a) { return (long)a; } 23 static long float_2_long(float a) { return (long)a; } 24 static long double_2_long(double a) { return (long)a; } 25 static ulong int_2_ulong(int a) { return (ulong)a; } 26 static ulong uint_2_ulong(uint a) { return (ulong)a; } 27 static ulong long_2_ulong(long a) { return (ulong)a; } 28 static ulong vptr_2_ulong(void *a) { return (ulong)a; } 29 static ulong iptr_2_ulong(int *a) { return (ulong)a; } 30 static ulong float_2_ulong(float a) { return (ulong)a; } 31 static ulong double_2_ulong(double a) { return (ulong)a; } 32 static void * int_2_vptr(int a) { return (void *)a; } 33 static void * uint_2_vptr(uint a) { return (void *)a; } 34 static void * long_2_vptr(long a) { return (void *)a; } 35 static void * ulong_2_vptr(ulong a) { return (void *)a; } 36 static void * iptr_2_vptr(int *a) { return (void *)a; } 37 static int * int_2_iptr(int a) { return (int *)a; } 38 static int * uint_2_iptr(uint a) { return (int *)a; } 39 static int * long_2_iptr(long a) { return (int *)a; } 40 static int * ulong_2_iptr(ulong a) { return (int *)a; } 41 static int * vptr_2_iptr(void *a) { return (int *)a; } 42 static float int_2_float(int a) { return (float)a; } 43 static float uint_2_float(uint a) { return (float)a; } 44 static float long_2_float(long a) { return (float)a; } 45 static float ulong_2_float(ulong a) { return (float)a; } 46 static float double_2_float(double a) { return (float)a; } 47 static double int_2_double(int a) { return (double)a; } 48 static double uint_2_double(uint a) { return (double)a; } 49 static double long_2_double(long a) { return (double)a; } 50 static double ulong_2_double(ulong a) { return (double)a; } 51 static double float_2_double(float a) { return (double)a; } 52 53 /* 54 * check-name: cast-kinds 55 * check-command: test-linearize -m64 $file 56 * 57 * check-output-start 58 uint_2_int: 59 .L0: 60 <entry-point> 61 ret.32 %arg1 62 63 64 long_2_int: 65 .L2: 66 <entry-point> 67 scast.32 %r5 <- (64) %arg1 68 ret.32 %r5 69 70 71 ulong_2_int: 72 .L4: 73 <entry-point> 74 cast.32 %r8 <- (64) %arg1 75 ret.32 %r8 76 77 78 vptr_2_int: 79 .L6: 80 <entry-point> 81 cast.32 %r11 <- (64) %arg1 82 ret.32 %r11 83 84 85 iptr_2_int: 86 .L8: 87 <entry-point> 88 cast.32 %r14 <- (64) %arg1 89 ret.32 %r14 90 91 92 float_2_int: 93 .L10: 94 <entry-point> 95 ret.32 %arg1 96 97 98 double_2_int: 99 .L12: 100 <entry-point> 101 cast.32 %r20 <- (64) %arg1 102 ret.32 %r20 103 104 105 int_2_uint: 106 .L14: 107 <entry-point> 108 ret.32 %arg1 109 110 111 long_2_uint: 112 .L16: 113 <entry-point> 114 scast.32 %r26 <- (64) %arg1 115 ret.32 %r26 116 117 118 ulong_2_uint: 119 .L18: 120 <entry-point> 121 cast.32 %r29 <- (64) %arg1 122 ret.32 %r29 123 124 125 vptr_2_uint: 126 .L20: 127 <entry-point> 128 cast.32 %r32 <- (64) %arg1 129 ret.32 %r32 130 131 132 iptr_2_uint: 133 .L22: 134 <entry-point> 135 cast.32 %r35 <- (64) %arg1 136 ret.32 %r35 137 138 139 float_2_uint: 140 .L24: 141 <entry-point> 142 ret.32 %arg1 143 144 145 double_2_uint: 146 .L26: 147 <entry-point> 148 cast.32 %r41 <- (64) %arg1 149 ret.32 %r41 150 151 152 int_2_long: 153 .L28: 154 <entry-point> 155 scast.64 %r44 <- (32) %arg1 156 ret.64 %r44 157 158 159 uint_2_long: 160 .L30: 161 <entry-point> 162 cast.64 %r47 <- (32) %arg1 163 ret.64 %r47 164 165 166 ulong_2_long: 167 .L32: 168 <entry-point> 169 ret.64 %arg1 170 171 172 vptr_2_long: 173 .L34: 174 <entry-point> 175 cast.64 %r53 <- (64) %arg1 176 ret.64 %r53 177 178 179 iptr_2_long: 180 .L36: 181 <entry-point> 182 cast.64 %r56 <- (64) %arg1 183 ret.64 %r56 184 185 186 float_2_long: 187 .L38: 188 <entry-point> 189 cast.64 %r59 <- (32) %arg1 190 ret.64 %r59 191 192 193 double_2_long: 194 .L40: 195 <entry-point> 196 ret.64 %arg1 197 198 199 int_2_ulong: 200 .L42: 201 <entry-point> 202 scast.64 %r65 <- (32) %arg1 203 ret.64 %r65 204 205 206 uint_2_ulong: 207 .L44: 208 <entry-point> 209 cast.64 %r68 <- (32) %arg1 210 ret.64 %r68 211 212 213 long_2_ulong: 214 .L46: 215 <entry-point> 216 ret.64 %arg1 217 218 219 vptr_2_ulong: 220 .L48: 221 <entry-point> 222 cast.64 %r74 <- (64) %arg1 223 ret.64 %r74 224 225 226 iptr_2_ulong: 227 .L50: 228 <entry-point> 229 cast.64 %r77 <- (64) %arg1 230 ret.64 %r77 231 232 233 float_2_ulong: 234 .L52: 235 <entry-point> 236 cast.64 %r80 <- (32) %arg1 237 ret.64 %r80 238 239 240 double_2_ulong: 241 .L54: 242 <entry-point> 243 ret.64 %arg1 244 245 246 int_2_vptr: 247 .L56: 248 <entry-point> 249 scast.64 %r86 <- (32) %arg1 250 ret.64 %r86 251 252 253 uint_2_vptr: 254 .L58: 255 <entry-point> 256 cast.64 %r89 <- (32) %arg1 257 ret.64 %r89 258 259 260 long_2_vptr: 261 .L60: 262 <entry-point> 263 scast.64 %r92 <- (64) %arg1 264 ret.64 %r92 265 266 267 ulong_2_vptr: 268 .L62: 269 <entry-point> 270 cast.64 %r95 <- (64) %arg1 271 ret.64 %r95 272 273 274 iptr_2_vptr: 275 .L64: 276 <entry-point> 277 cast.64 %r98 <- (64) %arg1 278 ret.64 %r98 279 280 281 int_2_iptr: 282 .L66: 283 <entry-point> 284 ptrcast.64 %r101 <- (32) %arg1 285 ret.64 %r101 286 287 288 uint_2_iptr: 289 .L68: 290 <entry-point> 291 ptrcast.64 %r104 <- (32) %arg1 292 ret.64 %r104 293 294 295 long_2_iptr: 296 .L70: 297 <entry-point> 298 ptrcast.64 %r107 <- (64) %arg1 299 ret.64 %r107 300 301 302 ulong_2_iptr: 303 .L72: 304 <entry-point> 305 ptrcast.64 %r110 <- (64) %arg1 306 ret.64 %r110 307 308 309 vptr_2_iptr: 310 .L74: 311 <entry-point> 312 ptrcast.64 %r113 <- (64) %arg1 313 ret.64 %r113 314 315 316 int_2_float: 317 .L76: 318 <entry-point> 319 fpcast.32 %r116 <- (32) %arg1 320 ret.32 %r116 321 322 323 uint_2_float: 324 .L78: 325 <entry-point> 326 fpcast.32 %r119 <- (32) %arg1 327 ret.32 %r119 328 329 330 long_2_float: 331 .L80: 332 <entry-point> 333 fpcast.32 %r122 <- (64) %arg1 334 ret.32 %r122 335 336 337 ulong_2_float: 338 .L82: 339 <entry-point> 340 fpcast.32 %r125 <- (64) %arg1 341 ret.32 %r125 342 343 344 double_2_float: 345 .L84: 346 <entry-point> 347 fpcast.32 %r128 <- (64) %arg1 348 ret.32 %r128 349 350 351 int_2_double: 352 .L86: 353 <entry-point> 354 fpcast.64 %r131 <- (32) %arg1 355 ret.64 %r131 356 357 358 uint_2_double: 359 .L88: 360 <entry-point> 361 fpcast.64 %r134 <- (32) %arg1 362 ret.64 %r134 363 364 365 long_2_double: 366 .L90: 367 <entry-point> 368 fpcast.64 %r137 <- (64) %arg1 369 ret.64 %r137 370 371 372 ulong_2_double: 373 .L92: 374 <entry-point> 375 fpcast.64 %r140 <- (64) %arg1 376 ret.64 %r140 377 378 379 float_2_double: 380 .L94: 381 <entry-point> 382 fpcast.64 %r143 <- (32) %arg1 383 ret.64 %r143 384 385 386 * check-output-end 387 */