From 166016cb09d815b919bbe7afb6597250eee8ff23 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20W=C3=BCrdig?= Date: Fri, 18 Aug 2006 14:07:53 +0000 Subject: [PATCH] and another conv test --- ir/be/test/conv.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 ir/be/test/conv.c diff --git a/ir/be/test/conv.c b/ir/be/test/conv.c new file mode 100644 index 000000000..3ac08fe46 --- /dev/null +++ b/ir/be/test/conv.c @@ -0,0 +1,72 @@ +int convs16_s32( short t) __attribute__((noinline)); +short convs32_s16( int t) __attribute__((noinline)); + +int convu16_s32( unsigned short t) __attribute__((noinline)); +short convu32_s16( unsigned int t) __attribute__((noinline)); + +unsigned int convs16_u32( short t) __attribute__((noinline)); +unsigned short convs32_u16( int t) __attribute__((noinline)); + +unsigned int convu16_u32( unsigned short t) __attribute__((noinline)); +unsigned short convu32_u16( unsigned int t) __attribute__((noinline)); + +int convs16_s32( short t) +{ + return t; +} + +short convs32_s16( int t) +{ + return t; +} + +int convu16_s32( unsigned short t) +{ + return t; +} + +short convu32_s16( unsigned int t) +{ + return t; +} + +unsigned int convs16_u32( short t) +{ + return t; +} + +unsigned short convs32_u16( int t) +{ + return t; +} + +unsigned int convu16_u32( unsigned short t) +{ + return t; +} + +unsigned short convu32_u16( unsigned int t) +{ + return t; +} + +int main() +{ + short s = 0x8000; + int i = 0xF0008000; + int a; + + printf(" %d -> %d = %d\n", s, i, convs16_s32( s)); + printf(" %d -> %d = %d\n", i, s, convs32_s16( i)); + + printf(" %d -> %d = %d\n", i, s, convu32_s16( i)); + printf(" %d -> %d = %d\n", i, s, convu32_s16( i)); + + printf(" %d -> %d = %d\n", i, s, convs32_u16( i)); + printf(" %d -> %d = %d\n", i, s, convs32_u16( i)); + + printf(" %d -> %d = %d\n", i, s, convu32_u16( i)); + printf(" %d -> %d = %d\n", i, s, convu32_u16( i)); + + return 0; +} -- 2.20.1