(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
upper-regs-df.c
       1  /* { dg-do compile { target { powerpc*-*-* } } } */
       2  /* { dg-require-effective-target powerpc_vsx_ok } */
       3  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
       4  /* { dg-options "-mdejagnu-cpu=power7 -O2" } */
       5  
       6  /* Test to make sure double values are allocated to the Altivec registers as
       7     well as the traditional FPR registers.  */
       8  
       9  #ifndef TYPE
      10  #define TYPE double
      11  #endif
      12  
      13  #ifndef MASK_TYPE
      14  #define MASK_TYPE unsigned long long
      15  #endif
      16  
      17  #define MASK_ONE	((MASK_TYPE)1)
      18  #define ZERO		((TYPE) 0.0)
      19  
      20  TYPE
      21  test_add (const MASK_TYPE *add_mask, const TYPE *add_values,
      22  	  const MASK_TYPE *sub_mask, const TYPE *sub_values,
      23  	  const MASK_TYPE *mul_mask, const TYPE *mul_values,
      24  	  const MASK_TYPE *div_mask, const TYPE *div_values,
      25  	  const MASK_TYPE *eq0_mask, int *eq0_ptr)
      26  {
      27    TYPE value;
      28    TYPE value00	= ZERO;
      29    TYPE value01	= ZERO;
      30    TYPE value02	= ZERO;
      31    TYPE value03	= ZERO;
      32    TYPE value04	= ZERO;
      33    TYPE value05	= ZERO;
      34    TYPE value06	= ZERO;
      35    TYPE value07	= ZERO;
      36    TYPE value08	= ZERO;
      37    TYPE value09	= ZERO;
      38    TYPE value10	= ZERO;
      39    TYPE value11	= ZERO;
      40    TYPE value12	= ZERO;
      41    TYPE value13	= ZERO;
      42    TYPE value14	= ZERO;
      43    TYPE value15	= ZERO;
      44    TYPE value16	= ZERO;
      45    TYPE value17	= ZERO;
      46    TYPE value18	= ZERO;
      47    TYPE value19	= ZERO;
      48    TYPE value20	= ZERO;
      49    TYPE value21	= ZERO;
      50    TYPE value22	= ZERO;
      51    TYPE value23	= ZERO;
      52    TYPE value24	= ZERO;
      53    TYPE value25	= ZERO;
      54    TYPE value26	= ZERO;
      55    TYPE value27	= ZERO;
      56    TYPE value28	= ZERO;
      57    TYPE value29	= ZERO;
      58    TYPE value30	= ZERO;
      59    TYPE value31	= ZERO;
      60    TYPE value32	= ZERO;
      61    TYPE value33	= ZERO;
      62    TYPE value34	= ZERO;
      63    TYPE value35	= ZERO;
      64    TYPE value36	= ZERO;
      65    TYPE value37	= ZERO;
      66    TYPE value38	= ZERO;
      67    TYPE value39	= ZERO;
      68    MASK_TYPE mask;
      69    int eq0;
      70  
      71    while ((mask = *add_mask++) != 0)
      72      {
      73        value = *add_values++;
      74  
      75        __asm__ (" #reg %0" : "+d" (value));
      76  
      77        if ((mask & (MASK_ONE <<  0)) != 0)
      78  	value00 += value;
      79  
      80        if ((mask & (MASK_ONE <<  1)) != 0)
      81  	value01 += value;
      82  
      83        if ((mask & (MASK_ONE <<  2)) != 0)
      84  	value02 += value;
      85  
      86        if ((mask & (MASK_ONE <<  3)) != 0)
      87  	value03 += value;
      88  
      89        if ((mask & (MASK_ONE <<  4)) != 0)
      90  	value04 += value;
      91  
      92        if ((mask & (MASK_ONE <<  5)) != 0)
      93  	value05 += value;
      94  
      95        if ((mask & (MASK_ONE <<  6)) != 0)
      96  	value06 += value;
      97  
      98        if ((mask & (MASK_ONE <<  7)) != 0)
      99  	value07 += value;
     100  
     101        if ((mask & (MASK_ONE <<  8)) != 0)
     102  	value08 += value;
     103  
     104        if ((mask & (MASK_ONE <<  9)) != 0)
     105  	value09 += value;
     106  
     107        if ((mask & (MASK_ONE << 10)) != 0)
     108  	value10 += value;
     109  
     110        if ((mask & (MASK_ONE << 11)) != 0)
     111  	value11 += value;
     112  
     113        if ((mask & (MASK_ONE << 12)) != 0)
     114  	value12 += value;
     115  
     116        if ((mask & (MASK_ONE << 13)) != 0)
     117  	value13 += value;
     118  
     119        if ((mask & (MASK_ONE << 14)) != 0)
     120  	value14 += value;
     121  
     122        if ((mask & (MASK_ONE << 15)) != 0)
     123  	value15 += value;
     124  
     125        if ((mask & (MASK_ONE << 16)) != 0)
     126  	value16 += value;
     127  
     128        if ((mask & (MASK_ONE << 17)) != 0)
     129  	value17 += value;
     130  
     131        if ((mask & (MASK_ONE << 18)) != 0)
     132  	value18 += value;
     133  
     134        if ((mask & (MASK_ONE << 19)) != 0)
     135  	value19 += value;
     136  
     137        if ((mask & (MASK_ONE << 20)) != 0)
     138  	value20 += value;
     139  
     140        if ((mask & (MASK_ONE << 21)) != 0)
     141  	value21 += value;
     142  
     143        if ((mask & (MASK_ONE << 22)) != 0)
     144  	value22 += value;
     145  
     146        if ((mask & (MASK_ONE << 23)) != 0)
     147  	value23 += value;
     148  
     149        if ((mask & (MASK_ONE << 24)) != 0)
     150  	value24 += value;
     151  
     152        if ((mask & (MASK_ONE << 25)) != 0)
     153  	value25 += value;
     154  
     155        if ((mask & (MASK_ONE << 26)) != 0)
     156  	value26 += value;
     157  
     158        if ((mask & (MASK_ONE << 27)) != 0)
     159  	value27 += value;
     160  
     161        if ((mask & (MASK_ONE << 28)) != 0)
     162  	value28 += value;
     163  
     164        if ((mask & (MASK_ONE << 29)) != 0)
     165  	value29 += value;
     166  
     167        if ((mask & (MASK_ONE << 30)) != 0)
     168  	value30 += value;
     169  
     170        if ((mask & (MASK_ONE << 31)) != 0)
     171  	value31 += value;
     172  
     173        if ((mask & (MASK_ONE << 32)) != 0)
     174  	value32 += value;
     175  
     176        if ((mask & (MASK_ONE << 33)) != 0)
     177  	value33 += value;
     178  
     179        if ((mask & (MASK_ONE << 34)) != 0)
     180  	value34 += value;
     181  
     182        if ((mask & (MASK_ONE << 35)) != 0)
     183  	value35 += value;
     184  
     185        if ((mask & (MASK_ONE << 36)) != 0)
     186  	value36 += value;
     187  
     188        if ((mask & (MASK_ONE << 37)) != 0)
     189  	value37 += value;
     190  
     191        if ((mask & (MASK_ONE << 38)) != 0)
     192  	value38 += value;
     193  
     194        if ((mask & (MASK_ONE << 39)) != 0)
     195  	value39 += value;
     196      }
     197  
     198    while ((mask = *sub_mask++) != 0)
     199      {
     200        value = *sub_values++;
     201  
     202        __asm__ (" #reg %0" : "+d" (value));
     203  
     204        if ((mask & (MASK_ONE <<  0)) != 0)
     205  	value00 -= value;
     206  
     207        if ((mask & (MASK_ONE <<  1)) != 0)
     208  	value01 -= value;
     209  
     210        if ((mask & (MASK_ONE <<  2)) != 0)
     211  	value02 -= value;
     212  
     213        if ((mask & (MASK_ONE <<  3)) != 0)
     214  	value03 -= value;
     215  
     216        if ((mask & (MASK_ONE <<  4)) != 0)
     217  	value04 -= value;
     218  
     219        if ((mask & (MASK_ONE <<  5)) != 0)
     220  	value05 -= value;
     221  
     222        if ((mask & (MASK_ONE <<  6)) != 0)
     223  	value06 -= value;
     224  
     225        if ((mask & (MASK_ONE <<  7)) != 0)
     226  	value07 -= value;
     227  
     228        if ((mask & (MASK_ONE <<  8)) != 0)
     229  	value08 -= value;
     230  
     231        if ((mask & (MASK_ONE <<  9)) != 0)
     232  	value09 -= value;
     233  
     234        if ((mask & (MASK_ONE << 10)) != 0)
     235  	value10 -= value;
     236  
     237        if ((mask & (MASK_ONE << 11)) != 0)
     238  	value11 -= value;
     239  
     240        if ((mask & (MASK_ONE << 12)) != 0)
     241  	value12 -= value;
     242  
     243        if ((mask & (MASK_ONE << 13)) != 0)
     244  	value13 -= value;
     245  
     246        if ((mask & (MASK_ONE << 14)) != 0)
     247  	value14 -= value;
     248  
     249        if ((mask & (MASK_ONE << 15)) != 0)
     250  	value15 -= value;
     251  
     252        if ((mask & (MASK_ONE << 16)) != 0)
     253  	value16 -= value;
     254  
     255        if ((mask & (MASK_ONE << 17)) != 0)
     256  	value17 -= value;
     257  
     258        if ((mask & (MASK_ONE << 18)) != 0)
     259  	value18 -= value;
     260  
     261        if ((mask & (MASK_ONE << 19)) != 0)
     262  	value19 -= value;
     263  
     264        if ((mask & (MASK_ONE << 20)) != 0)
     265  	value20 -= value;
     266  
     267        if ((mask & (MASK_ONE << 21)) != 0)
     268  	value21 -= value;
     269  
     270        if ((mask & (MASK_ONE << 22)) != 0)
     271  	value22 -= value;
     272  
     273        if ((mask & (MASK_ONE << 23)) != 0)
     274  	value23 -= value;
     275  
     276        if ((mask & (MASK_ONE << 24)) != 0)
     277  	value24 -= value;
     278  
     279        if ((mask & (MASK_ONE << 25)) != 0)
     280  	value25 -= value;
     281  
     282        if ((mask & (MASK_ONE << 26)) != 0)
     283  	value26 -= value;
     284  
     285        if ((mask & (MASK_ONE << 27)) != 0)
     286  	value27 -= value;
     287  
     288        if ((mask & (MASK_ONE << 28)) != 0)
     289  	value28 -= value;
     290  
     291        if ((mask & (MASK_ONE << 29)) != 0)
     292  	value29 -= value;
     293  
     294        if ((mask & (MASK_ONE << 30)) != 0)
     295  	value30 -= value;
     296  
     297        if ((mask & (MASK_ONE << 31)) != 0)
     298  	value31 -= value;
     299  
     300        if ((mask & (MASK_ONE << 32)) != 0)
     301  	value32 -= value;
     302  
     303        if ((mask & (MASK_ONE << 33)) != 0)
     304  	value33 -= value;
     305  
     306        if ((mask & (MASK_ONE << 34)) != 0)
     307  	value34 -= value;
     308  
     309        if ((mask & (MASK_ONE << 35)) != 0)
     310  	value35 -= value;
     311  
     312        if ((mask & (MASK_ONE << 36)) != 0)
     313  	value36 -= value;
     314  
     315        if ((mask & (MASK_ONE << 37)) != 0)
     316  	value37 -= value;
     317  
     318        if ((mask & (MASK_ONE << 38)) != 0)
     319  	value38 -= value;
     320  
     321        if ((mask & (MASK_ONE << 39)) != 0)
     322  	value39 -= value;
     323      }
     324  
     325    while ((mask = *mul_mask++) != 0)
     326      {
     327        value = *mul_values++;
     328  
     329        __asm__ (" #reg %0" : "+d" (value));
     330  
     331        if ((mask & (MASK_ONE <<  0)) != 0)
     332  	value00 *= value;
     333  
     334        if ((mask & (MASK_ONE <<  1)) != 0)
     335  	value01 *= value;
     336  
     337        if ((mask & (MASK_ONE <<  2)) != 0)
     338  	value02 *= value;
     339  
     340        if ((mask & (MASK_ONE <<  3)) != 0)
     341  	value03 *= value;
     342  
     343        if ((mask & (MASK_ONE <<  4)) != 0)
     344  	value04 *= value;
     345  
     346        if ((mask & (MASK_ONE <<  5)) != 0)
     347  	value05 *= value;
     348  
     349        if ((mask & (MASK_ONE <<  6)) != 0)
     350  	value06 *= value;
     351  
     352        if ((mask & (MASK_ONE <<  7)) != 0)
     353  	value07 *= value;
     354  
     355        if ((mask & (MASK_ONE <<  8)) != 0)
     356  	value08 *= value;
     357  
     358        if ((mask & (MASK_ONE <<  9)) != 0)
     359  	value09 *= value;
     360  
     361        if ((mask & (MASK_ONE << 10)) != 0)
     362  	value10 *= value;
     363  
     364        if ((mask & (MASK_ONE << 11)) != 0)
     365  	value11 *= value;
     366  
     367        if ((mask & (MASK_ONE << 12)) != 0)
     368  	value12 *= value;
     369  
     370        if ((mask & (MASK_ONE << 13)) != 0)
     371  	value13 *= value;
     372  
     373        if ((mask & (MASK_ONE << 14)) != 0)
     374  	value14 *= value;
     375  
     376        if ((mask & (MASK_ONE << 15)) != 0)
     377  	value15 *= value;
     378  
     379        if ((mask & (MASK_ONE << 16)) != 0)
     380  	value16 *= value;
     381  
     382        if ((mask & (MASK_ONE << 17)) != 0)
     383  	value17 *= value;
     384  
     385        if ((mask & (MASK_ONE << 18)) != 0)
     386  	value18 *= value;
     387  
     388        if ((mask & (MASK_ONE << 19)) != 0)
     389  	value19 *= value;
     390  
     391        if ((mask & (MASK_ONE << 20)) != 0)
     392  	value20 *= value;
     393  
     394        if ((mask & (MASK_ONE << 21)) != 0)
     395  	value21 *= value;
     396  
     397        if ((mask & (MASK_ONE << 22)) != 0)
     398  	value22 *= value;
     399  
     400        if ((mask & (MASK_ONE << 23)) != 0)
     401  	value23 *= value;
     402  
     403        if ((mask & (MASK_ONE << 24)) != 0)
     404  	value24 *= value;
     405  
     406        if ((mask & (MASK_ONE << 25)) != 0)
     407  	value25 *= value;
     408  
     409        if ((mask & (MASK_ONE << 26)) != 0)
     410  	value26 *= value;
     411  
     412        if ((mask & (MASK_ONE << 27)) != 0)
     413  	value27 *= value;
     414  
     415        if ((mask & (MASK_ONE << 28)) != 0)
     416  	value28 *= value;
     417  
     418        if ((mask & (MASK_ONE << 29)) != 0)
     419  	value29 *= value;
     420  
     421        if ((mask & (MASK_ONE << 30)) != 0)
     422  	value30 *= value;
     423  
     424        if ((mask & (MASK_ONE << 31)) != 0)
     425  	value31 *= value;
     426  
     427        if ((mask & (MASK_ONE << 32)) != 0)
     428  	value32 *= value;
     429  
     430        if ((mask & (MASK_ONE << 33)) != 0)
     431  	value33 *= value;
     432  
     433        if ((mask & (MASK_ONE << 34)) != 0)
     434  	value34 *= value;
     435  
     436        if ((mask & (MASK_ONE << 35)) != 0)
     437  	value35 *= value;
     438  
     439        if ((mask & (MASK_ONE << 36)) != 0)
     440  	value36 *= value;
     441  
     442        if ((mask & (MASK_ONE << 37)) != 0)
     443  	value37 *= value;
     444  
     445        if ((mask & (MASK_ONE << 38)) != 0)
     446  	value38 *= value;
     447  
     448        if ((mask & (MASK_ONE << 39)) != 0)
     449  	value39 *= value;
     450      }
     451  
     452    while ((mask = *div_mask++) != 0)
     453      {
     454        value = *div_values++;
     455  
     456        __asm__ (" #reg %0" : "+d" (value));
     457  
     458        if ((mask & (MASK_ONE <<  0)) != 0)
     459  	value00 /= value;
     460  
     461        if ((mask & (MASK_ONE <<  1)) != 0)
     462  	value01 /= value;
     463  
     464        if ((mask & (MASK_ONE <<  2)) != 0)
     465  	value02 /= value;
     466  
     467        if ((mask & (MASK_ONE <<  3)) != 0)
     468  	value03 /= value;
     469  
     470        if ((mask & (MASK_ONE <<  4)) != 0)
     471  	value04 /= value;
     472  
     473        if ((mask & (MASK_ONE <<  5)) != 0)
     474  	value05 /= value;
     475  
     476        if ((mask & (MASK_ONE <<  6)) != 0)
     477  	value06 /= value;
     478  
     479        if ((mask & (MASK_ONE <<  7)) != 0)
     480  	value07 /= value;
     481  
     482        if ((mask & (MASK_ONE <<  8)) != 0)
     483  	value08 /= value;
     484  
     485        if ((mask & (MASK_ONE <<  9)) != 0)
     486  	value09 /= value;
     487  
     488        if ((mask & (MASK_ONE << 10)) != 0)
     489  	value10 /= value;
     490  
     491        if ((mask & (MASK_ONE << 11)) != 0)
     492  	value11 /= value;
     493  
     494        if ((mask & (MASK_ONE << 12)) != 0)
     495  	value12 /= value;
     496  
     497        if ((mask & (MASK_ONE << 13)) != 0)
     498  	value13 /= value;
     499  
     500        if ((mask & (MASK_ONE << 14)) != 0)
     501  	value14 /= value;
     502  
     503        if ((mask & (MASK_ONE << 15)) != 0)
     504  	value15 /= value;
     505  
     506        if ((mask & (MASK_ONE << 16)) != 0)
     507  	value16 /= value;
     508  
     509        if ((mask & (MASK_ONE << 17)) != 0)
     510  	value17 /= value;
     511  
     512        if ((mask & (MASK_ONE << 18)) != 0)
     513  	value18 /= value;
     514  
     515        if ((mask & (MASK_ONE << 19)) != 0)
     516  	value19 /= value;
     517  
     518        if ((mask & (MASK_ONE << 20)) != 0)
     519  	value20 /= value;
     520  
     521        if ((mask & (MASK_ONE << 21)) != 0)
     522  	value21 /= value;
     523  
     524        if ((mask & (MASK_ONE << 22)) != 0)
     525  	value22 /= value;
     526  
     527        if ((mask & (MASK_ONE << 23)) != 0)
     528  	value23 /= value;
     529  
     530        if ((mask & (MASK_ONE << 24)) != 0)
     531  	value24 /= value;
     532  
     533        if ((mask & (MASK_ONE << 25)) != 0)
     534  	value25 /= value;
     535  
     536        if ((mask & (MASK_ONE << 26)) != 0)
     537  	value26 /= value;
     538  
     539        if ((mask & (MASK_ONE << 27)) != 0)
     540  	value27 /= value;
     541  
     542        if ((mask & (MASK_ONE << 28)) != 0)
     543  	value28 /= value;
     544  
     545        if ((mask & (MASK_ONE << 29)) != 0)
     546  	value29 /= value;
     547  
     548        if ((mask & (MASK_ONE << 30)) != 0)
     549  	value30 /= value;
     550  
     551        if ((mask & (MASK_ONE << 31)) != 0)
     552  	value31 /= value;
     553  
     554        if ((mask & (MASK_ONE << 32)) != 0)
     555  	value32 /= value;
     556  
     557        if ((mask & (MASK_ONE << 33)) != 0)
     558  	value33 /= value;
     559  
     560        if ((mask & (MASK_ONE << 34)) != 0)
     561  	value34 /= value;
     562  
     563        if ((mask & (MASK_ONE << 35)) != 0)
     564  	value35 /= value;
     565  
     566        if ((mask & (MASK_ONE << 36)) != 0)
     567  	value36 /= value;
     568  
     569        if ((mask & (MASK_ONE << 37)) != 0)
     570  	value37 /= value;
     571  
     572        if ((mask & (MASK_ONE << 38)) != 0)
     573  	value38 /= value;
     574  
     575        if ((mask & (MASK_ONE << 39)) != 0)
     576  	value39 /= value;
     577      }
     578  
     579    while ((mask = *eq0_mask++) != 0)
     580      {
     581        eq0 = 0;
     582  
     583        if ((mask & (MASK_ONE <<  0)) != 0)
     584  	eq0 |= (value00 == ZERO);
     585  
     586        if ((mask & (MASK_ONE <<  1)) != 0)
     587  	eq0 |= (value01 == ZERO);
     588  
     589        if ((mask & (MASK_ONE <<  2)) != 0)
     590  	eq0 |= (value02 == ZERO);
     591  
     592        if ((mask & (MASK_ONE <<  3)) != 0)
     593  	eq0 |= (value03 == ZERO);
     594  
     595        if ((mask & (MASK_ONE <<  4)) != 0)
     596  	eq0 |= (value04 == ZERO);
     597  
     598        if ((mask & (MASK_ONE <<  5)) != 0)
     599  	eq0 |= (value05 == ZERO);
     600  
     601        if ((mask & (MASK_ONE <<  6)) != 0)
     602  	eq0 |= (value06 == ZERO);
     603  
     604        if ((mask & (MASK_ONE <<  7)) != 0)
     605  	eq0 |= (value07 == ZERO);
     606  
     607        if ((mask & (MASK_ONE <<  8)) != 0)
     608  	eq0 |= (value08 == ZERO);
     609  
     610        if ((mask & (MASK_ONE <<  9)) != 0)
     611  	eq0 |= (value09 == ZERO);
     612  
     613        if ((mask & (MASK_ONE << 10)) != 0)
     614  	eq0 |= (value10 == ZERO);
     615  
     616        if ((mask & (MASK_ONE << 11)) != 0)
     617  	eq0 |= (value11 == ZERO);
     618  
     619        if ((mask & (MASK_ONE << 12)) != 0)
     620  	eq0 |= (value12 == ZERO);
     621  
     622        if ((mask & (MASK_ONE << 13)) != 0)
     623  	eq0 |= (value13 == ZERO);
     624  
     625        if ((mask & (MASK_ONE << 14)) != 0)
     626  	eq0 |= (value14 == ZERO);
     627  
     628        if ((mask & (MASK_ONE << 15)) != 0)
     629  	eq0 |= (value15 == ZERO);
     630  
     631        if ((mask & (MASK_ONE << 16)) != 0)
     632  	eq0 |= (value16 == ZERO);
     633  
     634        if ((mask & (MASK_ONE << 17)) != 0)
     635  	eq0 |= (value17 == ZERO);
     636  
     637        if ((mask & (MASK_ONE << 18)) != 0)
     638  	eq0 |= (value18 == ZERO);
     639  
     640        if ((mask & (MASK_ONE << 19)) != 0)
     641  	eq0 |= (value19 == ZERO);
     642  
     643        if ((mask & (MASK_ONE << 20)) != 0)
     644  	eq0 |= (value20 == ZERO);
     645  
     646        if ((mask & (MASK_ONE << 21)) != 0)
     647  	eq0 |= (value21 == ZERO);
     648  
     649        if ((mask & (MASK_ONE << 22)) != 0)
     650  	eq0 |= (value22 == ZERO);
     651  
     652        if ((mask & (MASK_ONE << 23)) != 0)
     653  	eq0 |= (value23 == ZERO);
     654  
     655        if ((mask & (MASK_ONE << 24)) != 0)
     656  	eq0 |= (value24 == ZERO);
     657  
     658        if ((mask & (MASK_ONE << 25)) != 0)
     659  	eq0 |= (value25 == ZERO);
     660  
     661        if ((mask & (MASK_ONE << 26)) != 0)
     662  	eq0 |= (value26 == ZERO);
     663  
     664        if ((mask & (MASK_ONE << 27)) != 0)
     665  	eq0 |= (value27 == ZERO);
     666  
     667        if ((mask & (MASK_ONE << 28)) != 0)
     668  	eq0 |= (value28 == ZERO);
     669  
     670        if ((mask & (MASK_ONE << 29)) != 0)
     671  	eq0 |= (value29 == ZERO);
     672  
     673        if ((mask & (MASK_ONE << 30)) != 0)
     674  	eq0 |= (value30 == ZERO);
     675  
     676        if ((mask & (MASK_ONE << 31)) != 0)
     677  	eq0 |= (value31 == ZERO);
     678  
     679        if ((mask & (MASK_ONE << 32)) != 0)
     680  	eq0 |= (value32 == ZERO);
     681  
     682        if ((mask & (MASK_ONE << 33)) != 0)
     683  	eq0 |= (value33 == ZERO);
     684  
     685        if ((mask & (MASK_ONE << 34)) != 0)
     686  	eq0 |= (value34 == ZERO);
     687  
     688        if ((mask & (MASK_ONE << 35)) != 0)
     689  	eq0 |= (value35 == ZERO);
     690  
     691        if ((mask & (MASK_ONE << 36)) != 0)
     692  	eq0 |= (value36 == ZERO);
     693  
     694        if ((mask & (MASK_ONE << 37)) != 0)
     695  	eq0 |= (value37 == ZERO);
     696  
     697        if ((mask & (MASK_ONE << 38)) != 0)
     698  	eq0 |= (value38 == ZERO);
     699  
     700        if ((mask & (MASK_ONE << 39)) != 0)
     701  	eq0 |= (value39 == ZERO);
     702  
     703        *eq0_ptr++ = eq0;
     704      }
     705  
     706    return (  value00 + value01 + value02 + value03 + value04
     707  	  + value05 + value06 + value07 + value08 + value09
     708  	  + value10 + value11 + value12 + value13 + value14
     709  	  + value15 + value16 + value17 + value18 + value19
     710  	  + value20 + value21 + value22 + value23 + value24
     711  	  + value25 + value26 + value27 + value28 + value29
     712  	  + value30 + value31 + value32 + value33 + value34
     713  	  + value35 + value36 + value37 + value38 + value39);
     714  }
     715  
     716  /* { dg-final { scan-assembler "fadd"     } } */
     717  /* { dg-final { scan-assembler "fsub"     } } */
     718  /* { dg-final { scan-assembler "fmul"     } } */
     719  /* { dg-final { scan-assembler "fdiv"     } } */
     720  /* { dg-final { scan-assembler "fcmpu"    } } */
     721  /* { dg-final { scan-assembler "xsadddp"  } } */
     722  /* { dg-final { scan-assembler "xssubdp"  } } */
     723  /* { dg-final { scan-assembler "xsmuldp"  } } */
     724  /* { dg-final { scan-assembler "xsdivdp"  } } */
     725  /* { dg-final { scan-assembler "xscmpudp" } } */