diff options
Diffstat (limited to 'validation/optim/cast-kinds.c')
| -rw-r--r-- | validation/optim/cast-kinds.c | 397 |
1 files changed, 397 insertions, 0 deletions
diff --git a/validation/optim/cast-kinds.c b/validation/optim/cast-kinds.c new file mode 100644 index 00000000..b144dc7e --- /dev/null +++ b/validation/optim/cast-kinds.c @@ -0,0 +1,397 @@ +typedef unsigned int uint; +typedef unsigned long ulong; + +static int uint_2_int(uint a) { return (int)a; } +static int long_2_int(long a) { return (int)a; } +static int ulong_2_int(ulong a) { return (int)a; } +static int vptr_2_int(void *a) { return (int)a; } +static int iptr_2_int(int *a) { return (int)a; } +static int float_2_int(float a) { return (int)a; } +static int double_2_int(double a) { return (int)a; } +static uint int_2_uint(int a) { return (uint)a; } +static uint long_2_uint(long a) { return (uint)a; } +static uint ulong_2_uint(ulong a) { return (uint)a; } +static uint vptr_2_uint(void *a) { return (uint)a; } +static uint iptr_2_uint(int *a) { return (uint)a; } +static uint float_2_uint(float a) { return (uint)a; } +static uint double_2_uint(double a) { return (uint)a; } +static long int_2_long(int a) { return (long)a; } +static long uint_2_long(uint a) { return (long)a; } +static long ulong_2_long(ulong a) { return (long)a; } +static long vptr_2_long(void *a) { return (long)a; } +static long iptr_2_long(int *a) { return (long)a; } +static long float_2_long(float a) { return (long)a; } +static long double_2_long(double a) { return (long)a; } +static ulong int_2_ulong(int a) { return (ulong)a; } +static ulong uint_2_ulong(uint a) { return (ulong)a; } +static ulong long_2_ulong(long a) { return (ulong)a; } +static ulong vptr_2_ulong(void *a) { return (ulong)a; } +static ulong iptr_2_ulong(int *a) { return (ulong)a; } +static ulong float_2_ulong(float a) { return (ulong)a; } +static ulong double_2_ulong(double a) { return (ulong)a; } +static void * int_2_vptr(int a) { return (void *)a; } +static void * uint_2_vptr(uint a) { return (void *)a; } +static void * long_2_vptr(long a) { return (void *)a; } +static void * ulong_2_vptr(ulong a) { return (void *)a; } +static void * iptr_2_vptr(int *a) { return (void *)a; } +static int * int_2_iptr(int a) { return (int *)a; } +static int * uint_2_iptr(uint a) { return (int *)a; } +static int * long_2_iptr(long a) { return (int *)a; } +static int * ulong_2_iptr(ulong a) { return (int *)a; } +static int * vptr_2_iptr(void *a) { return (int *)a; } +static float int_2_float(int a) { return (float)a; } +static float uint_2_float(uint a) { return (float)a; } +static float long_2_float(long a) { return (float)a; } +static float ulong_2_float(ulong a) { return (float)a; } +static float double_2_float(double a) { return (float)a; } +static double int_2_double(int a) { return (double)a; } +static double uint_2_double(uint a) { return (double)a; } +static double long_2_double(long a) { return (double)a; } +static double ulong_2_double(ulong a) { return (double)a; } +static double float_2_double(float a) { return (double)a; } + +static float float_2_float(float a) { return a; } +static double double_2_double(double a) { return a; } + +/* + * check-name: cast-kinds + * check-command: test-linearize -Wno-int-to-pointer-cast -Wno-pointer-to-int-cast -m64 $file + * + * check-output-start +uint_2_int: +.L0: + <entry-point> + ret.32 %arg1 + + +long_2_int: +.L2: + <entry-point> + trunc.32 %r4 <- (64) %arg1 + ret.32 %r4 + + +ulong_2_int: +.L4: + <entry-point> + trunc.32 %r7 <- (64) %arg1 + ret.32 %r7 + + +vptr_2_int: +.L6: + <entry-point> + trunc.32 %r10 <- (64) %arg1 + ret.32 %r10 + + +iptr_2_int: +.L8: + <entry-point> + trunc.32 %r14 <- (64) %arg1 + ret.32 %r14 + + +float_2_int: +.L10: + <entry-point> + fcvts.32 %r17 <- (32) %arg1 + ret.32 %r17 + + +double_2_int: +.L12: + <entry-point> + fcvts.32 %r20 <- (64) %arg1 + ret.32 %r20 + + +int_2_uint: +.L14: + <entry-point> + ret.32 %arg1 + + +long_2_uint: +.L16: + <entry-point> + trunc.32 %r25 <- (64) %arg1 + ret.32 %r25 + + +ulong_2_uint: +.L18: + <entry-point> + trunc.32 %r28 <- (64) %arg1 + ret.32 %r28 + + +vptr_2_uint: +.L20: + <entry-point> + trunc.32 %r31 <- (64) %arg1 + ret.32 %r31 + + +iptr_2_uint: +.L22: + <entry-point> + trunc.32 %r35 <- (64) %arg1 + ret.32 %r35 + + +float_2_uint: +.L24: + <entry-point> + fcvtu.32 %r38 <- (32) %arg1 + ret.32 %r38 + + +double_2_uint: +.L26: + <entry-point> + fcvtu.32 %r41 <- (64) %arg1 + ret.32 %r41 + + +int_2_long: +.L28: + <entry-point> + sext.64 %r44 <- (32) %arg1 + ret.64 %r44 + + +uint_2_long: +.L30: + <entry-point> + zext.64 %r47 <- (32) %arg1 + ret.64 %r47 + + +ulong_2_long: +.L32: + <entry-point> + ret.64 %arg1 + + +vptr_2_long: +.L34: + <entry-point> + ret.64 %arg1 + + +iptr_2_long: +.L36: + <entry-point> + ret.64 %arg1 + + +float_2_long: +.L38: + <entry-point> + fcvts.64 %r57 <- (32) %arg1 + ret.64 %r57 + + +double_2_long: +.L40: + <entry-point> + fcvts.64 %r60 <- (64) %arg1 + ret.64 %r60 + + +int_2_ulong: +.L42: + <entry-point> + sext.64 %r63 <- (32) %arg1 + ret.64 %r63 + + +uint_2_ulong: +.L44: + <entry-point> + zext.64 %r66 <- (32) %arg1 + ret.64 %r66 + + +long_2_ulong: +.L46: + <entry-point> + ret.64 %arg1 + + +vptr_2_ulong: +.L48: + <entry-point> + ret.64 %arg1 + + +iptr_2_ulong: +.L50: + <entry-point> + ret.64 %arg1 + + +float_2_ulong: +.L52: + <entry-point> + fcvtu.64 %r76 <- (32) %arg1 + ret.64 %r76 + + +double_2_ulong: +.L54: + <entry-point> + fcvtu.64 %r79 <- (64) %arg1 + ret.64 %r79 + + +int_2_vptr: +.L56: + <entry-point> + sext.64 %r82 <- (32) %arg1 + ret.64 %r82 + + +uint_2_vptr: +.L58: + <entry-point> + zext.64 %r85 <- (32) %arg1 + ret.64 %r85 + + +long_2_vptr: +.L60: + <entry-point> + ret.64 %arg1 + + +ulong_2_vptr: +.L62: + <entry-point> + ret.64 %arg1 + + +iptr_2_vptr: +.L64: + <entry-point> + ret.64 %arg1 + + +int_2_iptr: +.L66: + <entry-point> + sext.64 %r94 <- (32) %arg1 + ret.64 %r94 + + +uint_2_iptr: +.L68: + <entry-point> + zext.64 %r98 <- (32) %arg1 + ret.64 %r98 + + +long_2_iptr: +.L70: + <entry-point> + ret.64 %arg1 + + +ulong_2_iptr: +.L72: + <entry-point> + ret.64 %arg1 + + +vptr_2_iptr: +.L74: + <entry-point> + ptrcast.64 %r108 <- (64) %arg1 + ret.64 %r108 + + +int_2_float: +.L76: + <entry-point> + scvtf.32 %r111 <- (32) %arg1 + ret.32 %r111 + + +uint_2_float: +.L78: + <entry-point> + ucvtf.32 %r114 <- (32) %arg1 + ret.32 %r114 + + +long_2_float: +.L80: + <entry-point> + scvtf.32 %r117 <- (64) %arg1 + ret.32 %r117 + + +ulong_2_float: +.L82: + <entry-point> + ucvtf.32 %r120 <- (64) %arg1 + ret.32 %r120 + + +double_2_float: +.L84: + <entry-point> + fcvtf.32 %r123 <- (64) %arg1 + ret.32 %r123 + + +int_2_double: +.L86: + <entry-point> + scvtf.64 %r126 <- (32) %arg1 + ret.64 %r126 + + +uint_2_double: +.L88: + <entry-point> + ucvtf.64 %r129 <- (32) %arg1 + ret.64 %r129 + + +long_2_double: +.L90: + <entry-point> + scvtf.64 %r132 <- (64) %arg1 + ret.64 %r132 + + +ulong_2_double: +.L92: + <entry-point> + ucvtf.64 %r135 <- (64) %arg1 + ret.64 %r135 + + +float_2_double: +.L94: + <entry-point> + fcvtf.64 %r138 <- (32) %arg1 + ret.64 %r138 + + +float_2_float: +.L96: + <entry-point> + ret.32 %arg1 + + +double_2_double: +.L98: + <entry-point> + ret.64 %arg1 + + + * check-output-end + */ |
