(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arc/
uncached-6.c
       1  /* { dg-options "-O1" } */
       2  /* { dg-do compile } */
       3  
       4  #define RegRdSI(v,a) ((v) = *(volatile __attribute__((uncached)) int *)(a))
       5  #define RegRdQI(v,a) ((v) = *(volatile __attribute__((uncached)) char *)(a))
       6  #define RegRdHI(v,a) ((v) = *(volatile __attribute__((uncached)) short *)(a))
       7  #define RegRdDI(v,a) \
       8    ((v) = *(volatile __attribute__((uncached)) long long *)(a))
       9  
      10  char a0;
      11  short a1;
      12  int a2;
      13  long long a3;
      14  
      15  void foox (void *p)
      16  {
      17    RegRdQI (a0, p++);
      18    RegRdHI (a1, p++);
      19    RegRdSI (a2, p++);
      20    RegRdDI (a3, p  );
      21  }
      22  
      23  void barx (int arg)
      24  {
      25    RegRdQI (a0, 0x40000);
      26    RegRdHI (a1, 0x40010);
      27    RegRdSI (a2, 0x40020);
      28    RegRdDI (a3, 0x40040);
      29  }
      30  
      31  /* { dg-final { scan-assembler-times "ldb\.di" 2 } } */
      32  /* { dg-final { scan-assembler-times "ld\[hw\]\.di" 2 } } */
      33  /* { dg-final { scan-assembler-times "ldd\.di" 2 { target { ll64 } } } } */
      34  /* { dg-final { scan-assembler-times "ld\.di" 2 { target { ll64 } } } } */
      35  /* { dg-final { scan-assembler-times "ld\.di" 6 { target { ! { ll64 } } } } } */