(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
struct_cpy.c
       1  /* { dg-do compile } */
       2  
       3  struct struct1 { char a;};
       4  struct struct2 { char a, b;};
       5  struct struct3 { char a, b, c; };
       6  struct struct4 { char a, b, c, d; };
       7  struct struct5 { char a, b, c, d, e; };
       8  struct struct6 { char a, b, c, d, e, f; };
       9  struct struct7 { char a, b, c, d, e, f, g; };
      10  struct struct8 { char a, b, c, d, e, f, g, h; };
      11  struct struct9 { char a, b, c, d, e, f, g, h, i; };
      12  struct struct10 { char a, b, c, d, e, f, g, h, i, j; };
      13  struct struct11 { char a, b, c, d, e, f, g, h, i, j, k; };
      14  struct struct12 { char a, b, c, d, e, f, g, h, i, j, k, l; };
      15  struct struct13 { char a, b, c, d, e, f, g, h, i, j, k, l, m; };
      16  struct struct14 { char a, b, c, d, e, f, g, h, i, j, k, l, m, n; };
      17  struct struct15 { char a, b, c, d, e, f, g, h, i, j, k, l, m, n, o; };
      18  struct struct16 { char a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p; };
      19  
      20  struct struct1 foo1 = {'1'};
      21  struct struct2 foo2 = { 'a', 'b'};
      22  struct struct3 foo3 = { 'A', 'B', 'C'};
      23  struct struct4 foo4 = {'1', '2', '3', '4'};
      24  struct struct5 foo5 = {'a', 'b', 'c', 'd', 'e'};
      25  struct struct6 foo6 = {'A', 'B', 'C', 'D', 'E', 'F'};
      26  struct struct7 foo7 = {'1', '2', '3', '4', '5', '6', '7'};
      27  struct struct8 foo8 = {'1', '2', '3', '4', '5', '6', '7', '8'};
      28  struct struct9 foo9 = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'};
      29  struct struct10 foo10 = {
      30    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};
      31  struct struct11 foo11 = {
      32    '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B'};
      33  struct struct12 foo12 = {
      34    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'};
      35  struct struct13 foo13 = {
      36    'a','b','c','d','e','f','g','h','i','j','k','l','m'};
      37  struct struct14 foo14 = {
      38    'a','b','c','d','e','f','g','h','i','j','k','l','m','n'};
      39  struct struct15 foo15 = {
      40    'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o'};
      41  struct struct16 foo16 = {
      42    'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'};
      43  
      44  #define FUN(x) void fun##x ()\
      45  { \
      46    volatile struct struct##x var##x = foo##x; \
      47  }
      48  
      49  FUN(1)
      50  FUN(2)
      51  FUN(3)
      52  FUN(4)
      53  FUN(5)
      54  FUN(6)
      55  FUN(7)
      56  FUN(8)
      57  FUN(9)
      58  FUN(10)
      59  FUN(11)
      60  FUN(12)
      61  FUN(13)
      62  FUN(14)
      63  FUN(15)
      64  FUN(16)
      65  
      66  /* { dg-final { scan-assembler-times {ldr\s} 18 } } */
      67  /* { dg-final { scan-assembler-times {ldrb} 4 } } */
      68  /* { dg-final { scan-assembler-times {ldrh} 4 } } */
      69  /* { dg-final { scan-assembler-times {ldp} 1 } } */