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