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
);