(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
mips/
mips-ps-3.c
       1  /* { dg-do run } */
       2  /* { dg-options "-mpaired-single forbid_cpu=octeon.* (REQUIRES_STDLIB)" } */
       3  
       4  /* Test MIPS paired-single conditional move */
       5  #include <stdlib.h>
       6  #include <stdio.h>
       7  
       8  typedef float v2sf __attribute__((vector_size(8)));
       9  
      10  NOMIPS16 v2sf test0 (v2sf a, v2sf b, v2sf c, v2sf d);
      11  NOMIPS16 v2sf test1 (v2sf a, v2sf b, v2sf c, v2sf d);
      12  NOMIPS16 v2sf test2 (v2sf a, v2sf b, v2sf c, v2sf d);
      13  NOMIPS16 v2sf test3 (v2sf a, v2sf b, v2sf c, v2sf d);
      14  NOMIPS16 v2sf test4 (v2sf a, v2sf b, v2sf c, v2sf d);
      15  NOMIPS16 v2sf test5 (v2sf a, v2sf b, v2sf c, v2sf d);
      16  NOMIPS16 v2sf test6 (v2sf a, v2sf b, v2sf c, v2sf d);
      17  NOMIPS16 v2sf test7 (v2sf a, v2sf b, v2sf c, v2sf d);
      18  NOMIPS16 v2sf test8 (v2sf a, v2sf b, v2sf c, v2sf d);
      19  NOMIPS16 v2sf test9 (v2sf a, v2sf b, v2sf c, v2sf d);
      20  NOMIPS16 v2sf test10 (v2sf a, v2sf b, v2sf c, v2sf d);
      21  NOMIPS16 v2sf test11 (v2sf a, v2sf b, v2sf c, v2sf d);
      22  NOMIPS16 v2sf test12 (v2sf a, v2sf b, v2sf c, v2sf d);
      23  NOMIPS16 v2sf test13 (v2sf a, v2sf b, v2sf c, v2sf d);
      24  NOMIPS16 v2sf test14 (v2sf a, v2sf b, v2sf c, v2sf d);
      25  NOMIPS16 v2sf test15 (v2sf a, v2sf b, v2sf c, v2sf d);
      26  NOMIPS16 v2sf test16 (v2sf a, v2sf b, v2sf c, v2sf d);
      27  NOMIPS16 v2sf test17 (v2sf a, v2sf b, v2sf c, v2sf d);
      28  NOMIPS16 v2sf test18 (v2sf a, v2sf b, v2sf c, v2sf d);
      29  NOMIPS16 v2sf test19 (v2sf a, v2sf b, v2sf c, v2sf d);
      30  NOMIPS16 v2sf test20 (v2sf a, v2sf b, v2sf c, v2sf d);
      31  NOMIPS16 v2sf test21 (v2sf a, v2sf b, v2sf c, v2sf d);
      32  NOMIPS16 v2sf test22 (v2sf a, v2sf b, v2sf c, v2sf d);
      33  NOMIPS16 v2sf test23 (v2sf a, v2sf b, v2sf c, v2sf d);
      34  NOMIPS16 v2sf test24 (v2sf a, v2sf b, v2sf c, v2sf d);
      35  NOMIPS16 v2sf test25 (v2sf a, v2sf b, v2sf c, v2sf d);
      36  NOMIPS16 v2sf test26 (v2sf a, v2sf b, v2sf c, v2sf d);
      37  NOMIPS16 v2sf test27 (v2sf a, v2sf b, v2sf c, v2sf d);
      38  NOMIPS16 v2sf test28 (v2sf a, v2sf b, v2sf c, v2sf d);
      39  NOMIPS16 v2sf test29 (v2sf a, v2sf b, v2sf c, v2sf d);
      40  NOMIPS16 v2sf test30 (v2sf a, v2sf b, v2sf c, v2sf d);
      41  NOMIPS16 v2sf test31 (v2sf a, v2sf b, v2sf c, v2sf d);
      42  
      43  float qnan = 1.0f/0.0f - 1.0f/0.0f;
      44  
      45  NOMIPS16 int main ()
      46  {
      47    float f1;
      48    v2sf a, b, c, d, e, f;
      49  
      50    /* Case 1 {diff, diff} */
      51    /* movt.ps */
      52    a = (v2sf) {5, 12};
      53    b = (v2sf) {9, 6};
      54    c = (v2sf) {33, 123};
      55    d = (v2sf) {8, 78};
      56    e = __builtin_mips_movt_c_eq_ps (a, b, c, d);
      57    f = (v2sf) {33, 123};
      58    if (!__builtin_mips_upper_c_eq_ps (e, f) ||
      59        !__builtin_mips_lower_c_eq_ps (e, f))
      60      abort ();
      61  
      62    /* movf.ps */
      63    e = __builtin_mips_movf_c_eq_ps (a, b, c, d);
      64    f = (v2sf) {8, 78};
      65    if (!__builtin_mips_upper_c_eq_ps (e, f) ||
      66        !__builtin_mips_lower_c_eq_ps (e, f))
      67      abort ();
      68  
      69    /* Case 2 {same, diff} */
      70    /* movt.ps */
      71    a = (v2sf) {5, 12};
      72    b = (v2sf) {5, 6};
      73    c = (v2sf) {33, 123};
      74    d = (v2sf) {8, 78};
      75    e = __builtin_mips_movt_c_eq_ps (a, b, c, d);
      76    f = (v2sf) {8, 123};
      77    if (!__builtin_mips_upper_c_eq_ps (e, f) ||
      78        !__builtin_mips_lower_c_eq_ps (e, f))
      79      abort ();
      80  
      81    /* movf.ps */
      82    e = __builtin_mips_movf_c_eq_ps (a, b, c, d);
      83    f = (v2sf) {33, 78};
      84    if (!__builtin_mips_upper_c_eq_ps (e, f) ||
      85        !__builtin_mips_lower_c_eq_ps (e, f))
      86      abort ();
      87  
      88    /* Case 3 {diff, same} */
      89    /* movt.ps */
      90    a = (v2sf) {5, 12};
      91    b = (v2sf) {9, 12};
      92    c = (v2sf) {33, 123};
      93    d = (v2sf) {8, 78};
      94    e = __builtin_mips_movt_c_eq_ps (a, b, c, d);
      95    f = (v2sf) {33, 78};
      96    if (!__builtin_mips_upper_c_eq_ps (e, f) ||
      97        !__builtin_mips_lower_c_eq_ps (e, f))
      98      abort ();
      99  
     100    /* movf.ps */
     101    e = __builtin_mips_movf_c_eq_ps (a, b, c, d);
     102    f = (v2sf) {8, 123};
     103    if (!__builtin_mips_upper_c_eq_ps (e, f) ||
     104        !__builtin_mips_lower_c_eq_ps (e, f))
     105      abort ();
     106  
     107    /* Case 4 {same, same} */
     108    /* movt.ps */
     109    a = (v2sf) {5, 12};
     110    b = (v2sf) {5, 12};
     111    c = (v2sf) {33, 123};
     112    d = (v2sf) {8, 78};
     113    e = __builtin_mips_movt_c_eq_ps (a, b, c, d);
     114    f = (v2sf) {8, 78};
     115    if (!__builtin_mips_upper_c_eq_ps (e, f) ||
     116        !__builtin_mips_lower_c_eq_ps (e, f))
     117      abort ();
     118  
     119    /* movf.ps */
     120    e = __builtin_mips_movf_c_eq_ps (a, b, c, d);
     121    f = (v2sf) {33, 123};
     122    if (!__builtin_mips_upper_c_eq_ps (e, f) ||
     123        !__builtin_mips_lower_c_eq_ps (e, f))
     124      abort ();
     125  
     126    /* Test all 16 operators */
     127    a = (v2sf) {123, 123};
     128    b = (v2sf) {1000, 1000};
     129    c = (v2sf) {33, 123};
     130    d = (v2sf) {8, 78};
     131    e = test0 (a, b, c, d);
     132    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     133        !__builtin_mips_lower_c_eq_ps (e, c))
     134      abort ();
     135    e = test1 (a, b, c, d);
     136    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     137        !__builtin_mips_lower_c_eq_ps (e, d))
     138      abort ();
     139  
     140    e = test2 (a, b, c, d);
     141    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     142        !__builtin_mips_lower_c_eq_ps (e, c))
     143      abort ();
     144    e = test3 (a, b, c, d);
     145    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     146        !__builtin_mips_lower_c_eq_ps (e, d))
     147      abort ();
     148  
     149    e = test4 (a, b, c, d);
     150    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     151        !__builtin_mips_lower_c_eq_ps (e, c))
     152      abort ();
     153    e = test5 (a, b, c, d);
     154    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     155        !__builtin_mips_lower_c_eq_ps (e, d))
     156      abort ();
     157  
     158    e = test6 (a, b, c, d);
     159    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     160        !__builtin_mips_lower_c_eq_ps (e, c))
     161      abort ();
     162    e = test7 (a, b, c, d);
     163    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     164        !__builtin_mips_lower_c_eq_ps (e, d))
     165      abort ();
     166  
     167    e = test8 (a, b, c, d);
     168    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     169        !__builtin_mips_lower_c_eq_ps (e, d))
     170      abort ();
     171    e = test9 (a, b, c, d);
     172    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     173        !__builtin_mips_lower_c_eq_ps (e, c))
     174      abort ();
     175  
     176    e = test10 (a, b, c, d);
     177    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     178        !__builtin_mips_lower_c_eq_ps (e, d))
     179      abort ();
     180    e = test11 (a, b, c, d);
     181    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     182        !__builtin_mips_lower_c_eq_ps (e, c))
     183      abort ();
     184  
     185    e = test12 (a, b, c, d);
     186    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     187        !__builtin_mips_lower_c_eq_ps (e, d))
     188      abort ();
     189    e = test13 (a, b, c, d);
     190    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     191        !__builtin_mips_lower_c_eq_ps (e, c))
     192      abort ();
     193  
     194    e = test14 (a, b, c, d);
     195    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     196        !__builtin_mips_lower_c_eq_ps (e, d))
     197      abort ();
     198    e = test15 (a, b, c, d);
     199    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     200        !__builtin_mips_lower_c_eq_ps (e, c))
     201      abort ();
     202  
     203    e = test16 (a, b, c, d);
     204    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     205        !__builtin_mips_lower_c_eq_ps (e, c))
     206      abort ();
     207    e = test17 (a, b, c, d);
     208    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     209        !__builtin_mips_lower_c_eq_ps (e, d))
     210      abort ();
     211  
     212    e = test18 (a, b, c, d);
     213    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     214        !__builtin_mips_lower_c_eq_ps (e, c))
     215      abort ();
     216    e = test19 (a, b, c, d);
     217    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     218        !__builtin_mips_lower_c_eq_ps (e, d))
     219      abort ();
     220  
     221    e = test20 (a, b, c, d);
     222    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     223        !__builtin_mips_lower_c_eq_ps (e, c))
     224      abort ();
     225    e = test21 (a, b, c, d);
     226    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     227        !__builtin_mips_lower_c_eq_ps (e, d))
     228      abort ();
     229  
     230    e = test22 (a, b, c, d);
     231    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     232        !__builtin_mips_lower_c_eq_ps (e, c))
     233      abort ();
     234    e = test23 (a, b, c, d);
     235    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     236        !__builtin_mips_lower_c_eq_ps (e, d))
     237      abort ();
     238  
     239    e = test24 (a, b, c, d);
     240    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     241        !__builtin_mips_lower_c_eq_ps (e, d))
     242      abort ();
     243    e = test25 (a, b, c, d);
     244    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     245        !__builtin_mips_lower_c_eq_ps (e, c))
     246      abort ();
     247  
     248    e = test26 (a, b, c, d);
     249    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     250        !__builtin_mips_lower_c_eq_ps (e, d))
     251      abort ();
     252    e = test27 (a, b, c, d);
     253    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     254        !__builtin_mips_lower_c_eq_ps (e, c))
     255      abort ();
     256  
     257    e = test28 (a, b, c, d);
     258    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     259        !__builtin_mips_lower_c_eq_ps (e, d))
     260      abort ();
     261    e = test29 (a, b, c, d);
     262    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     263        !__builtin_mips_lower_c_eq_ps (e, c))
     264      abort ();
     265  
     266    e = test30 (a, b, c, d);
     267    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     268        !__builtin_mips_lower_c_eq_ps (e, d))
     269      abort ();
     270    e = test31 (a, b, c, d);
     271    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     272        !__builtin_mips_lower_c_eq_ps (e, c))
     273      abort ();
     274  
     275    /* Test all 16 operators with (b, a) */
     276    a = (v2sf) {123, 123};
     277    b = (v2sf) {1000, 1000};
     278    c = (v2sf) {33, 123};
     279    d = (v2sf) {8, 78};
     280    e = test0 (b, a, c, d);
     281    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     282        !__builtin_mips_lower_c_eq_ps (e, c))
     283      abort ();
     284    e = test1 (b, a, c, d);
     285    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     286        !__builtin_mips_lower_c_eq_ps (e, d))
     287      abort ();
     288  
     289    e = test2 (b, a, c, d);
     290    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     291        !__builtin_mips_lower_c_eq_ps (e, c))
     292      abort ();
     293    e = test3 (b, a, c, d);
     294    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     295        !__builtin_mips_lower_c_eq_ps (e, d))
     296      abort ();
     297  
     298    e = test4 (b, a, c, d);
     299    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     300        !__builtin_mips_lower_c_eq_ps (e, c))
     301      abort ();
     302    e = test5 (b, a, c, d);
     303    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     304        !__builtin_mips_lower_c_eq_ps (e, d))
     305      abort ();
     306  
     307    e = test6 (b, a, c, d);
     308    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     309        !__builtin_mips_lower_c_eq_ps (e, c))
     310      abort ();
     311    e = test7 (b, a, c, d);
     312    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     313        !__builtin_mips_lower_c_eq_ps (e, d))
     314      abort ();
     315  
     316    e = test8 (b, a, c, d);
     317    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     318        !__builtin_mips_lower_c_eq_ps (e, c))
     319      abort ();
     320    e = test9 (b, a, c, d);
     321    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     322        !__builtin_mips_lower_c_eq_ps (e, d))
     323      abort ();
     324  
     325    e = test10 (b, a, c, d);
     326    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     327        !__builtin_mips_lower_c_eq_ps (e, c))
     328      abort ();
     329    e = test11 (b, a, c, d);
     330    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     331        !__builtin_mips_lower_c_eq_ps (e, d))
     332      abort ();
     333  
     334    e = test12 (b, a, c, d);
     335    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     336        !__builtin_mips_lower_c_eq_ps (e, c))
     337      abort ();
     338    e = test13 (b, a, c, d);
     339    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     340        !__builtin_mips_lower_c_eq_ps (e, d))
     341      abort ();
     342  
     343    e = test14 (b, a, c, d);
     344    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     345        !__builtin_mips_lower_c_eq_ps (e, c))
     346      abort ();
     347    e = test15 (b, a, c, d);
     348    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     349        !__builtin_mips_lower_c_eq_ps (e, d))
     350      abort ();
     351  
     352    e = test16 (b, a, c, d);
     353    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     354        !__builtin_mips_lower_c_eq_ps (e, c))
     355      abort ();
     356    e = test17 (b, a, c, d);
     357    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     358        !__builtin_mips_lower_c_eq_ps (e, d))
     359      abort ();
     360  
     361    e = test18 (b, a, c, d);
     362    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     363        !__builtin_mips_lower_c_eq_ps (e, c))
     364      abort ();
     365    e = test19 (b, a, c, d);
     366    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     367        !__builtin_mips_lower_c_eq_ps (e, d))
     368      abort ();
     369  
     370    e = test20 (b, a, c, d);
     371    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     372        !__builtin_mips_lower_c_eq_ps (e, c))
     373      abort ();
     374    e = test21 (b, a, c, d);
     375    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     376        !__builtin_mips_lower_c_eq_ps (e, d))
     377      abort ();
     378  
     379    e = test22 (b, a, c, d);
     380    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     381        !__builtin_mips_lower_c_eq_ps (e, c))
     382      abort ();
     383    e = test23 (b, a, c, d);
     384    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     385        !__builtin_mips_lower_c_eq_ps (e, d))
     386      abort ();
     387  
     388    e = test24 (b, a, c, d);
     389    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     390        !__builtin_mips_lower_c_eq_ps (e, c))
     391      abort ();
     392    e = test25 (b, a, c, d);
     393    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     394        !__builtin_mips_lower_c_eq_ps (e, d))
     395      abort ();
     396  
     397    e = test26 (b, a, c, d);
     398    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     399        !__builtin_mips_lower_c_eq_ps (e, c))
     400      abort ();
     401    e = test27 (b, a, c, d);
     402    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     403        !__builtin_mips_lower_c_eq_ps (e, d))
     404      abort ();
     405  
     406    e = test28 (b, a, c, d);
     407    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     408        !__builtin_mips_lower_c_eq_ps (e, c))
     409      abort ();
     410    e = test29 (b, a, c, d);
     411    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     412        !__builtin_mips_lower_c_eq_ps (e, d))
     413      abort ();
     414  
     415    e = test30 (b, a, c, d);
     416    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     417        !__builtin_mips_lower_c_eq_ps (e, c))
     418      abort ();
     419    e = test31 (b, a, c, d);
     420    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     421        !__builtin_mips_lower_c_eq_ps (e, d))
     422      abort ();
     423  
     424  #ifndef __FAST_MATH__
     425    /* Test with NaN */
     426    a = (v2sf) {qnan, qnan};
     427    b = (v2sf) {1000, 1000};
     428    c = (v2sf) {33, 123};
     429    d = (v2sf) {8, 78};
     430    e = test0 (a, b, c, d);
     431    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     432        !__builtin_mips_lower_c_eq_ps (e, c))
     433      abort ();
     434    e = test1 (a, b, c, d);
     435    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     436        !__builtin_mips_lower_c_eq_ps (e, d))
     437      abort ();
     438  
     439    e = test2 (a, b, c, d);
     440    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     441        !__builtin_mips_lower_c_eq_ps (e, d))
     442      abort ();
     443    e = test3 (a, b, c, d);
     444    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     445        !__builtin_mips_lower_c_eq_ps (e, c))
     446      abort ();
     447  
     448    e = test4 (a, b, c, d);
     449    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     450        !__builtin_mips_lower_c_eq_ps (e, c))
     451      abort ();
     452    e = test5 (a, b, c, d);
     453    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     454        !__builtin_mips_lower_c_eq_ps (e, d))
     455      abort ();
     456  
     457    e = test6 (a, b, c, d);
     458    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     459        !__builtin_mips_lower_c_eq_ps (e, d))
     460      abort ();
     461    e = test7 (a, b, c, d);
     462    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     463        !__builtin_mips_lower_c_eq_ps (e, c))
     464      abort ();
     465  
     466    e = test8 (a, b, c, d);
     467    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     468        !__builtin_mips_lower_c_eq_ps (e, c))
     469      abort ();
     470    e = test9 (a, b, c, d);
     471    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     472        !__builtin_mips_lower_c_eq_ps (e, d))
     473      abort ();
     474  
     475    e = test10 (a, b, c, d);
     476    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     477        !__builtin_mips_lower_c_eq_ps (e, d))
     478      abort ();
     479    e = test11 (a, b, c, d);
     480    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     481        !__builtin_mips_lower_c_eq_ps (e, c))
     482      abort ();
     483  
     484    e = test12 (a, b, c, d);
     485    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     486        !__builtin_mips_lower_c_eq_ps (e, c))
     487      abort ();
     488    e = test13 (a, b, c, d);
     489    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     490        !__builtin_mips_lower_c_eq_ps (e, d))
     491      abort ();
     492  
     493    e = test14 (a, b, c, d);
     494    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     495        !__builtin_mips_lower_c_eq_ps (e, d))
     496      abort ();
     497    e = test15 (a, b, c, d);
     498    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     499        !__builtin_mips_lower_c_eq_ps (e, c))
     500      abort ();
     501  
     502    e = test16 (a, b, c, d);
     503    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     504        !__builtin_mips_lower_c_eq_ps (e, c))
     505      abort ();
     506    e = test17 (a, b, c, d);
     507    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     508        !__builtin_mips_lower_c_eq_ps (e, d))
     509      abort ();
     510  
     511    e = test18 (a, b, c, d);
     512    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     513        !__builtin_mips_lower_c_eq_ps (e, d))
     514      abort ();
     515    e = test19 (a, b, c, d);
     516    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     517        !__builtin_mips_lower_c_eq_ps (e, c))
     518      abort ();
     519  
     520    e = test20 (a, b, c, d);
     521    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     522        !__builtin_mips_lower_c_eq_ps (e, c))
     523      abort ();
     524    e = test21 (a, b, c, d);
     525    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     526        !__builtin_mips_lower_c_eq_ps (e, d))
     527      abort ();
     528  
     529    e = test22 (a, b, c, d);
     530    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     531        !__builtin_mips_lower_c_eq_ps (e, d))
     532      abort ();
     533    e = test23 (a, b, c, d);
     534    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     535        !__builtin_mips_lower_c_eq_ps (e, c))
     536      abort ();
     537  
     538    e = test24 (a, b, c, d);
     539    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     540        !__builtin_mips_lower_c_eq_ps (e, c))
     541      abort ();
     542    e = test25 (a, b, c, d);
     543    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     544        !__builtin_mips_lower_c_eq_ps (e, d))
     545      abort ();
     546  
     547    e = test26 (a, b, c, d);
     548    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     549        !__builtin_mips_lower_c_eq_ps (e, d))
     550      abort ();
     551    e = test27 (a, b, c, d);
     552    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     553        !__builtin_mips_lower_c_eq_ps (e, c))
     554      abort ();
     555  
     556    e = test28 (a, b, c, d);
     557    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     558        !__builtin_mips_lower_c_eq_ps (e, c))
     559      abort ();
     560    e = test29 (a, b, c, d);
     561    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     562        !__builtin_mips_lower_c_eq_ps (e, d))
     563      abort ();
     564  
     565    e = test30 (a, b, c, d);
     566    if (!__builtin_mips_upper_c_eq_ps (e, d) || 
     567        !__builtin_mips_lower_c_eq_ps (e, d))
     568      abort ();
     569    e = test31 (a, b, c, d);
     570    if (!__builtin_mips_upper_c_eq_ps (e, c) || 
     571        !__builtin_mips_lower_c_eq_ps (e, c))
     572      abort ();
     573  #endif
     574  
     575    printf ("Test Passes\n");
     576    exit (0);
     577  }
     578  
     579  NOMIPS16 v2sf test0 (v2sf a, v2sf b, v2sf c, v2sf d)
     580  {
     581    return __builtin_mips_movt_c_f_ps (a, b, c, d);
     582  }
     583  
     584  NOMIPS16 v2sf test1 (v2sf a, v2sf b, v2sf c, v2sf d)
     585  {
     586    return __builtin_mips_movf_c_f_ps (a, b, c, d);
     587  }
     588  
     589  NOMIPS16 v2sf test2 (v2sf a, v2sf b, v2sf c, v2sf d)
     590  {
     591    return __builtin_mips_movt_c_un_ps (a, b, c, d);
     592  }
     593  
     594  NOMIPS16 v2sf test3 (v2sf a, v2sf b, v2sf c, v2sf d)
     595  {
     596    return __builtin_mips_movf_c_un_ps (a, b, c, d);
     597  }
     598  
     599  NOMIPS16 v2sf test4 (v2sf a, v2sf b, v2sf c, v2sf d)
     600  {
     601    return __builtin_mips_movt_c_eq_ps (a, b, c, d);
     602  }
     603  
     604  NOMIPS16 v2sf test5 (v2sf a, v2sf b, v2sf c, v2sf d)
     605  {
     606    return __builtin_mips_movf_c_eq_ps (a, b, c, d);
     607  }
     608  
     609  NOMIPS16 v2sf test6 (v2sf a, v2sf b, v2sf c, v2sf d)
     610  {
     611    return __builtin_mips_movt_c_ueq_ps (a, b, c, d);
     612  }
     613  
     614  NOMIPS16 v2sf test7 (v2sf a, v2sf b, v2sf c, v2sf d)
     615  {
     616    return __builtin_mips_movf_c_ueq_ps (a, b, c, d);
     617  }
     618  
     619  NOMIPS16 v2sf test8 (v2sf a, v2sf b, v2sf c, v2sf d)
     620  {
     621    return __builtin_mips_movt_c_olt_ps (a, b, c, d);
     622  }
     623  
     624  NOMIPS16 v2sf test9 (v2sf a, v2sf b, v2sf c, v2sf d)
     625  {
     626    return __builtin_mips_movf_c_olt_ps (a, b, c, d);
     627  }
     628  
     629  NOMIPS16 v2sf test10 (v2sf a, v2sf b, v2sf c, v2sf d)
     630  {
     631    return __builtin_mips_movt_c_ult_ps (a, b, c, d);
     632  }
     633  
     634  NOMIPS16 v2sf test11 (v2sf a, v2sf b, v2sf c, v2sf d)
     635  {
     636    return __builtin_mips_movf_c_ult_ps (a, b, c, d);
     637  }
     638  
     639  NOMIPS16 v2sf test12 (v2sf a, v2sf b, v2sf c, v2sf d)
     640  {
     641    return __builtin_mips_movt_c_ole_ps (a, b, c, d);
     642  }
     643  
     644  NOMIPS16 v2sf test13 (v2sf a, v2sf b, v2sf c, v2sf d)
     645  {
     646    return __builtin_mips_movf_c_ole_ps (a, b, c, d);
     647  }
     648  
     649  NOMIPS16 v2sf test14 (v2sf a, v2sf b, v2sf c, v2sf d)
     650  {
     651    return __builtin_mips_movt_c_ule_ps (a, b, c, d);
     652  }
     653  
     654  NOMIPS16 v2sf test15 (v2sf a, v2sf b, v2sf c, v2sf d)
     655  {
     656    return __builtin_mips_movf_c_ule_ps (a, b, c, d);
     657  }
     658  
     659  NOMIPS16 v2sf test16 (v2sf a, v2sf b, v2sf c, v2sf d)
     660  {
     661    return __builtin_mips_movt_c_sf_ps (a, b, c, d);
     662  }
     663  
     664  NOMIPS16 v2sf test17 (v2sf a, v2sf b, v2sf c, v2sf d)
     665  {
     666    return __builtin_mips_movf_c_sf_ps (a, b, c, d);
     667  }
     668  
     669  NOMIPS16 v2sf test18 (v2sf a, v2sf b, v2sf c, v2sf d)
     670  {
     671    return __builtin_mips_movt_c_ngle_ps (a, b, c, d);
     672  }
     673  
     674  NOMIPS16 v2sf test19 (v2sf a, v2sf b, v2sf c, v2sf d)
     675  {
     676    return __builtin_mips_movf_c_ngle_ps (a, b, c, d);
     677  }
     678  
     679  NOMIPS16 v2sf test20 (v2sf a, v2sf b, v2sf c, v2sf d)
     680  {
     681    return __builtin_mips_movt_c_seq_ps (a, b, c, d);
     682  }
     683  
     684  NOMIPS16 v2sf test21 (v2sf a, v2sf b, v2sf c, v2sf d)
     685  {
     686    return __builtin_mips_movf_c_seq_ps (a, b, c, d);
     687  }
     688  
     689  NOMIPS16 v2sf test22 (v2sf a, v2sf b, v2sf c, v2sf d)
     690  {
     691    return __builtin_mips_movt_c_ngl_ps (a, b, c, d);
     692  }
     693  
     694  NOMIPS16 v2sf test23 (v2sf a, v2sf b, v2sf c, v2sf d)
     695  {
     696    return __builtin_mips_movf_c_ngl_ps (a, b, c, d);
     697  }
     698  
     699  NOMIPS16 v2sf test24 (v2sf a, v2sf b, v2sf c, v2sf d)
     700  {
     701    return __builtin_mips_movt_c_lt_ps (a, b, c, d);
     702  }
     703  
     704  NOMIPS16 v2sf test25 (v2sf a, v2sf b, v2sf c, v2sf d)
     705  {
     706    return __builtin_mips_movf_c_lt_ps (a, b, c, d);
     707  }
     708  
     709  NOMIPS16 v2sf test26 (v2sf a, v2sf b, v2sf c, v2sf d)
     710  {
     711    return __builtin_mips_movt_c_nge_ps (a, b, c, d);
     712  }
     713  
     714  NOMIPS16 v2sf test27 (v2sf a, v2sf b, v2sf c, v2sf d)
     715  {
     716    return __builtin_mips_movf_c_nge_ps (a, b, c, d);
     717  }
     718  
     719  NOMIPS16 v2sf test28 (v2sf a, v2sf b, v2sf c, v2sf d)
     720  {
     721    return __builtin_mips_movt_c_le_ps (a, b, c, d);
     722  }
     723  
     724  NOMIPS16 v2sf test29 (v2sf a, v2sf b, v2sf c, v2sf d)
     725  {
     726    return __builtin_mips_movf_c_le_ps (a, b, c, d);
     727  }
     728  
     729  NOMIPS16 v2sf test30 (v2sf a, v2sf b, v2sf c, v2sf d)
     730  {
     731    return __builtin_mips_movt_c_ngt_ps (a, b, c, d);
     732  }
     733  
     734  NOMIPS16 v2sf test31 (v2sf a, v2sf b, v2sf c, v2sf d)
     735  {
     736    return __builtin_mips_movf_c_ngt_ps (a, b, c, d);
     737  }