| /* { dg-do compile } */ |
| /* { dg-require-effective-target powerpc_pcrel } */ |
| /* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ |
| |
| #define TYPE float |
| #define LARGE 0x20000 |
| |
| /* Test whether we get the right number of PCREL_OPT optimizations for |
| float. */ |
| extern TYPE ext[]; |
| |
| void |
| store (TYPE a) |
| { |
| ext[0] = a; /* PCREL_OPT relocation. */ |
| } |
| |
| void |
| store2 (TYPE a) |
| { |
| ext[2] = a; /* PCREL_OPT relocation. */ |
| } |
| |
| void |
| store_large (TYPE a) |
| { |
| ext[LARGE] = a; /* No PCREL_OPT (store is prefixed). */ |
| } |
| |
| void |
| store_variable (TYPE a, unsigned long n) |
| { |
| ext[n] = a; /* No PCREL_OPT (store is indexed). */ |
| } |
| |
| /* { dg-final { scan-assembler-times "R_PPC64_PCREL_OPT" 2 } } */ |