From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- gcc/testsuite/gcc.dg/fixed-point/allop-const.c | 147 +++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/fixed-point/allop-const.c (limited to 'gcc/testsuite/gcc.dg/fixed-point/allop-const.c') diff --git a/gcc/testsuite/gcc.dg/fixed-point/allop-const.c b/gcc/testsuite/gcc.dg/fixed-point/allop-const.c new file mode 100644 index 000000000..1cf859861 --- /dev/null +++ b/gcc/testsuite/gcc.dg/fixed-point/allop-const.c @@ -0,0 +1,147 @@ +/* { dg-do compile } */ +/* { dg-options "-std=gnu99" } */ + +/* N1169 6.5.7 - Bitwise shift operands. + C99 6.5.3 Unary operators. + C99 6.5.5 Multiplicative operators. + C99 6.5.6 Additive operators. + C99 6.5.7 Bitwise shift operators. + C99 6.5.8 Relational operators. + C99 6.5.9 Equality operators. + C99 6.5.16 Assignment operators. + + Check if all operations on constants are ok. */ + +#define ALLOPCONST(TYPE,NAME,POSTFIX) \ + TYPE NAME ## plus = +0.1 ## POSTFIX; \ + unsigned TYPE NAME ## u_plus = +0.1u ## POSTFIX; \ + _Sat TYPE NAME ## sat_plus = +(_Sat TYPE)0.1 ## POSTFIX; \ + _Sat unsigned TYPE NAME ## sat_u_plus = +(_Sat unsigned TYPE)0.1u ## POSTFIX; \ + TYPE NAME ## neg = -0.1 ## POSTFIX; \ + _Sat TYPE NAME ## sat_neg = -(_Sat TYPE)0.1 ## POSTFIX; \ + _Sat unsigned TYPE NAME ## sat_u_neg = -(_Sat unsigned TYPE)0.1u ## POSTFIX; \ + int NAME ## logneg1 = !0.1 ## POSTFIX; \ + int NAME ## logneg1u = !0.1u ## POSTFIX; \ + int NAME ## logneg2 = !0.0 ## POSTFIX; \ + int NAME ## logneg2u = !0.0u ## POSTFIX; \ + TYPE NAME ## add = 0.1 ## POSTFIX + 0.2 ## POSTFIX; \ + unsigned TYPE NAME ## u_add = 0.1u ## POSTFIX + 0.2u ## POSTFIX; \ + _Sat TYPE NAME ## sat_add = (_Sat TYPE)0.8 ## POSTFIX + 0.3 ## POSTFIX; \ + _Sat unsigned TYPE NAME ## sat_u_add = (_Sat unsigned TYPE)0.8u ## POSTFIX + 0.3u ## POSTFIX; \ + TYPE NAME ## sub = 0.1 ## POSTFIX - 0.2 ## POSTFIX; \ + unsigned TYPE NAME ## u_sub = 0.2u ## POSTFIX - 0.1u ## POSTFIX; \ + _Sat TYPE NAME ## sat_sub = (_Sat TYPE)0.1 ## POSTFIX - 0.2 ## POSTFIX; \ + _Sat unsigned TYPE NAME ## sat_u_sub = (_Sat unsigned TYPE)0.1u ## POSTFIX - 0.2u ## POSTFIX; \ + TYPE NAME ## mul = 0.1 ## POSTFIX * 0.2 ## POSTFIX; \ + unsigned TYPE NAME ## u_mul = 0.1u ## POSTFIX * 0.2u ## POSTFIX; \ + _Sat TYPE NAME ## sat_mul = (_Sat TYPE)0.1 ## POSTFIX * 0.2 ## POSTFIX; \ + _Sat unsigned TYPE NAME ## sat_u_mul = (_Sat unsigned TYPE)0.1u ## POSTFIX * 0.2u ## POSTFIX; \ + TYPE NAME ## div = 0.1 ## POSTFIX / 0.3 ## POSTFIX; \ + unsigned TYPE NAME ## u_div = 0.1u ## POSTFIX / 0.3u ## POSTFIX; \ + _Sat TYPE NAME ## sat_div = (_Sat TYPE)0.3 ## POSTFIX / 0.1 ## POSTFIX; \ + _Sat unsigned TYPE NAME ## sat_u_div = (_Sat unsigned TYPE)0.3u ## POSTFIX / 0.1u ## POSTFIX; \ + TYPE NAME ## shl = 0.1 ## POSTFIX << 3; \ + unsigned TYPE NAME ## u_shl = 0.1u ## POSTFIX << 3; \ + _Sat TYPE NAME ## sat_shl = (_Sat TYPE)0.8 ## POSTFIX << 3; \ + _Sat unsigned TYPE NAME ## sat_u_shl = (_Sat unsigned TYPE)0.8u ## POSTFIX << 3; \ + TYPE NAME ## shr = 0.1 ## POSTFIX >> 5; \ + unsigned TYPE NAME ## u_shr = 0.1u ## POSTFIX >> 5; \ + _Sat TYPE NAME ## sat_shr = (_Sat TYPE)0.1 ## POSTFIX >> 5; \ + _Sat unsigned TYPE NAME ## sat_u_shr = (_Sat unsigned TYPE)0.1 ## POSTFIX >> 5; \ + int NAME ## ne = 0.1 ## POSTFIX != 0.2 ## POSTFIX; \ + int NAME ## u_ne = 0.1u ## POSTFIX != 0.2u ## POSTFIX; \ + int NAME ## eq = 0.1 ## POSTFIX == 0.2 ## POSTFIX; \ + int NAME ## u_eq = 0.1u ## POSTFIX == 0.2u ## POSTFIX; \ + int NAME ## gt = 0.1 ## POSTFIX > 0.2 ## POSTFIX; \ + int NAME ## u_gt = 0.1u ## POSTFIX > 0.2u ## POSTFIX; \ + int NAME ## ge = 0.1 ## POSTFIX >= 0.2 ## POSTFIX; \ + int NAME ## u_ge = 0.1u ## POSTFIX >= 0.2 ## POSTFIX; \ + int NAME ## lt = 0.1 ## POSTFIX < 0.2 ## POSTFIX; \ + int NAME ## u_lt = 0.1u ## POSTFIX < 0.2 ## POSTFIX; \ + int NAME ## le = 0.1 ## POSTFIX <= 0.2 ## POSTFIX; \ + int NAME ## u_le = 0.1u ## POSTFIX <= 0.2 ## POSTFIX; \ + int NAME ## ne2 = 0.2 ## POSTFIX != 0.2 ## POSTFIX; \ + int NAME ## u_ne2 = 0.2u ## POSTFIX != 0.2u ## POSTFIX; \ + int NAME ## eq2 = 0.2 ## POSTFIX == 0.2 ## POSTFIX; \ + int NAME ## u_eq2 = 0.2u ## POSTFIX == 0.2u ## POSTFIX; \ + int NAME ## gt2 = 0.2 ## POSTFIX > 0.2 ## POSTFIX; \ + int NAME ## u_gt2 = 0.2u ## POSTFIX > 0.2u ## POSTFIX; \ + int NAME ## ge2 = 0.2 ## POSTFIX >= 0.2 ## POSTFIX; \ + int NAME ## u_ge2 = 0.2u ## POSTFIX >= 0.2 ## POSTFIX; \ + int NAME ## lt2 = 0.2 ## POSTFIX < 0.2 ## POSTFIX; \ + int NAME ## u_lt2 = 0.2u ## POSTFIX < 0.2 ## POSTFIX; \ + int NAME ## le2 = 0.2 ## POSTFIX <= 0.2 ## POSTFIX; \ + int NAME ## u_le2 = 0.2u ## POSTFIX <= 0.2 ## POSTFIX; \ + TYPE NAME ## hr_signed = 0.1hr; \ + unsigned TYPE NAME ## hr_unsigned = 0.1hr; \ + _Sat TYPE NAME ## hr_sat_signed = 0.1hr; \ + _Sat unsigned TYPE NAME ## hr_sat_unsigned = 0.1hr; \ + TYPE NAME ## r_signed = 0.1r; \ + unsigned TYPE NAME ## r_unsigned = 0.1r; \ + _Sat TYPE NAME ## r_sat_signed = 0.1r; \ + _Sat unsigned TYPE NAME ## r_sat_unsigned = 0.1r; \ + TYPE NAME ## lr_signed = 0.1lr; \ + unsigned TYPE NAME ## lr_unsigned = 0.1lr; \ + _Sat TYPE NAME ## lr_sat_signed = 0.1lr; \ + _Sat unsigned TYPE NAME ## lr_sat_unsigned = 0.1lr; \ + TYPE NAME ## llr_signed = 0.1llr; \ + unsigned TYPE NAME ## llr_unsigned = 0.1llr; \ + _Sat TYPE NAME ## llr_sat_signed = 0.1llr; \ + _Sat unsigned TYPE NAME ## llr_sat_unsigned = 0.1llr; \ + TYPE NAME ## uhr_signed = 0.1uhr; \ + unsigned TYPE NAME ## uhr_unsigned = 0.1uhr; \ + _Sat TYPE NAME ## uhr_sat_signed = 0.1uhr; \ + _Sat unsigned TYPE NAME ## uhr_sat_unsigned = 0.1uhr; \ + TYPE NAME ## ur_signed = 0.1ur; \ + unsigned TYPE NAME ## ur_unsigned = 0.1ur; \ + _Sat TYPE NAME ## ur_sat_signed = 0.1ur; \ + _Sat unsigned TYPE NAME ## ur_sat_unsigned = 0.1ur; \ + TYPE NAME ## ulr_signed = 0.1ulr; \ + unsigned TYPE NAME ## ulr_unsigned = 0.1ulr; \ + _Sat TYPE NAME ## ulr_sat_signed = 0.1ulr; \ + _Sat unsigned TYPE NAME ## ulr_sat_unsigned = 0.1ulr; \ + TYPE NAME ## ullr_signed = 0.1ullr; \ + unsigned TYPE NAME ## ullr_unsigned = 0.1ullr; \ + _Sat TYPE NAME ## ullr_sat_signed = 0.1ullr; \ + _Sat unsigned TYPE NAME ## ullr_sat_unsigned = 0.1ullr; \ + TYPE NAME ## hk_signed = 0.1hk; \ + unsigned TYPE NAME ## hk_unsigned = 0.1hk; \ + _Sat TYPE NAME ## hk_sat_signed = 5.1hk; \ + _Sat unsigned TYPE NAME ## hk_sat_unsigned = 5.1hk; \ + TYPE NAME ## k_signed = 0.1k; \ + unsigned TYPE NAME ## k_unsigned = 0.1k; \ + _Sat TYPE NAME ## k_sat_signed = 5.1k; \ + _Sat unsigned TYPE NAME ## k_sat_unsigned = 5.1k; \ + TYPE NAME ## lk_signed = 0.1lk; \ + unsigned TYPE NAME ## lk_unsigned = 0.1lk; \ + _Sat TYPE NAME ## lk_sat_signed = 5.1lk; \ + _Sat unsigned TYPE NAME ## lk_sat_unsigned = 5.1lk; \ + TYPE NAME ## llk_signed = 0.1llk; \ + unsigned TYPE NAME ## llk_unsigned = 0.1llk; \ + _Sat TYPE NAME ## llk_sat_signed = 5.1llk; \ + _Sat unsigned TYPE NAME ## llk_sat_unsigned = 5.1llk; \ + TYPE NAME ## uhk_signed = 0.1uhk; \ + unsigned TYPE NAME ## uhk_unsigned = 0.1uhk; \ + _Sat TYPE NAME ## uhk_sat_signed = 5.1uhk; \ + _Sat unsigned TYPE NAME ## uhk_sat_unsigned = 5.1uhk; \ + TYPE NAME ## uk_signed = 0.1uk; \ + unsigned TYPE NAME ## uk_unsigned = 0.1uk; \ + _Sat TYPE NAME ## uk_sat_signed = 5.1uk; \ + _Sat unsigned TYPE NAME ## uk_sat_unsigned = 5.1uk; \ + TYPE NAME ## ulk_signed = 0.1ulk; \ + unsigned TYPE NAME ## ulk_unsigned = 0.1ulk; \ + _Sat TYPE NAME ## ulk_sat_signed = 5.1ulk; \ + _Sat unsigned TYPE NAME ## ulk_sat_unsigned = 5.1ulk; \ + TYPE NAME ## ullk_signed = 0.1ullk; \ + unsigned TYPE NAME ## ullk_unsigned = 0.1ullk; \ + _Sat TYPE NAME ## ullk_sat_signed = 5.1ullk; \ + _Sat unsigned TYPE NAME ## ullk_sat_unsigned = 5.1ullk; \ + +ALLOPCONST(short _Fract, sf, hr); +ALLOPCONST(_Fract, f, r); +ALLOPCONST(long _Fract, lf, lr); +ALLOPCONST(long long _Fract, llf, llr); +ALLOPCONST(short _Accum, sa, hk); +ALLOPCONST(_Accum, a, k); +ALLOPCONST(long _Accum, la, lk); +ALLOPCONST(long long _Accum, lla, llk); -- cgit v1.2.3