36 lines
995 B
C
36 lines
995 B
C
/* { dg-options "-O1" } */
|
|
/* { dg-do compile } */
|
|
|
|
#define RegRdSI(v,a) ((v) = *(volatile __attribute__((uncached)) int *)(a))
|
|
#define RegRdQI(v,a) ((v) = *(volatile __attribute__((uncached)) char *)(a))
|
|
#define RegRdHI(v,a) ((v) = *(volatile __attribute__((uncached)) short *)(a))
|
|
#define RegRdDI(v,a) \
|
|
((v) = *(volatile __attribute__((uncached)) long long *)(a))
|
|
|
|
char a0;
|
|
short a1;
|
|
int a2;
|
|
long long a3;
|
|
|
|
void foox (void *p)
|
|
{
|
|
RegRdQI (a0, p++);
|
|
RegRdHI (a1, p++);
|
|
RegRdSI (a2, p++);
|
|
RegRdDI (a3, p );
|
|
}
|
|
|
|
void barx (int arg)
|
|
{
|
|
RegRdQI (a0, 0x40000);
|
|
RegRdHI (a1, 0x40010);
|
|
RegRdSI (a2, 0x40020);
|
|
RegRdDI (a3, 0x40040);
|
|
}
|
|
|
|
/* { dg-final { scan-assembler-times "ldb\.di" 2 } } */
|
|
/* { dg-final { scan-assembler-times "ld\[hw\]\.di" 2 } } */
|
|
/* { dg-final { scan-assembler-times "ldd\.di" 2 { target { ll64 } } } } */
|
|
/* { dg-final { scan-assembler-times "ld\.di" 2 { target { ll64 } } } } */
|
|
/* { dg-final { scan-assembler-times "ld\.di" 6 { target { ! { ll64 } } } } } */
|