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)