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  */