* g++.dg/other/i386-2.C (dg-options): Add -mavx512pf.
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / l_fma_main.h
bloba9dc5cd20e5b3a70217560b0ab1b0b058d85ac4a
2 #ifndef l_fma_main
3 #define l_fma_main
5 #if DEBUG
6 #include <stdio.h>
7 #endif
9 TYPE m1[32] = {
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
13 TYPE m2[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
17 TYPE m3[32] = {
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
21 TYPE m4[32];
22 int test_fails = 0;
24 void
25 compare_result(char *title, TYPE *res)
27 int i;
28 int good = 1;
29 for (i =0; i < 32; i++)
30 if (m4[i] != res[i])
32 if (good)
34 #if DEBUG
35 printf ("!!!! %s miscompare\n", title);
36 #endif
37 good = 0;
39 #if DEBUG
40 printf ("res[%d] = %d, must be %d\n", i, (int)res[i], (int) m4[i]);
41 #endif
43 if (!good)
44 test_fails = 1;
47 static void fma_test ()
49 test_noneg_add_noneg_add (m1, m2, m3, m4, 32);
50 compare_result ("test0000", res_test0000);
52 test_noneg_add_noneg_sub (m1, m2, m3, m4, 32);
53 compare_result ("test0001", res_test0001);
55 test_noneg_add_neg_add (m1, m2, m3, m4, 32);
56 compare_result ("test0010", res_test0010);
58 test_noneg_add_neg_sub (m1, m2, m3, m4, 32);
59 compare_result ("test0011", res_test0011);
61 test_noneg_sub_noneg_add (m1, m2, m3, m4, 32);
62 compare_result ("test0100", res_test0100);
64 test_noneg_sub_noneg_sub (m1, m2, m3, m4, 32);
65 compare_result ("test0101", res_test0101);
67 test_noneg_sub_neg_add (m1, m2, m3, m4, 32);
68 compare_result ("test0110", res_test0110);
70 test_noneg_sub_neg_sub (m1, m2, m3, m4, 32);
71 compare_result ("test0111", res_test0111);
73 test_neg_add_noneg_add (m1, m2, m3, m4, 32);
74 compare_result ("test1000", res_test1000);
76 test_neg_add_noneg_sub (m1, m2, m3, m4, 32);
77 compare_result ("test1001", res_test1001);
79 test_neg_add_neg_add (m1, m2, m3, m4, 32);
80 compare_result ("test1010", res_test1010);
82 test_neg_add_neg_sub (m1, m2, m3, m4, 32);
83 compare_result ("test1011", res_test1011);
85 test_neg_sub_noneg_add (m1, m2, m3, m4, 32);
86 compare_result ("test1100", res_test1100);
88 test_neg_sub_noneg_sub (m1, m2, m3, m4, 32);
89 compare_result ("test1101", res_test1101);
91 test_neg_sub_neg_add (m1, m2, m3, m4, 32);
92 compare_result ("test1110", res_test1110);
94 test_neg_sub_neg_sub (m1, m2, m3, m4, 32);
95 compare_result ("test1111", res_test1111);
97 if (test_fails) abort ();
100 #endif