(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
s390/
load-relative-check.c
       1  /* Check if load-relative instructions are created */
       2  /* { dg-do compile { target { s390*-*-* } } } */
       3  /* { dg-options "-O2 -march=z10 -mzarch -fno-section-anchors" } */
       4  
       5  /* { dg-final { scan-assembler "lgfrl\t%r.?,b.4" { target { lp64 } } } } */
       6  /* { dg-final { scan-assembler "lgfrl\t%r.?,s.12" { target { lp64 } } } } */
       7  /* { dg-final { scan-assembler "lgrl\t%r.?,s" { target { lp64 } } } } */
       8  
       9  /* { dg-final { scan-assembler "lrl\t%r.?,b.4" { target { ! lp64 } } } } */
      10  /* { dg-final { scan-assembler "lrl\t%r.?,s.8" { target { ! lp64 } } } } */
      11  /* { dg-final { scan-assembler "lrl\t%r.?,s" { target { ! lp64 } } } } */
      12  
      13  int b[20];
      14  
      15  struct s
      16  {
      17    long a;
      18    int  b;
      19    int  c;
      20  } s;
      21  
      22  struct __attribute__((packed)) s2
      23  {
      24    char a;
      25    char b;
      26    char c;
      27  } s2;
      28  
      29  char __attribute__((aligned(1))) arr[10];
      30  
      31  int foo()
      32    {
      33      return b[1];
      34    }
      35  
      36  int bar()
      37    {
      38      return s.c;
      39    }
      40  
      41  long bar2()
      42    {
      43      return s.a;
      44    }
      45  
      46  int baz()
      47    {
      48      return arr[1];
      49    }