(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
fma_2.h
       1  
       2  #ifndef fma_2
       3  #define fma_2
       4  
       5  TYPE __attribute__((sseregparm))
       6  test_noneg_add_noneg_add (TYPE a, TYPE b, TYPE c)
       7  {
       8    return ((a * b) + c) * a + c;
       9  }
      10  
      11  TYPE __attribute__((sseregparm))
      12  test_noneg_add_noneg_sub (TYPE a, TYPE b, TYPE c)
      13  {
      14    return ((a * b) + c) * a - c;
      15  }
      16  
      17  TYPE __attribute__((sseregparm))
      18  test_noneg_add_neg_add (TYPE a, TYPE b, TYPE c)
      19  {
      20    return -((a * b) + c) * a + c;
      21  }
      22  
      23  TYPE __attribute__((sseregparm))
      24  test_noneg_add_neg_sub (TYPE a, TYPE b, TYPE c)
      25  {
      26    return -((a * b) + c) * a - c;
      27  }
      28  
      29  TYPE __attribute__((sseregparm))
      30  test_noneg_sub_noneg_add (TYPE a, TYPE b, TYPE c)
      31  {
      32    return ((a * b) - c) * a + c;
      33  }
      34  
      35  TYPE __attribute__((sseregparm))
      36  test_noneg_sub_noneg_sub (TYPE a, TYPE b, TYPE c)
      37  {
      38    return ((a * b) - c) * a - c;
      39  }
      40  
      41  TYPE __attribute__((sseregparm))
      42  test_noneg_sub_neg_add (TYPE a, TYPE b, TYPE c)
      43  {
      44    return -((a * b) - c) * a + c;
      45  }
      46  
      47  TYPE __attribute__((sseregparm))
      48  test_noneg_sub_neg_sub (TYPE a, TYPE b, TYPE c)
      49  {
      50    return -((a * b) - c) * a - c;
      51  }
      52  
      53  TYPE __attribute__((sseregparm))
      54  test_neg_add_noneg_add (TYPE a, TYPE b, TYPE c)
      55  {
      56    return (-(a * b) + c) * a + c;
      57  }
      58  
      59  TYPE __attribute__((sseregparm))
      60  test_neg_add_noneg_sub (TYPE a, TYPE b, TYPE c)
      61  {
      62    return (-(a * b) + c) * a - c;
      63  }
      64  
      65  TYPE __attribute__((sseregparm))
      66  test_neg_add_neg_add (TYPE a, TYPE b, TYPE c)
      67  {
      68    return -(-(a * b) + c) * a + c;
      69  }
      70  
      71  TYPE __attribute__((sseregparm))
      72  test_neg_add_neg_sub (TYPE a, TYPE b, TYPE c)
      73  {
      74    return -(-(a * b) + c) * a - c;
      75  }
      76  
      77  TYPE __attribute__((sseregparm))
      78  test_neg_sub_noneg_add (TYPE a, TYPE b, TYPE c)
      79  {
      80    return (-(a * b) - c) * a + c;
      81  }
      82  
      83  TYPE __attribute__((sseregparm))
      84  test_neg_sub_noneg_sub (TYPE a, TYPE b, TYPE c)
      85  {
      86    return (-(a * b) - c) * a - c;
      87  }
      88  
      89  TYPE __attribute__((sseregparm))
      90  test_neg_sub_neg_add (TYPE a, TYPE b, TYPE c)
      91  {
      92    return -(-(a * b) - c) * a + c;
      93  }
      94  
      95  TYPE __attribute__((sseregparm))
      96  test_neg_sub_neg_sub (TYPE a, TYPE b, TYPE c)
      97  {
      98    return -(-(a * b) - c) * a - c;
      99  }
     100  
     101  #endif