| /* APPLE LOCAL file CW asm blocks */ |
| /* { dg-do run { target powerpc*-*-* } } */ |
| /* { dg-options "-fasm-blocks" } */ |
| /* Radar 4235138 */ |
| |
| extern "C" void abort(); |
| |
| static void FUNC(register unsigned int x) { |
| union { |
| double d; |
| struct { |
| int x; |
| int y; |
| struct { |
| int w; |
| int z; |
| } q; |
| } s; |
| } u; |
| asm { |
| stw x, u.s.x |
| stw x, u.s.y |
| stw x, u.s.q.w |
| stw x, u.s.q.z |
| lfd fp0, u.d |
| mtfsf 1, fp0 |
| } |
| |
| if (u.s.y != x) |
| abort(); |
| |
| if (u.s.x != x) |
| abort(); |
| |
| if (u.s.q.w != x) |
| abort(); |
| |
| if (u.s.q.z != x) |
| abort(); |
| } |
| |
| int main() |
| { |
| FUNC (123); |
| return 0; |
| } |