1 /** extended tests for shift operations, added by
\r
2 Frieder Ferlemann to check for bugs related to bug 1533966
\r
11 # include <inttypes.h>
\r
13 # include <stdint.h>
\r
16 #define SIZE ({size})
\r
17 #define RIGHT ({right})
\r
21 # define TYPE {sign}int8_t
\r
22 # define TEST_VECT 0xa4
\r
26 # define TYPE {sign}int16_t
\r
27 # define TEST_VECT 0xa8ce
\r
31 # define TYPE {sign}int32_t
\r
32 # define TEST_VECT 0xa8b5c4d6
\r
36 # define SHIFT(x,y) (TYPE)((TYPE)(x)<<(y))
\r
38 # define SHIFT(x,y) (TYPE)((TYPE)(x)>>(y))
\r
42 volatile TYPE s = TEST_VECT;
\r
44 #define TESTSHIFT(x) t=s; t = SHIFT (t,(x)); ASSERT( t == SHIFT (TEST_VECT, (x)));
\r
46 volatile TYPE t = TEST_VECT;
\r
47 #define TESTSHIFT(x) t=TEST_VECT; t = SHIFT (t,(x)); ASSERT( t == SHIFT (TEST_VECT, (x)));
\r