1 /* { dg-do run { target mipsisa64*-*-* } } */
2 /* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
4 /* Test MIPS-3D absolute compare builtin functions */
8 typedef float v2sf __attribute__ ((vector_size(8)));
10 NOMIPS16 int test0 (v2sf a, v2sf b);
11 NOMIPS16 int test1 (v2sf a, v2sf b);
12 NOMIPS16 int test2 (v2sf a, v2sf b);
13 NOMIPS16 int test3 (v2sf a, v2sf b);
14 NOMIPS16 int test4 (v2sf a, v2sf b);
15 NOMIPS16 int test5 (v2sf a, v2sf b);
16 NOMIPS16 int test6 (v2sf a, v2sf b);
17 NOMIPS16 int test7 (v2sf a, v2sf b);
18 NOMIPS16 int test8 (v2sf a, v2sf b);
19 NOMIPS16 int test9 (v2sf a, v2sf b);
20 NOMIPS16 int test10 (v2sf a, v2sf b);
21 NOMIPS16 int test11 (v2sf a, v2sf b);
22 NOMIPS16 int test12 (v2sf a, v2sf b);
23 NOMIPS16 int test13 (v2sf a, v2sf b);
24 NOMIPS16 int test14 (v2sf a, v2sf b);
25 NOMIPS16 int test15 (v2sf a, v2sf b);
26 NOMIPS16 int test16 (v2sf a, v2sf b);
27 NOMIPS16 int test17 (v2sf a, v2sf b);
28 NOMIPS16 int test18 (v2sf a, v2sf b);
29 NOMIPS16 int test19 (v2sf a, v2sf b);
30 NOMIPS16 int test20 (v2sf a, v2sf b);
31 NOMIPS16 int test21 (v2sf a, v2sf b);
32 NOMIPS16 int test22 (v2sf a, v2sf b);
33 NOMIPS16 int test23 (v2sf a, v2sf b);
34 NOMIPS16 int test24 (v2sf a, v2sf b);
35 NOMIPS16 int test25 (v2sf a, v2sf b);
36 NOMIPS16 int test26 (v2sf a, v2sf b);
37 NOMIPS16 int test27 (v2sf a, v2sf b);
38 NOMIPS16 int test28 (v2sf a, v2sf b);
39 NOMIPS16 int test29 (v2sf a, v2sf b);
40 NOMIPS16 int test30 (v2sf a, v2sf b);
41 NOMIPS16 int test31 (v2sf a, v2sf b);
42 NOMIPS16 int test32 (v2sf a, v2sf b);
43 NOMIPS16 int test33 (v2sf a, v2sf b);
44 NOMIPS16 int test34 (v2sf a, v2sf b);
45 NOMIPS16 int test35 (v2sf a, v2sf b);
46 NOMIPS16 int test36 (v2sf a, v2sf b);
47 NOMIPS16 int test37 (v2sf a, v2sf b);
48 NOMIPS16 int test38 (v2sf a, v2sf b);
49 NOMIPS16 int test39 (v2sf a, v2sf b);
50 NOMIPS16 int test40 (v2sf a, v2sf b);
51 NOMIPS16 int test41 (v2sf a, v2sf b);
52 NOMIPS16 int test42 (v2sf a, v2sf b);
53 NOMIPS16 int test43 (v2sf a, v2sf b);
54 NOMIPS16 int test44 (v2sf a, v2sf b);
55 NOMIPS16 int test45 (v2sf a, v2sf b);
56 NOMIPS16 int test46 (v2sf a, v2sf b);
57 NOMIPS16 int test47 (v2sf a, v2sf b);
58 NOMIPS16 int test48 (v2sf a, v2sf b);
59 NOMIPS16 int test49 (v2sf a, v2sf b);
60 NOMIPS16 int test50 (v2sf a, v2sf b);
61 NOMIPS16 int test51 (v2sf a, v2sf b);
62 NOMIPS16 int test52 (v2sf a, v2sf b);
63 NOMIPS16 int test53 (v2sf a, v2sf b);
64 NOMIPS16 int test54 (v2sf a, v2sf b);
65 NOMIPS16 int test55 (v2sf a, v2sf b);
66 NOMIPS16 int test56 (v2sf a, v2sf b);
67 NOMIPS16 int test57 (v2sf a, v2sf b);
68 NOMIPS16 int test58 (v2sf a, v2sf b);
69 NOMIPS16 int test59 (v2sf a, v2sf b);
70 NOMIPS16 int test60 (v2sf a, v2sf b);
71 NOMIPS16 int test61 (v2sf a, v2sf b);
72 NOMIPS16 int test62 (v2sf a, v2sf b);
73 NOMIPS16 int test63 (v2sf a, v2sf b);
75 float qnan = 1.0f/0.0f - 1.0f/0.0f;
83 union { long long ll; int i[2]; } endianness_test;
84 endianness_test.ll = 1;
85 little_endian = endianness_test.i[0];
89 b = (v2sf) {-56, -78};
94 if (__builtin_mips_any_cabs_eq_ps(a, b) != i)
96 if (__builtin_mips_upper_cabs_eq_ps(a, b) != j)
98 if (__builtin_mips_lower_cabs_eq_ps(a, b) != k)
100 if (__builtin_mips_all_cabs_eq_ps(a, b) != l)
105 b = (v2sf) {-12, -78};
118 if (__builtin_mips_any_cabs_eq_ps(a, b) != i)
120 if (__builtin_mips_upper_cabs_eq_ps(a, b) != j)
122 if (__builtin_mips_lower_cabs_eq_ps(a, b) != k)
124 if (__builtin_mips_all_cabs_eq_ps(a, b) != l)
129 b = (v2sf) {-56, -34};
142 if (__builtin_mips_any_cabs_eq_ps(a, b) != i)
144 if (__builtin_mips_upper_cabs_eq_ps(a, b) != j)
146 if (__builtin_mips_lower_cabs_eq_ps(a, b) != k)
148 if (__builtin_mips_all_cabs_eq_ps(a, b) != l)
153 b = (v2sf) {-12, -34};
158 if (__builtin_mips_any_cabs_eq_ps(a, b) != i)
160 if (__builtin_mips_upper_cabs_eq_ps(a, b) != j)
162 if (__builtin_mips_lower_cabs_eq_ps(a, b) != k)
164 if (__builtin_mips_all_cabs_eq_ps(a, b) != l)
167 /* Test all comparisons */
170 a = (v2sf) {1984.0, 10.58};
171 b = (v2sf) {-1984.0, -567.345};
175 a = (v2sf) {10.58, 1984.0};
176 b = (v2sf) {-567.345, -1984.0};
372 /* Reverse arguments */
566 #ifndef __FAST_MATH__
567 /* Test all comparisons */
570 a = (v2sf) {qnan, qnan};
571 b = (v2sf) {-1984.0, -567.345};
575 a = (v2sf) {qnan, qnan};
576 b = (v2sf) {-567.345, -1984.0};
773 printf ("Test Passes\n");
777 NOMIPS16 int test0 (v2sf a, v2sf b)
779 return __builtin_mips_any_cabs_f_ps (a, b);
782 NOMIPS16 int test1 (v2sf a, v2sf b)
784 return __builtin_mips_upper_cabs_f_ps (a, b);
787 NOMIPS16 int test2 (v2sf a, v2sf b)
789 return __builtin_mips_lower_cabs_f_ps (a, b);
792 NOMIPS16 int test3 (v2sf a, v2sf b)
794 return __builtin_mips_all_cabs_f_ps (a, b);
797 NOMIPS16 int test4 (v2sf a, v2sf b)
799 return __builtin_mips_any_cabs_un_ps (a, b);
802 NOMIPS16 int test5 (v2sf a, v2sf b)
804 return __builtin_mips_upper_cabs_un_ps (a, b);
807 NOMIPS16 int test6 (v2sf a, v2sf b)
809 return __builtin_mips_lower_cabs_un_ps (a, b);
812 NOMIPS16 int test7 (v2sf a, v2sf b)
814 return __builtin_mips_all_cabs_un_ps (a, b);
817 NOMIPS16 int test8 (v2sf a, v2sf b)
819 return __builtin_mips_any_cabs_eq_ps (a, b);
822 NOMIPS16 int test9 (v2sf a, v2sf b)
824 return __builtin_mips_upper_cabs_eq_ps (a, b);
827 NOMIPS16 int test10 (v2sf a, v2sf b)
829 return __builtin_mips_lower_cabs_eq_ps (a, b);
832 NOMIPS16 int test11 (v2sf a, v2sf b)
834 return __builtin_mips_all_cabs_eq_ps (a, b);
837 NOMIPS16 int test12 (v2sf a, v2sf b)
839 return __builtin_mips_any_cabs_ueq_ps (a, b);
842 NOMIPS16 int test13 (v2sf a, v2sf b)
844 return __builtin_mips_upper_cabs_ueq_ps (a, b);
847 NOMIPS16 int test14 (v2sf a, v2sf b)
849 return __builtin_mips_lower_cabs_ueq_ps (a, b);
852 NOMIPS16 int test15 (v2sf a, v2sf b)
854 return __builtin_mips_all_cabs_ueq_ps (a, b);
857 NOMIPS16 int test16 (v2sf a, v2sf b)
859 return __builtin_mips_any_cabs_olt_ps (a, b);
862 NOMIPS16 int test17 (v2sf a, v2sf b)
864 return __builtin_mips_upper_cabs_olt_ps (a, b);
867 NOMIPS16 int test18 (v2sf a, v2sf b)
869 return __builtin_mips_lower_cabs_olt_ps (a, b);
872 NOMIPS16 int test19 (v2sf a, v2sf b)
874 return __builtin_mips_all_cabs_olt_ps (a, b);
877 NOMIPS16 int test20 (v2sf a, v2sf b)
879 return __builtin_mips_any_cabs_ult_ps (a, b);
882 NOMIPS16 int test21 (v2sf a, v2sf b)
884 return __builtin_mips_upper_cabs_ult_ps (a, b);
887 NOMIPS16 int test22 (v2sf a, v2sf b)
889 return __builtin_mips_lower_cabs_ult_ps (a, b);
892 NOMIPS16 int test23 (v2sf a, v2sf b)
894 return __builtin_mips_all_cabs_ult_ps (a, b);
897 NOMIPS16 int test24 (v2sf a, v2sf b)
899 return __builtin_mips_any_cabs_ole_ps (a, b);
902 NOMIPS16 int test25 (v2sf a, v2sf b)
904 return __builtin_mips_upper_cabs_ole_ps (a, b);
907 NOMIPS16 int test26 (v2sf a, v2sf b)
909 return __builtin_mips_lower_cabs_ole_ps (a, b);
912 NOMIPS16 int test27 (v2sf a, v2sf b)
914 return __builtin_mips_all_cabs_ole_ps (a, b);
917 NOMIPS16 int test28 (v2sf a, v2sf b)
919 return __builtin_mips_any_cabs_ule_ps (a, b);
922 NOMIPS16 int test29 (v2sf a, v2sf b)
924 return __builtin_mips_upper_cabs_ule_ps (a, b);
927 NOMIPS16 int test30 (v2sf a, v2sf b)
929 return __builtin_mips_lower_cabs_ule_ps (a, b);
932 NOMIPS16 int test31 (v2sf a, v2sf b)
934 return __builtin_mips_all_cabs_ule_ps (a, b);
937 NOMIPS16 int test32 (v2sf a, v2sf b)
939 return __builtin_mips_any_cabs_sf_ps (a, b);
942 NOMIPS16 int test33 (v2sf a, v2sf b)
944 return __builtin_mips_upper_cabs_sf_ps (a, b);
947 NOMIPS16 int test34 (v2sf a, v2sf b)
949 return __builtin_mips_lower_cabs_sf_ps (a, b);
952 NOMIPS16 int test35 (v2sf a, v2sf b)
954 return __builtin_mips_all_cabs_sf_ps (a, b);
957 NOMIPS16 int test36 (v2sf a, v2sf b)
959 return __builtin_mips_any_cabs_ngle_ps (a, b);
962 NOMIPS16 int test37 (v2sf a, v2sf b)
964 return __builtin_mips_upper_cabs_ngle_ps (a, b);
967 NOMIPS16 int test38 (v2sf a, v2sf b)
969 return __builtin_mips_lower_cabs_ngle_ps (a, b);
972 NOMIPS16 int test39 (v2sf a, v2sf b)
974 return __builtin_mips_all_cabs_ngle_ps (a, b);
977 NOMIPS16 int test40 (v2sf a, v2sf b)
979 return __builtin_mips_any_cabs_seq_ps (a, b);
982 NOMIPS16 int test41 (v2sf a, v2sf b)
984 return __builtin_mips_upper_cabs_seq_ps (a, b);
987 NOMIPS16 int test42 (v2sf a, v2sf b)
989 return __builtin_mips_lower_cabs_seq_ps (a, b);
992 NOMIPS16 int test43 (v2sf a, v2sf b)
994 return __builtin_mips_all_cabs_seq_ps (a, b);
997 NOMIPS16 int test44 (v2sf a, v2sf b)
999 return __builtin_mips_any_cabs_ngl_ps (a, b);
1002 NOMIPS16 int test45 (v2sf a, v2sf b)
1004 return __builtin_mips_upper_cabs_ngl_ps (a, b);
1007 NOMIPS16 int test46 (v2sf a, v2sf b)
1009 return __builtin_mips_lower_cabs_ngl_ps (a, b);
1012 NOMIPS16 int test47 (v2sf a, v2sf b)
1014 return __builtin_mips_all_cabs_ngl_ps (a, b);
1017 NOMIPS16 int test48 (v2sf a, v2sf b)
1019 return __builtin_mips_any_cabs_lt_ps (a, b);
1022 NOMIPS16 int test49 (v2sf a, v2sf b)
1024 return __builtin_mips_upper_cabs_lt_ps (a, b);
1027 NOMIPS16 int test50 (v2sf a, v2sf b)
1029 return __builtin_mips_lower_cabs_lt_ps (a, b);
1032 NOMIPS16 int test51 (v2sf a, v2sf b)
1034 return __builtin_mips_all_cabs_lt_ps (a, b);
1037 NOMIPS16 int test52 (v2sf a, v2sf b)
1039 return __builtin_mips_any_cabs_nge_ps (a, b);
1042 NOMIPS16 int test53 (v2sf a, v2sf b)
1044 return __builtin_mips_upper_cabs_nge_ps (a, b);
1047 NOMIPS16 int test54 (v2sf a, v2sf b)
1049 return __builtin_mips_lower_cabs_nge_ps (a, b);
1052 NOMIPS16 int test55 (v2sf a, v2sf b)
1054 return __builtin_mips_all_cabs_nge_ps (a, b);
1057 NOMIPS16 int test56 (v2sf a, v2sf b)
1059 return __builtin_mips_any_cabs_le_ps (a, b);
1062 NOMIPS16 int test57 (v2sf a, v2sf b)
1064 return __builtin_mips_upper_cabs_le_ps (a, b);
1067 NOMIPS16 int test58 (v2sf a, v2sf b)
1069 return __builtin_mips_lower_cabs_le_ps (a, b);
1072 NOMIPS16 int test59 (v2sf a, v2sf b)
1074 return __builtin_mips_all_cabs_le_ps (a, b);
1077 NOMIPS16 int test60 (v2sf a, v2sf b)
1079 return __builtin_mips_any_cabs_ngt_ps (a, b);
1082 NOMIPS16 int test61 (v2sf a, v2sf b)
1084 return __builtin_mips_upper_cabs_ngt_ps (a, b);
1087 NOMIPS16 int test62 (v2sf a, v2sf b)
1089 return __builtin_mips_lower_cabs_ngt_ps (a, b);
1092 NOMIPS16 int test63 (v2sf a, v2sf b)
1094 return __builtin_mips_all_cabs_ngt_ps (a, b);