(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr44194-1.c
       1  /* { dg-do compile { target { { { { { { { { { { i?86-*-* x86_64-*-* } && x32 } || lp64 } && { ! s390*-*-* } } && { ! hppa*64*-*-* } } && { ! alpha*-*-* } } && { { ! powerpc*-*-linux* } || powerpc_elfv2 } } && { ! nvptx-*-* } } } } } } */
       2  /* { dg-skip-if "returns that struct in memory" { mmix-*-* } } */
       3  /* { dg-options "-O2 -fdump-rtl-dse1 -fdump-rtl-final" } */
       4  
       5  /* Restrict to 64-bit targets since 32-bit targets usually return small
       6     structures in memory.  */
       7  
       8  struct ints { int a, b, c; } foo();
       9  void bar(int a, int b);
      10  
      11  void func() {
      12    struct ints s = foo();
      13    bar(s.a, s.b);
      14  }
      15  
      16  /* { dg-final { scan-rtl-dump "global deletions = (2|3)" "dse1" } } */
      17  
      18  /* Here we want to ignore frame-related instructions, marked as insn/f,
      19     that do things like store the link register to the stack.  We also want
      20     to treat insns the same regardless of whether they have a scheduling
      21     :TI marker, so match both "insn " and "insn:".  */
      22  /* { dg-final { scan-rtl-dump-not "insn\[: \]\[^\n\]*set \\(mem(?!\[^\n\]*scratch)" "final" } } */