(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
dfp-td.c
       1  /* Test generation of DFP instructions for POWER6.  */
       2  /* Origin: Janis Johnson <janis187@us.ibm.com> */
       3  /* { dg-do compile { target { powerpc*-*-linux* } } } */
       4  /* { dg-require-effective-target hard_dfp } */
       5  /* { dg-options "-std=gnu99 -mdejagnu-cpu=power6" } */
       6  
       7  /* { dg-final { scan-assembler "daddq" } } */
       8  /* { dg-final { scan-assembler "ddivq" } } */
       9  /* { dg-final { scan-assembler "dmulq" } } */
      10  /* { dg-final { scan-assembler "dsubq" } } */
      11  /* { dg-final { scan-assembler-times "dcmpuq" 6 } } */
      12  /* { dg-final { scan-assembler-times "dctfixq" 2 } } */
      13  /* { dg-final { scan-assembler-times "drintnq" 2 } } */
      14  /* { dg-final { scan-assembler-times "dcffixq" 2 } } */
      15  
      16  extern _Decimal128 a, b, c;
      17  extern int result;
      18  extern int si;
      19  extern long long di;
      20  
      21  void add (void) { a = b + c; }
      22  void div (void) { a = b / c; }
      23  void mul (void) { a = b * c; }
      24  void sub (void) { a = b - c; }
      25  void eq (void) { result = a == b; }
      26  void ne (void) { result = a != b; }
      27  void lt (void) { result = a < b; }
      28  void le (void) { result = a <= b; }
      29  void gt (void) { result = a > b; }
      30  void ge (void) { result = a >= b; }
      31  void tdsi (void) { si = a; }
      32  void tddi (void) { di = a; }
      33  void sitd (void) { a = si; }
      34  void ditd (void) { a = di; }