(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
builtins-1.c
       1  /* { dg-do compile } */
       2  /* { dg-require-effective-target powerpc_p8vector_ok } */
       3  /* { dg-options "-mdejagnu-cpu=power8 -O2" } */
       4  /* { dg-additional-options "-mbig" { target powerpc64le-*-* } } */
       5  
       6  #include <altivec.h>
       7  
       8  vector float
       9  foo0 (vector float fa, vector float fb)
      10  {
      11    return vec_and (fa, fb);
      12  }
      13  
      14  vector float
      15  foo1 (vector float fa, vector float fb)
      16  {
      17    return vec_cpsgn (fa, fb);
      18  }
      19  
      20  vector float
      21  foo2 (vector float fa, vector float fb)
      22  {
      23    return vec_mergeh (fa, fb);
      24  }
      25  
      26  vector float
      27  foo3 (vector float fa, vector float fb)
      28  {
      29    return vec_mergel (fa, fb);
      30  }
      31  
      32  vector double
      33  foo4 (vector double da, vector double db)
      34  {
      35    return vec_and (da, db);
      36  }
      37  
      38  vector long long
      39  foo5 (vector long long la, vector long long lb)
      40  {
      41    return vec_and (la, lb);
      42  }
      43  
      44  vector long long
      45  foo6 (vector long long la, vector bool long long ld)
      46  {
      47    return vec_and (la, ld);
      48  }
      49  
      50  vector long long
      51  foo7 (vector bool long long ld, vector long long lb)
      52  {
      53    return vec_and (ld, lb);
      54  }
      55  
      56  vector unsigned long long
      57  foo8 (vector unsigned long long ua, vector unsigned long long ub)
      58  {
      59    return vec_and (ua, ub);
      60  }
      61  
      62  vector unsigned long long
      63  foo9 (vector unsigned long long ua, vector bool long long ud)
      64  {
      65    return vec_and (ua, ud);
      66  }
      67  
      68  vector unsigned long long
      69  foo10 (vector bool long long ud, vector unsigned long long ub)
      70  {
      71    return vec_and (ud, ub);
      72  }
      73  
      74  vector long long
      75  foo11 (vector long long la, vector long long lb)
      76  {
      77    return vec_andc (la, lb);
      78  }
      79  
      80  vector long long
      81  foo12 (vector long long la, vector bool long long ld)
      82  {
      83    return vec_andc (la, ld);
      84  }
      85  
      86  vector long long
      87  foo13 (vector bool long long ld, vector long long lb)
      88  {
      89    return vec_andc (ld, lb);
      90  }
      91  
      92  vector unsigned long long
      93  foo14 (vector unsigned long long ua, vector unsigned long long ub)
      94  {
      95    return vec_andc (ua, ub);
      96  }
      97  
      98  vector unsigned long long
      99  foo15 (vector unsigned long long ua, vector bool long long ud)
     100  {
     101    return vec_andc (ua, ud);
     102  }
     103  
     104  vector unsigned long long
     105  foo16 (vector bool long long ud, vector unsigned long long ub)
     106  {
     107    return vec_andc (ud, ub);
     108  }
     109  
     110  vector double
     111  foo17 (vector double de, vector double df)
     112  {
     113    return vec_cpsgn (de, df);
     114  }
     115  
     116  vector double
     117  foo18 (vector double de, vector double df)
     118  {
     119    return vec_mergeh (de, df);
     120  }
     121  
     122  vector double
     123  foo19 (vector double de, vector double df)
     124  {
     125    return vec_mergel (de, df);
     126  }
     127  
     128  vector long long
     129  foo20 (vector long long la, vector long long lb)
     130  {
     131    return vec_mergeh (la, lb);
     132  }
     133  
     134  vector long long
     135  foo21 (vector long long la, vector bool long long ld)
     136  {
     137    return vec_mergeh (la, ld);
     138  }
     139  
     140  vector long long
     141  foo22 (vector bool long long ld, vector long long lb)
     142  {
     143    return vec_mergeh (ld, lb);
     144  }
     145  
     146  vector unsigned long long
     147  foo23 (vector unsigned long long ua, vector unsigned long long ub)
     148  {
     149    return vec_mergeh (ua, ub);
     150  }
     151  
     152  vector unsigned long long
     153  foo24 (vector unsigned long long ua, vector bool long long ud)
     154  {
     155    return vec_mergeh (ua, ud);
     156  }
     157  
     158  vector unsigned long long
     159  foo25 (vector bool long long ud, vector unsigned long long ub)
     160  {
     161    return vec_mergeh (ud, ub);
     162  }
     163  
     164  vector pixel
     165  foo26 (vector pixel pa, vector pixel pb)
     166  {
     167    return vec_mergeh (pa, pb);
     168  }
     169  
     170  vector pixel
     171  foo27 (vector pixel pa, vector pixel pb)
     172  {
     173    return vec_mergel (pa, pb);
     174  }
     175  
     176  vector long long
     177  foo28 (vector long long la, vector long long lb)
     178  {
     179    return vec_mergel (la, lb);
     180  }
     181  
     182  vector long long
     183  foo29 (vector long long la, vector bool long long ld)
     184  {
     185    return vec_mergel (la, ld);
     186  }
     187  
     188  vector long long
     189  foo30 (vector bool long long ld, vector long long lb)
     190  {
     191    return vec_mergel (ld, lb);
     192  }
     193  
     194  vector unsigned long long
     195  foo31 (vector unsigned long long ua, vector unsigned long long ub)
     196  {
     197    return vec_mergel (ua, ub);
     198  }
     199  
     200  vector unsigned long long
     201  foo32 (vector unsigned long long ua, vector bool long long ud)
     202  {
     203    return vec_mergel (ua, ud);
     204  }
     205  
     206  vector unsigned long long
     207  foo33 (vector bool long long ud, vector unsigned long long ub)
     208  {
     209    return vec_mergel (ud, ub);
     210  }
     211  
     212  vector long long
     213  foo34 (vector long long la, vector long long lb)
     214  {
     215    return vec_nor (la, lb);
     216  }
     217  
     218  vector long long
     219  foo35 (vector long long la, vector bool long long ld)
     220  {
     221    return vec_nor (la, ld);
     222  }
     223  
     224  vector long long
     225  foo36 (vector bool long long ld, vector long long lb)
     226  {
     227    return vec_nor (ld, lb);
     228  }
     229  
     230  vector unsigned long long
     231  foo37 (vector unsigned long long ua, vector unsigned long long ub)
     232  {
     233    return vec_nor (ua, ub);
     234  }
     235  
     236  vector unsigned long long
     237  foo38 (vector unsigned long long ua, vector bool long long ud)
     238  {
     239    return vec_nor (ua, ud);
     240  }
     241  
     242  vector unsigned long long
     243  foo39 (vector bool long long ud, vector unsigned long long ub)
     244  {
     245    return vec_nor (ud, ub);
     246  }
     247  
     248  vector long long
     249  foo40 (vector long long la, vector long long lb, vector unsigned char ca)
     250  {
     251    return vec_perm (la, lb, ca);
     252  }
     253  
     254  vector unsigned char
     255  foo41 (vector unsigned char ca, vector unsigned char cbb)
     256  {
     257    return vec_and (ca, cbb);
     258  }
     259  
     260  vector unsigned char
     261  foo42 (vector unsigned char ca, vector unsigned char cbb)
     262  {
     263    return vec_andc (ca, cbb);
     264  }
     265  
     266  vector unsigned char
     267  foo43 (vector unsigned char ca, vector unsigned char cbb)
     268  {
     269    return vec_mergel (ca, cbb);
     270  }
     271  
     272  vector unsigned long long
     273  foo44 (vector unsigned long long ua, vector unsigned long long ub,
     274         vector unsigned char ca)
     275  {
     276    return vec_perm (ua, ub, ca);
     277  }
     278  
     279  vector long long
     280  foo45 (vector long long la, vector long long lb, vector unsigned long long uc)
     281  {
     282    return vec_sel (la, lb, uc);
     283  }
     284  
     285  vector long long
     286  foo46 (vector long long la, vector long long lb, vector bool long long ld)
     287  {
     288    return vec_sel (la, lb, ld);
     289  }
     290  
     291  vector unsigned long long
     292  foo47 (vector unsigned long long ua, vector unsigned long long ub,
     293         vector long long lc)
     294  {
     295    return vec_sel (ua, ub, lc);
     296  }
     297  
     298  vector unsigned long long
     299  foo48 (vector unsigned long long ua, vector unsigned long long ub,
     300         vector unsigned long long uc)
     301  {
     302    return vec_sel (ua, ub, uc);
     303  }
     304  
     305  vector unsigned long long
     306  foo49 (vector unsigned long long ua, vector unsigned long long ub,
     307         vector bool long long ld)
     308  {
     309    return vec_sel (ua, ub, ld);
     310  }
     311  
     312  vector long long
     313  foo50 (vector long long la, vector long long lb)
     314  {
     315    return vec_xor (la, lb);
     316  }
     317  
     318  vector long long
     319  foo51 (vector long long la, vector bool long long ld)
     320  {
     321    return vec_xor (la, ld);
     322  }
     323  
     324  vector long long
     325  foo52 (vector bool long long ld, vector long long la)
     326  {
     327    return vec_xor (ld, la);
     328  }
     329  
     330  vector unsigned long long
     331  foo53 (vector unsigned long long ua, vector unsigned long long ub)
     332  {
     333    return vec_xor (ua, ub);
     334  }
     335  
     336  vector unsigned long long
     337  foo54 (vector unsigned long long ua, vector bool long long ud)
     338  {
     339    return vec_xor (ua, ud);
     340  }
     341  
     342  vector unsigned long long
     343  foo55 (vector bool long long ud, vector unsigned long long ua)
     344  {
     345    return vec_xor (ud, ua);
     346  }
     347  
     348  int
     349  foo56 (vector unsigned long long ua, vector unsigned long long ub)
     350  {
     351    return vec_all_eq (ua, ub);
     352  }
     353  
     354  int
     355  foo57 (vector unsigned long long ua, vector unsigned long long ub)
     356  {
     357    return vec_all_ge (ua, ub);
     358  }
     359  
     360  int
     361  foo58 (vector unsigned long long ua, vector unsigned long long ub)
     362  {
     363    return vec_all_gt (ua, ub);
     364  }
     365  
     366  int
     367  foo59 (vector unsigned long long ua, vector unsigned long long ub)
     368  {
     369    return vec_all_le (ua, ub);
     370  }
     371  
     372  int
     373  foo60 (vector unsigned long long ua, vector unsigned long long ub)
     374  {
     375    return vec_all_lt (ua, ub);
     376  }
     377  
     378  int
     379  foo61 (vector unsigned long long ua, vector unsigned long long ub)
     380  {
     381    return vec_all_ne (ua, ub);
     382  }
     383  
     384  int
     385  foo62 (vector unsigned long long ua, vector unsigned long long ub)
     386  {
     387    return vec_any_eq (ua, ub);
     388  }
     389  
     390  int
     391  foo63 (vector unsigned long long ua, vector unsigned long long ub)
     392  {
     393    return vec_any_ge (ua, ub);
     394  }
     395  
     396  int
     397  foo64 (vector unsigned long long ua, vector unsigned long long ub)
     398  {
     399    return vec_any_gt (ua, ub);
     400  }
     401  
     402  int
     403  foo65 (vector unsigned long long ua, vector unsigned long long ub)
     404  {
     405    return vec_any_le (ua, ub);
     406  }
     407  
     408  int
     409  foo66 (vector unsigned long long ua, vector unsigned long long ub)
     410  {
     411    return vec_any_lt (ua, ub);
     412  }
     413  
     414  int
     415  foo67 (vector unsigned long long ua, vector unsigned long long ub)
     416  {
     417    return vec_any_ne (ua, ub);
     418  }
     419  
     420  vector short
     421  foo68 (vector short ssa, vector short ssb)
     422  {
     423    return vec_and (ssa, ssb);
     424  }
     425  
     426  vector short
     427  foo69 (vector short ssa, vector short ssb)
     428  {
     429    return vec_mergeh (ssa, ssb);
     430  }
     431  
     432  vector short
     433  foo70 (vector short ssa, vector short ssb)
     434  {
     435    return vec_mergel (ssa, ssb);
     436  }
     437  
     438  vector int
     439  foo71 (vector int sia, vector int sib)
     440  {
     441    return vec_and (sia, sib);
     442  }
     443  
     444  vector int
     445  foo72 (vector int sia, vector int sib)
     446  {
     447    return vec_andc (sia, sib);
     448  }
     449  
     450  vector int
     451  foo73 (vector int sia, vector int sib)
     452  {
     453    return vec_mergel (sia, sib);
     454  }
     455  
     456  vector unsigned int
     457  foo74 (vector unsigned int uia, vector unsigned int uib)
     458  {
     459    return vec_and (uia, uib);
     460  }
     461  
     462  vector unsigned int
     463  foo75 (vector unsigned int uia, vector unsigned int uib)
     464  {
     465    return vec_andc (uia, uib);
     466  }
     467  
     468  vector unsigned int
     469  foo76 (vector unsigned int uia, vector unsigned int uib)
     470  {
     471    return vec_mergel (uia, uib);
     472  }
     473  
     474  vector bool char
     475  foo77 (vector bool char bca, vector bool char bcb)
     476  {
     477    return vec_and (bca, bcb);
     478  }
     479  
     480  vector bool char
     481  foo78 (vector bool char bca, vector bool char bcb)
     482  {
     483    return vec_andc (bca, bcb);
     484  }
     485  
     486  vector bool char
     487  foo79 (vector bool char bca, vector bool char bcb)
     488  {
     489    return vec_mergel (bca, bcb);
     490  }
     491  
     492  vector bool short
     493  foo80 (vector bool short bsa, vector bool short bsb)
     494  {
     495    return vec_and (bsa, bsb);
     496  }
     497  
     498  vector bool short
     499  foo81 (vector bool short bsa, vector bool short bsb)
     500  {
     501    return vec_andc (bsa, bsb);
     502  }
     503  
     504  vector bool short
     505  foo82 (vector bool short bsa, vector bool short bsb)
     506  {
     507    return vec_mergel (bsa, bsb);
     508  }
     509  
     510  vector bool int
     511  foo83 (vector bool int bia, vector bool int bib)
     512  {
     513    return vec_and (bia, bib);
     514  }
     515  
     516  vector bool int
     517  foo84 (vector bool int bia, vector bool int bib)
     518  {
     519    return vec_andc (bia, bib);
     520  }
     521  
     522  vector bool int
     523  foo85 (vector bool int bia, vector bool int bib)
     524  {
     525    return vec_mergel (bia, bib);
     526  }
     527  
     528  vector unsigned int
     529  foo86 (vector unsigned long long ua, vector unsigned long long ub)
     530  {
     531    return vec_packsu (ua, ub);
     532  }
     533  
     534  vector long long
     535  foo87 (vector long long la)
     536  {
     537    return vec_cntlz (la);
     538  }
     539  
     540  vector unsigned long long
     541  foo88 (vector unsigned long long ua)
     542  {
     543    return vec_cntlz (ua);
     544  }
     545  
     546  vector int
     547  foo89 (vector int sia)
     548  {
     549    return vec_cntlz (sia);
     550  }
     551  
     552  vector unsigned int
     553  foo90 (vector unsigned int uia)
     554  {
     555    return vec_cntlz (uia);
     556  }
     557  
     558  vector short
     559  foo91 (vector short ssa)
     560  {
     561    return vec_cntlz (ssa);
     562  }
     563  
     564  vector unsigned short
     565  foo92 (vector unsigned short usa, vector unsigned short usb)
     566  {
     567    return vec_and (usa, usb);
     568  }
     569  
     570  vector unsigned short
     571  foo93 (vector unsigned short usa, vector unsigned short usb)
     572  {
     573    return vec_andc (usa, usb);
     574  }
     575  
     576  vector unsigned short
     577  foo94 (vector unsigned short usa)
     578  {
     579    return vec_cntlz (usa);
     580  }
     581  
     582  vector unsigned short
     583  foo95 (vector unsigned short usa, vector unsigned short usb)
     584  {
     585    return vec_mergeh (usa, usb);
     586  }
     587  
     588  vector unsigned short
     589  foo96 (vector unsigned short usa, vector unsigned short usb)
     590  {
     591    return vec_mergel (usa, usb);
     592  }
     593  
     594  vector signed char
     595  foo97 (vector signed char sca)
     596  {
     597    return vec_cntlz (sca);
     598  }
     599  
     600  vector signed char
     601  foo98 (vector signed char sca, vector signed char scb)
     602  {
     603    return vec_mergel (sca, scb);
     604  }
     605  
     606  vector unsigned char
     607  foo99 (vector unsigned char ca)
     608  {
     609    return vec_cntlz (ca);
     610  }
     611  
     612  vector double
     613  foo100 (vector double *y)
     614  {
     615    return vec_xl (0, y);
     616  }
     617  
     618  void
     619  foo101 (vector double dd, vector double *z)
     620  {
     621    vec_xst (dd, 0, z);
     622  }
     623  
     624  vector double
     625  foo102 (vector double dd)
     626  {
     627    return vec_round (dd);
     628  }
     629  
     630  vector double
     631  foo103 (vector double dd)
     632  {
     633    return vec_rsqrt (dd);
     634  }
     635  
     636  vector double
     637  foo104 (vector double dd)
     638  {
     639    return vec_rsqrte (dd);
     640  }
     641  
     642  vector float
     643  foo105 (vector float fa)
     644  {
     645    return vec_round (fa);
     646  }
     647  
     648  vector float
     649  foo106 (vector float fa)
     650  {
     651    return vec_rsqrt (fa);
     652  }
     653  
     654  vector float
     655  foo107 (vector float fa)
     656  {
     657    return vec_rsqrte (fa);
     658  }
     659  
     660  vector double
     661  foo108 (vector double de)
     662  {
     663    return vec_splat (de, 0);
     664  }
     665  
     666  vector double
     667  foo109 (vector double de)
     668  {
     669    return vec_splat (de, 1);
     670  }
     671  
     672  vector long long
     673  foo110 (vector long long l2)
     674  {
     675    return vec_splat (l2, 0);
     676  }
     677  
     678  vector long long
     679  foo111 (vector long long l2)
     680  {
     681    return vec_splat (l2, 1);
     682  }
     683  
     684  vector unsigned long long
     685  foo112 (vector unsigned long long u2)
     686  {
     687    return vec_splat (u2, 0);
     688  }
     689  
     690  vector unsigned long long
     691  foo113 (vector unsigned long long u2)
     692  {
     693    return vec_splat (u2, 1);
     694  }
     695  
     696  vector bool long long
     697  foo114 (vector bool long long ld)
     698  {
     699    return vec_splat (ld, 0);
     700  }
     701  
     702  vector bool long long
     703  foo115 (vector bool long long ld)
     704  {
     705    return vec_splat (ld, 1);
     706  }
     707  
     708  vector bool long long
     709  foo116 (vector bool long long la, vector bool long long lb)
     710  {
     711    return vec_mergee (la, lb);
     712  }
     713  
     714  vector bool long long
     715  foo117 (vector bool long long la, vector bool long long lb)
     716  {
     717    return vec_mergeo (la, lb);
     718  }
     719  
     720  vector bool long long
     721  foo118 (vector bool long long la, vector bool long long lb)
     722  {
     723    return vec_and (la, lb);
     724  }
     725  
     726  vector long long
     727  foo119 (vector long long l3, vector long long l4)
     728  {
     729    return vec_div (l3, l4);
     730  }
     731  
     732  vector unsigned long long
     733  foo120 (vector unsigned long long u3, vector unsigned long long u4)
     734  {
     735    return vec_div (u3, u4);
     736  }
     737  
     738  vector long long
     739  foo121 (vector long long la, vector long long lb)
     740  {
     741    return vec_mergee (la, lb);
     742  }
     743  
     744  vector long long
     745  foo122 (vector long long la, vector long long lb)
     746  {
     747    return vec_mergeo (la, lb);
     748  }
     749  
     750  vector unsigned long long
     751  foo123 (vector unsigned long long u3, vector unsigned long long u4)
     752  {
     753    return vec_mergee (u3, u4);
     754  }
     755  
     756  vector unsigned long long
     757  foo124 (vector unsigned long long u3, vector unsigned long long u4)
     758  {
     759    return vec_mergeo (u3, u4);
     760  }
     761  
     762  vector long long
     763  foo125 (vector long long l3, vector long long l4)
     764  {
     765    return vec_mul (l3, l4);
     766  }
     767  
     768  vector unsigned long long
     769  foo126 (vector unsigned long long u3, vector unsigned long long u4)
     770  {
     771    return vec_mul (u3, u4);
     772  }
     773  
     774  vector int
     775  foo127 (vector float fa)
     776  {
     777    return vec_cts (fa, 0x1F);
     778  }
     779  
     780  vector unsigned int
     781  foo128 (vector float fa)
     782  {
     783    return vec_ctu (fa, 0x1F);
     784  }
     785  
     786  vector float
     787  foo129 (vector float fa, vector float fb)
     788  {
     789    return vec_mergee (fa, fb);
     790  }
     791  
     792  vector float
     793  foo130 (vector float fa, vector float fb)
     794  {
     795    return vec_mergeo (fa, fb);
     796  }
     797  
     798  vector double
     799  foo131 (vector double da, vector double db)
     800  {
     801    return vec_mergee (da, db);
     802  }
     803  
     804  vector double
     805  foo132 (vector double da, vector double db)
     806  {
     807    return vec_mergeo (da, db);
     808  }
     809  
     810  vector float
     811  foo133 (vector signed int si_a)
     812  {
     813    return vec_ctf (si_a, 1);
     814  }
     815  
     816  vector float
     817  foo134 (vector unsigned int ui_a)
     818  {
     819    return vec_ctf (ui_a, 2);
     820  }
     821  
     822  vector bool char
     823  foo135 (vector bool char bca)
     824  {
     825    return vec_splat (bca, 0);
     826  }
     827  
     828  vector signed char
     829  foo136 (vector signed char sca)
     830  {
     831    return vec_splat (sca, 1);
     832  }
     833  
     834  vector unsigned char
     835  foo137 (vector unsigned char ucbc)
     836  {
     837    return vec_splat (ucbc, 2);
     838  }
     839  
     840  vector bool int
     841  foo138 (vector bool int bia)
     842  {
     843    return vec_splat (bia, 3);
     844  }
     845  
     846  vector signed int
     847  foo139 (vector signed int sia)
     848  {
     849    return vec_splat (sia, 1);
     850  }
     851  
     852  vector unsigned int
     853  foo140 (vector unsigned int uia)
     854  {
     855    return vec_splat (uia, 2);
     856  }
     857  
     858  vector bool int
     859  foo141 (vector bool int bia, vector bool int bib)
     860  {
     861    return vec_mergee (bia, bib);
     862  }
     863  
     864  vector signed int
     865  foo142 (vector signed int sia, vector signed int sib)
     866  {
     867    return vec_mergee (sia, sib);
     868  }
     869  
     870  vector unsigned int
     871  foo143 (vector unsigned int uia, vector unsigned int uib)
     872  {
     873    return vec_mergee (uia, uib);
     874  }
     875  
     876  vector bool char
     877  foo144 (vector bool char bca, vector bool char bcb)
     878  {
     879    return vec_mergeh (bca, bcb);
     880  }
     881  
     882  vector signed char
     883  foo145 (vector signed char sca, vector signed char scb)
     884  {
     885    return vec_mergeh (sca, scb);
     886  }
     887  
     888  vector bool int
     889  foo146 (vector bool int bia, vector bool int bib)
     890  {
     891    return vec_mergeh (bia, bib);
     892  }
     893  
     894  vector signed int
     895  foo147 (vector signed int sia, vector signed int sib)
     896  {
     897    return vec_mergeh (sia, sib);
     898  }
     899  
     900  vector unsigned int
     901  foo148 (vector unsigned int uia, vector unsigned int uib)
     902  {
     903    return vec_mergeh (uia, uib);
     904  }
     905  
     906  vector bool short
     907  foo149 (vector bool short bsa, vector bool short bsb)
     908  {
     909    return vec_mergeh (bsa, bsb);
     910  }
     911  
     912  vector bool int
     913  foo150 (vector bool int bia, vector bool int bib)
     914  {
     915    return vec_mergeo (bia, bib);
     916  }
     917  
     918  vector signed int
     919  foo151 (vector signed int sia, vector signed int sib)
     920  {
     921    return vec_mergeo (sia, sib);
     922  }
     923  
     924  vector unsigned int
     925  foo152 (vector unsigned int uia, vector unsigned int uib)
     926  {
     927    return vec_mergeo (uia, uib);
     928  }
     929  
     930  vector pixel
     931  foo153 (vector pixel pa)
     932  {
     933    return vec_splat (pa, 1);
     934  }
     935  
     936  vector bool short
     937  foo154 (vector bool short bsa)
     938  {
     939    return vec_splat (bsa, 0);
     940  }
     941  
     942  vector signed short
     943  foo155 (vector signed short ssa)
     944  {
     945    return vec_splat (ssa, 2);
     946  }
     947  
     948  vector unsigned short
     949  foo156 (vector unsigned short usa)
     950  {
     951    return vec_splat (usa, 1);
     952  }
     953  
     954  /* Expected results:
     955     vec_all_eq          vcmpequd.
     956     vec_all_ge          vcmpgtud.
     957     vec_all_ne          vcmpequd.
     958     vec_any_eq          vcmpequd.
     959     vec_any_ne          vcmpequd.
     960     vec_all_gt          vcmpgtud.
     961     vec_all_le          vcmpgtud.
     962     vec_all_lt          vcmpgtud.
     963     vec_any_ge          vcmpgtud.
     964     vec_any_gt          vcmpgtud.
     965     vec_any_lt          vcmpgtud.
     966     vec_any_le          vcmpgtud.
     967     vec_and             xxland
     968     vec_andc            xxlandc
     969     vec_cntlz           vclzd, vclzb, vclzw, vclzh
     970     vec_cpsgn           xvcpsgnsp, xvcpsgndp
     971     vec_ctf             vcfux, vcfsx
     972     vec_cts             vctsxs
     973     vec_ctu             vctuxs
     974     vec_div             divd, divdu | __divdi3, __udivdi3
     975     vec_mergel          vmrglb, vmrglh, xxmrglw, xxpermdi
     976     vec_mergeh          xxmrghw, vmrghh, vmrghb, xxpermdi
     977     vec_mul             mulld | mullw, mulhwu
     978     vec_nor             xxlnor
     979     vec_packsu          vpkudus
     980     vec_perm            vperm
     981     vec_round           xvrdpi
     982     vec_sel             xxsel
     983     vec_xor             xxlxor 
     984     vec_rsqrt           xvrsqrtesp, xvrsqrtedp
     985     vec_rsqrte          xvrsqrtesp, xvrsqrtedp
     986     vec_xl              lxvd2x
     987     vec_xst             stxvd2x
     988     vec_splat           xxspltb | vspltb, xxspltw | vspltw, xxsplth | vsplth,
     989                         xxpermdi
     990     vec_mergee          xxpermdi, vmrgew
     991     vec_mergeo          xxpermdi, vmrgow  */
     992  
     993  /* { dg-final { scan-assembler-times {\mvcmpequd\.} 4 } } */
     994  /* { dg-final { scan-assembler-times {\mvcmpgtud\.} 8 } } */
     995  /* { dg-final { scan-assembler-times {\mxxland\M} 17 } } */
     996  /* { dg-final { scan-assembler-times {\mxxlandc\M} 13 } } */
     997  /* { dg-final { scan-assembler-times {\mvclzb\M} 2 } } */
     998  /* { dg-final { scan-assembler-times {\mvclzd\M} 2 } } */
     999  /* { dg-final { scan-assembler-times {\mvclzw\M} 2 } } */
    1000  /* { dg-final { scan-assembler-times {\mvclzh\M} 2 } } */
    1001  /* { dg-final { scan-assembler-times {\mxvcpsgnsp\M} 1 } } */
    1002  /* { dg-final { scan-assembler-times {\mxvcpsgndp\M} 1 } } */
    1003  /* { dg-final { scan-assembler-times {\mvcfsx\M} 1 } } */
    1004  /* { dg-final { scan-assembler-times {\mvcfux\M} 1 } } */
    1005  /* { dg-final { scan-assembler-times {\mvctsxs\M} 1 } } */
    1006  /* { dg-final { scan-assembler-times {\mvctuxs\M} 1 } } */
    1007  
    1008  /* { dg-final { scan-assembler-times {\mvmrghb\M} 2 } } */
    1009  /* { dg-final { scan-assembler-times {\mvmrghh\M} 4 } } */
    1010  /* { dg-final { scan-assembler-times {\mxxmrghw\M} 4 } } */
    1011  /* { dg-final { scan-assembler-times {\mxxmrglw\M} 4 } } */
    1012  /* { dg-final { scan-assembler-times {\mvmrglh\M} 4 } } */
    1013  /* { dg-final { scan-assembler-times {\mxxlnor\M} 6 } } */
    1014  /* { dg-final { scan-assembler-times {\mvpkudus\M} 1 } } */
    1015  /* { dg-final { scan-assembler-times {\mvperm\M} 2 } } */
    1016  /* { dg-final { scan-assembler-times {\mxvrdpi\M} 1 } } */
    1017  /* { dg-final { scan-assembler-times {\mvrfin\M} 1 } } */
    1018  /* { dg-final { scan-assembler-times {\mxxsel\M} 5 } } */
    1019  /* { dg-final { scan-assembler-times {\mxxlxor\M} 6 } } */
    1020  /* { dg-final { scan-assembler-times {\mdivd\M} 2  { target lp64 } } } */
    1021  /* { dg-final { scan-assembler-times {\mdivdu\M} 2  { target lp64 } } } */
    1022  /* { dg-final { scan-assembler-times {\mmulld\M} 4  { target lp64 } } } */
    1023  /* check for .__divdi3 (AIX), __divdi3 (Linux) and ___divdi3 (Darwin) */
    1024  /* { dg-final { scan-assembler-times {\mbl \.?_?__divdi3\M} 2   { target { ilp32 } } } } */
    1025  /* check for both .__udivdi3 (AIX), __udivdi3 (Linux) and ___udivdi3 (Darwin) */
    1026  /* { dg-final { scan-assembler-times {\mbl \.?_?__udivdi3\M} 2  { target { ilp32 } } } } */
    1027  /* { dg-final { scan-assembler-times {\mmullw\M} 12  { target ilp32 } } } */
    1028  /* { dg-final { scan-assembler-times {\mxvrsqrtesp\M} 2 } } */
    1029  /* { dg-final { scan-assembler-times {\mxvrsqrtedp\M} 2 } } */
    1030  /* { dg-final { scan-assembler-times {\mvcfsx\M} 1 } } */
    1031  /* { dg-final { scan-assembler-times {\mvcfux\M} 1 } } */
    1032  /* { dg-final { scan-assembler-times {\mvspltb|xxspltb\M} 3 } } */
    1033  /* { dg-final { scan-assembler-times {\mvspltw|xxspltw\M} 3 } } */
    1034  /* { dg-final { scan-assembler-times {\mvmrgow\M} 4 } } */
    1035  /* { dg-final { scan-assembler-times {\mvmrglb\M} 3 } } */
    1036  /* { dg-final { scan-assembler-times {\mvmrgew\M} 4 } } */
    1037  /* { dg-final { scan-assembler-times {\mvsplth|xxsplth\M} 4 } } */
    1038  /* { dg-final { scan-assembler-times {\mxxpermdi\M} 44 } } */