1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -march=z10 -mzarch -fPIC -mno-pic-data-is-text-relative" } */
       3  
       4  #include "call.h"
       5  
       6  /* { dg-final { scan-assembler {brasl\t%r\d+,foo@PLT\n} } } */
       7  /* { dg-final { scan-assembler {lgrl\t%r2,foo@GOTENT\n} { target lp64 } } } */
       8  /* { dg-final { scan-assembler {lrl\t%r2,foo@GOTENT\n} { target { ! lp64 } } } } */
       9  
      10  /* { dg-final { scan-assembler {brasl\t%r\d+,foostatic@PLT\n} { target lp64 } } } */
      11  /* { dg-final { scan-assembler {brasl\t%r\d+,foostatic\n} { target { ! lp64 } } } } */
      12  /* { dg-final { scan-assembler {larl\t%r2,foostatic@PLT\n} { target lp64 } } } */
      13  /* { dg-final { scan-assembler {larl\t%r2,foostatic\n} { target { ! lp64 } } } } */
      14  
      15  /* { dg-final { scan-assembler {brasl\t%r\d+,fooweak@PLT\n} } } */
      16  /* { dg-final { scan-assembler {lgrl\t%r2,fooweak@GOTENT\n} { target lp64 } } } */
      17  /* { dg-final { scan-assembler {lrl\t%r2,fooweak@GOTENT\n} { target { ! lp64 } } } } */
      18  
      19  /* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */
      20  /* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */