| /* PR target/91769 */ |
| /* { dg-do compile } */ |
| /* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" "-g" } { "" } } */ |
| /* { dg-options "-EL -mgp32 -mhard-float" } */ |
| |
| NOCOMPRESSION double |
| foo (void) |
| { |
| register double* pf __asm__ ("$a1"); |
| __asm__ __volatile__ ("":"=r"(pf)); |
| double f = *pf; |
| |
| if (f != f) |
| f = -f; |
| return f; |
| } |
| |
| /* { dg-final { scan-assembler-not "lw\t\\\$4,0\\(\\\$5\\)\n\tlw\t\\\$5,4\\(\\\$5\\)\n\tldc1\t\\\$.*,0\\(\\\$5\\)" } } */ |
| /* { dg-final { scan-assembler "lw\t\\\$4,0\\(\\\$5\\)\n\tlw\t\\\$5,4\\(\\\$5\\)\n\tmtc1\t\\\$4,\\\$.*\n\tmthc1\t\\\$5,\\\$.*" } } */ |