1 2#ifndef l_fma_4 3#define l_fma_4 4 5void __attribute__((sseregparm)) 6test_noneg_add_noneg_add (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 7{ 8 int i; 9 for (i = 0; i < n; i++) 10 d[i] = ((a[i] * b[i]) + c[i]) * b[i] + c[i]; 11} 12 13void __attribute__((sseregparm)) 14test_noneg_add_noneg_sub (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 15{ 16 int i; 17 for (i = 0; i < n; i++) 18 d[i] = ((a[i] * b[i]) + c[i]) * b[i] - c[i]; 19} 20 21void __attribute__((sseregparm)) 22test_noneg_add_neg_add (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 23{ 24 int i; 25 for (i = 0; i < n; i++) 26 d[i] = -((a[i] * b[i]) + c[i]) * b[i] + c[i]; 27} 28 29void __attribute__((sseregparm)) 30test_noneg_add_neg_sub (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 31{ 32 int i; 33 for (i = 0; i < n; i++) 34 d[i] = -((a[i] * b[i]) + c[i]) * b[i] - c[i]; 35} 36 37void __attribute__((sseregparm)) 38test_noneg_sub_noneg_add (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 39{ 40 int i; 41 for (i = 0; i < n; i++) 42 d[i] = ((a[i] * b[i]) - c[i]) * b[i] + c[i]; 43} 44 45void __attribute__((sseregparm)) 46test_noneg_sub_noneg_sub (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 47{ 48 int i; 49 for (i = 0; i < n; i++) 50 d[i] = ((a[i] * b[i]) - c[i]) * b[i] - c[i]; 51} 52 53void __attribute__((sseregparm)) 54test_noneg_sub_neg_add (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 55{ 56 int i; 57 for (i = 0; i < n; i++) 58 d[i] = -((a[i] * b[i]) - c[i]) * b[i] + c[i]; 59} 60 61void __attribute__((sseregparm)) 62test_noneg_sub_neg_sub (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 63{ 64 int i; 65 for (i = 0; i < n; i++) 66 d[i] = -((a[i] * b[i]) - c[i]) * b[i] - c[i]; 67} 68 69void __attribute__((sseregparm)) 70test_neg_add_noneg_add (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 71{ 72 int i; 73 for (i = 0; i < n; i++) 74 d[i] = (-(a[i] * b[i]) + c[i]) * b[i] + c[i]; 75} 76 77void __attribute__((sseregparm)) 78test_neg_add_noneg_sub (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 79{ 80 int i; 81 for (i = 0; i < n; i++) 82 d[i] = (-(a[i] * b[i]) + c[i]) * b[i] - c[i]; 83} 84 85void __attribute__((sseregparm)) 86test_neg_add_neg_add (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 87{ 88 int i; 89 for (i = 0; i < n; i++) 90 d[i] = -(-(a[i] * b[i]) + c[i]) * b[i] + c[i]; 91} 92 93void __attribute__((sseregparm)) 94test_neg_add_neg_sub (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 95{ 96 int i; 97 for (i = 0; i < n; i++) 98 d[i] = -(-(a[i] * b[i]) + c[i]) * b[i] - c[i]; 99} 100 101void __attribute__((sseregparm)) 102test_neg_sub_noneg_add (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 103{ 104 int i; 105 for (i = 0; i < n; i++) 106 d[i] = (-(a[i] * b[i]) - c[i]) * b[i] + c[i]; 107} 108 109void __attribute__((sseregparm)) 110test_neg_sub_noneg_sub (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 111{ 112 int i; 113 for (i = 0; i < n; i++) 114 d[i] = (-(a[i] * b[i]) - c[i]) * b[i] - c[i]; 115} 116 117void __attribute__((sseregparm)) 118test_neg_sub_neg_add (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 119{ 120 int i; 121 for (i = 0; i < n; i++) 122 d[i] = -(-(a[i] * b[i]) - c[i]) * b[i] + c[i]; 123} 124 125void __attribute__((sseregparm)) 126test_neg_sub_neg_sub (TYPE *a, TYPE *b, TYPE *c, TYPE *d, int n) 127{ 128 int i; 129 for (i = 0; i < n; i++) 130 d[i] = -(-(a[i] * b[i]) - c[i]) * b[i] - c[i]; 131} 132 133#endif 134