1 /* Copyright (C) 2003 Free Software Foundation.
3 STRICT_LOW_PART was handled incorrectly in delay slots.
4 Origin: Hans-Peter Nilsson. */
6 typedef struct { unsigned int e0 : 16; unsigned int e1 : 16; } s1;
7 typedef struct { unsigned int e0 : 16; unsigned int e1 : 16; } s2;
8 typedef struct { s1 i12; s2 i16; } io;
9 static int test_length = 2;
13 static unsigned long test_t0;
14 static unsigned long test_t1;
15 void test(void) __attribute__ ((__noinline__));
16 extern int f1 (void *port) __attribute__ ((__noinline__));
17 extern void f0 (void) __attribute__ ((__noinline__));
30 do f0(); while (test_t1);
37 unsigned long e = 1000000000 / 460800 * test_length;
38 tlen = test_t1 - test_t0;
39 if (((tlen-e) & 0x7FFFFFFF) > 1000)
44 unsigned long e = 1000000000 / 460800 * test_length;
45 tlen = test_t1 - test_t0;
46 if (((tlen - e) & 0x7FFFFFFF) > 1000)
49 return fail_count != 0 ? 1 : 0;
64 if (iop->i12.e0 != 8 || iop->i16.e0 != 8)
72 static int washere = 0;
74 if (washere++ || iop->i12.e0 != 32 || iop->i16.e0 != 32)