10 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
11 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32
14 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
15 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33
18 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34
25 compare_result(char * title
, TYPE
*res
)
29 for (i
=0; i
< 32; i
++)
35 printf ("!!!! %s miscompare\n", title
);
40 printf ("res[%d] = %d, must be %d\n", i
, (int)res
[i
], (int) m4
[i
]);
47 static void fma_test ()
51 m4
[i
] = test_noneg_add_noneg_add (m1
[i
], m2
[i
], m3
[i
]);
52 compare_result ("test0000", res_test0000
);
55 m4
[i
] = test_noneg_add_noneg_sub (m1
[i
], m2
[i
], m3
[i
]);
56 compare_result ("test0001", res_test0001
);
59 m4
[i
] = test_noneg_add_neg_add (m1
[i
], m2
[i
], m3
[i
]);
60 compare_result ("test0010", res_test0010
);
63 m4
[i
] = test_noneg_add_neg_sub (m1
[i
], m2
[i
], m3
[i
]);
64 compare_result ("test0011", res_test0011
);
67 m4
[i
] = test_noneg_sub_noneg_add (m1
[i
], m2
[i
], m3
[i
]);
68 compare_result ("test0100", res_test0100
);
71 m4
[i
] = test_noneg_sub_noneg_sub (m1
[i
], m2
[i
], m3
[i
]);
72 compare_result ("test0101", res_test0101
);
75 m4
[i
] = test_noneg_sub_neg_add (m1
[i
], m2
[i
], m3
[i
]);
76 compare_result ("test0110", res_test0110
);
79 m4
[i
] = test_noneg_sub_neg_sub (m1
[i
], m2
[i
], m3
[i
]);
80 compare_result ("test0111", res_test0111
);
83 m4
[i
] = test_neg_add_noneg_add (m1
[i
], m2
[i
], m3
[i
]);
84 compare_result ("test1000", res_test1000
);
87 m4
[i
] = test_neg_add_noneg_sub (m1
[i
], m2
[i
], m3
[i
]);
88 compare_result ("test1001", res_test1001
);
91 m4
[i
] = test_neg_add_neg_add (m1
[i
], m2
[i
], m3
[i
]);
92 compare_result ("test1010", res_test1010
);
95 m4
[i
] = test_neg_add_neg_sub (m1
[i
], m2
[i
], m3
[i
]);
96 compare_result ("test1011", res_test1011
);
99 m4
[i
] = test_neg_sub_noneg_add (m1
[i
], m2
[i
], m3
[i
]);
100 compare_result ("test1100", res_test1100
);
102 for (i
=0; i
<32; i
++)
103 m4
[i
] = test_neg_sub_noneg_sub (m1
[i
], m2
[i
], m3
[i
]);
104 compare_result ("test1101", res_test1101
);
106 for (i
=0; i
<32; i
++)
107 m4
[i
] = test_neg_sub_neg_add (m1
[i
], m2
[i
], m3
[i
]);
108 compare_result ("test1110", res_test1110
);
110 for (i
=0; i
<32; i
++)
111 m4
[i
] = test_neg_sub_neg_sub (m1
[i
], m2
[i
], m3
[i
]);
112 compare_result ("test1111", res_test1111
);
114 if (test_fails
) abort ();