Home | History | Annotate | Download | only in Basic
      1 //===--- BuiltinsPPC.def - PowerPC Builtin function database ----*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // This file defines the PowerPC-specific builtin function database.  Users of
     11 // this file must define the BUILTIN macro to make use of this information.
     12 //
     13 //===----------------------------------------------------------------------===//
     14 
     15 // FIXME: this needs to be the full list supported by GCC.  Right now, I'm just
     16 // adding stuff on demand.
     17 
     18 // The format of this database matches clang/Basic/Builtins.def.
     19 
     20 BUILTIN(__builtin_ppc_get_timebase, "ULLi", "n")
     21 
     22 // This is just a placeholder, the types and attributes are wrong.
     23 BUILTIN(__builtin_altivec_vaddcuw, "V4UiV4UiV4Ui", "")
     24 
     25 BUILTIN(__builtin_altivec_vaddsbs, "V16ScV16ScV16Sc", "")
     26 BUILTIN(__builtin_altivec_vaddubs, "V16UcV16UcV16Uc", "")
     27 BUILTIN(__builtin_altivec_vaddshs, "V8SsV8SsV8Ss", "")
     28 BUILTIN(__builtin_altivec_vadduhs, "V8UsV8UsV8Us", "")
     29 BUILTIN(__builtin_altivec_vaddsws, "V4SiV4SiV4Si", "")
     30 BUILTIN(__builtin_altivec_vadduws, "V4UiV4UiV4Ui", "")
     31 BUILTIN(__builtin_altivec_vaddeuqm, "V1ULLLiV1ULLLiV1ULLLiV1ULLLi","")
     32 BUILTIN(__builtin_altivec_vaddcuq, "V1ULLLiV1ULLLiV1ULLLi","")
     33 BUILTIN(__builtin_altivec_vaddecuq, "V1ULLLiV1ULLLiV1ULLLiV1ULLLi","")
     34 
     35 BUILTIN(__builtin_altivec_vsubsbs, "V16ScV16ScV16Sc", "")
     36 BUILTIN(__builtin_altivec_vsububs, "V16UcV16UcV16Uc", "")
     37 BUILTIN(__builtin_altivec_vsubshs, "V8SsV8SsV8Ss", "")
     38 BUILTIN(__builtin_altivec_vsubuhs, "V8UsV8UsV8Us", "")
     39 BUILTIN(__builtin_altivec_vsubsws, "V4SiV4SiV4Si", "")
     40 BUILTIN(__builtin_altivec_vsubuws, "V4UiV4UiV4Ui", "")
     41 BUILTIN(__builtin_altivec_vsubeuqm, "V1ULLLiV1ULLLiV1ULLLiV1ULLLi","")
     42 BUILTIN(__builtin_altivec_vsubcuq, "V1ULLLiV1ULLLiV1ULLLi","")
     43 BUILTIN(__builtin_altivec_vsubecuq, "V1ULLLiV1ULLLiV1ULLLiV1ULLLi","")
     44 
     45 BUILTIN(__builtin_altivec_vavgsb, "V16ScV16ScV16Sc", "")
     46 BUILTIN(__builtin_altivec_vavgub, "V16UcV16UcV16Uc", "")
     47 BUILTIN(__builtin_altivec_vavgsh, "V8SsV8SsV8Ss", "")
     48 BUILTIN(__builtin_altivec_vavguh, "V8UsV8UsV8Us", "")
     49 BUILTIN(__builtin_altivec_vavgsw, "V4SiV4SiV4Si", "")
     50 BUILTIN(__builtin_altivec_vavguw, "V4UiV4UiV4Ui", "")
     51 
     52 BUILTIN(__builtin_altivec_vrfip, "V4fV4f", "")
     53 
     54 BUILTIN(__builtin_altivec_vcfsx, "V4fV4iIi", "")
     55 BUILTIN(__builtin_altivec_vcfux, "V4fV4iIi", "")
     56 BUILTIN(__builtin_altivec_vctsxs, "V4SiV4fIi", "")
     57 BUILTIN(__builtin_altivec_vctuxs, "V4UiV4fIi", "")
     58 
     59 BUILTIN(__builtin_altivec_dss, "vUi", "")
     60 BUILTIN(__builtin_altivec_dssall, "v", "")
     61 BUILTIN(__builtin_altivec_dst, "vvC*iUi", "") 
     62 BUILTIN(__builtin_altivec_dstt, "vvC*iUi", "")
     63 BUILTIN(__builtin_altivec_dstst, "vvC*iUi", "")
     64 BUILTIN(__builtin_altivec_dststt, "vvC*iUi", "")
     65 
     66 BUILTIN(__builtin_altivec_vexptefp, "V4fV4f", "")
     67 
     68 BUILTIN(__builtin_altivec_vrfim, "V4fV4f", "")
     69 
     70 BUILTIN(__builtin_altivec_lvx, "V4iivC*", "")
     71 BUILTIN(__builtin_altivec_lvxl, "V4iivC*", "")
     72 BUILTIN(__builtin_altivec_lvebx, "V16civC*", "")
     73 BUILTIN(__builtin_altivec_lvehx, "V8sivC*", "")
     74 BUILTIN(__builtin_altivec_lvewx, "V4iivC*", "")
     75 
     76 BUILTIN(__builtin_altivec_vlogefp, "V4fV4f", "")
     77 
     78 BUILTIN(__builtin_altivec_lvsl, "V16cUcvC*", "")
     79 BUILTIN(__builtin_altivec_lvsr, "V16cUcvC*", "")
     80 
     81 BUILTIN(__builtin_altivec_vmaddfp, "V4fV4fV4fV4f", "")
     82 BUILTIN(__builtin_altivec_vmhaddshs, "V8sV8sV8sV8s", "")
     83 BUILTIN(__builtin_altivec_vmhraddshs, "V8sV8sV8sV8s", "")
     84 
     85 BUILTIN(__builtin_altivec_vmsumubm, "V4UiV16UcV16UcV4Ui", "")
     86 BUILTIN(__builtin_altivec_vmsummbm, "V4SiV16ScV16UcV4Si", "")
     87 BUILTIN(__builtin_altivec_vmsumuhm, "V4UiV8UsV8UsV4Ui", "")
     88 BUILTIN(__builtin_altivec_vmsumshm, "V4SiV8SsV8SsV4Si", "")
     89 BUILTIN(__builtin_altivec_vmsumuhs, "V4UiV8UsV8UsV4Ui", "")
     90 BUILTIN(__builtin_altivec_vmsumshs, "V4SiV8SsV8SsV4Si", "")
     91 
     92 BUILTIN(__builtin_altivec_vmuleub, "V8UsV16UcV16Uc", "")
     93 BUILTIN(__builtin_altivec_vmulesb, "V8SsV16ScV16Sc", "")
     94 BUILTIN(__builtin_altivec_vmuleuh, "V4UiV8UsV8Us", "")
     95 BUILTIN(__builtin_altivec_vmulesh, "V4SiV8SsV8Ss", "")
     96 BUILTIN(__builtin_altivec_vmuleuw, "V2ULLiV4UiV4Ui", "")
     97 BUILTIN(__builtin_altivec_vmulesw, "V2SLLiV4SiV4Si", "")
     98 BUILTIN(__builtin_altivec_vmuloub, "V8UsV16UcV16Uc", "")
     99 BUILTIN(__builtin_altivec_vmulosb, "V8SsV16ScV16Sc", "")
    100 BUILTIN(__builtin_altivec_vmulouh, "V4UiV8UsV8Us", "")
    101 BUILTIN(__builtin_altivec_vmulosh, "V4SiV8SsV8Ss", "")
    102 BUILTIN(__builtin_altivec_vmulouw, "V2ULLiV4UiV4Ui", "")
    103 BUILTIN(__builtin_altivec_vmulosw, "V2SLLiV4SiV4Si", "")
    104 
    105 BUILTIN(__builtin_altivec_vnmsubfp, "V4fV4fV4fV4f", "")
    106 
    107 BUILTIN(__builtin_altivec_vpkpx, "V8sV4UiV4Ui", "")
    108 BUILTIN(__builtin_altivec_vpkuhus, "V16UcV8UsV8Us", "")
    109 BUILTIN(__builtin_altivec_vpkshss, "V16ScV8SsV8Ss", "")
    110 BUILTIN(__builtin_altivec_vpkuwus, "V8UsV4UiV4Ui", "")
    111 BUILTIN(__builtin_altivec_vpkswss, "V8SsV4SiV4Si", "")
    112 BUILTIN(__builtin_altivec_vpkshus, "V16UcV8SsV8Ss", "")
    113 BUILTIN(__builtin_altivec_vpkswus, "V8UsV4SiV4Si", "")
    114 BUILTIN(__builtin_altivec_vpksdss, "V4SiV2SLLiV2SLLi", "")
    115 BUILTIN(__builtin_altivec_vpksdus, "V4UiV2SLLiV2SLLi", "")
    116 BUILTIN(__builtin_altivec_vpkudus, "V4UiV2ULLiV2ULLi", "")
    117 BUILTIN(__builtin_altivec_vpkudum, "V4UiV2ULLiV2ULLi", "")
    118 
    119 BUILTIN(__builtin_altivec_vperm_4si, "V4iV4iV4iV16Uc", "")
    120 
    121 BUILTIN(__builtin_altivec_stvx, "vV4iiv*", "")
    122 BUILTIN(__builtin_altivec_stvxl, "vV4iiv*", "")
    123 BUILTIN(__builtin_altivec_stvebx, "vV16civ*", "")
    124 BUILTIN(__builtin_altivec_stvehx, "vV8siv*", "")
    125 BUILTIN(__builtin_altivec_stvewx, "vV4iiv*", "")
    126 
    127 BUILTIN(__builtin_altivec_vcmpbfp, "V4iV4fV4f", "")
    128 
    129 BUILTIN(__builtin_altivec_vcmpgefp, "V4iV4fV4f", "")
    130 
    131 BUILTIN(__builtin_altivec_vcmpequb, "V16cV16cV16c", "")
    132 BUILTIN(__builtin_altivec_vcmpequh, "V8sV8sV8s", "")
    133 BUILTIN(__builtin_altivec_vcmpequw, "V4iV4iV4i", "")
    134 BUILTIN(__builtin_altivec_vcmpequd, "V2LLiV2LLiV2LLi", "")
    135 BUILTIN(__builtin_altivec_vcmpeqfp, "V4iV4fV4f", "")
    136 
    137 BUILTIN(__builtin_altivec_vcmpneb, "V16cV16cV16c", "")
    138 BUILTIN(__builtin_altivec_vcmpneh, "V8sV8sV8s", "")
    139 BUILTIN(__builtin_altivec_vcmpnew, "V4iV4iV4i", "")
    140 
    141 BUILTIN(__builtin_altivec_vcmpnezb, "V16cV16cV16c", "")
    142 BUILTIN(__builtin_altivec_vcmpnezh, "V8sV8sV8s", "")
    143 BUILTIN(__builtin_altivec_vcmpnezw, "V4iV4iV4i", "")
    144 
    145 BUILTIN(__builtin_altivec_vcmpgtsb, "V16cV16ScV16Sc", "")
    146 BUILTIN(__builtin_altivec_vcmpgtub, "V16cV16UcV16Uc", "")
    147 BUILTIN(__builtin_altivec_vcmpgtsh, "V8sV8SsV8Ss", "")
    148 BUILTIN(__builtin_altivec_vcmpgtuh, "V8sV8UsV8Us", "")
    149 BUILTIN(__builtin_altivec_vcmpgtsw, "V4iV4SiV4Si", "")
    150 BUILTIN(__builtin_altivec_vcmpgtuw, "V4iV4UiV4Ui", "")
    151 BUILTIN(__builtin_altivec_vcmpgtsd, "V2LLiV2LLiV2LLi", "")
    152 BUILTIN(__builtin_altivec_vcmpgtud, "V2LLiV2ULLiV2ULLi", "")
    153 BUILTIN(__builtin_altivec_vcmpgtfp, "V4iV4fV4f", "")
    154 
    155 BUILTIN(__builtin_altivec_vmaxsb, "V16ScV16ScV16Sc", "")
    156 BUILTIN(__builtin_altivec_vmaxub, "V16UcV16UcV16Uc", "")
    157 BUILTIN(__builtin_altivec_vmaxsh, "V8SsV8SsV8Ss", "")
    158 BUILTIN(__builtin_altivec_vmaxuh, "V8UsV8UsV8Us", "")
    159 BUILTIN(__builtin_altivec_vmaxsw, "V4SiV4SiV4Si", "")
    160 BUILTIN(__builtin_altivec_vmaxuw, "V4UiV4UiV4Ui", "")
    161 BUILTIN(__builtin_altivec_vmaxsd, "V2LLiV2LLiV2LLi", "")
    162 BUILTIN(__builtin_altivec_vmaxud, "V2ULLiV2ULLiV2ULLi", "")
    163 BUILTIN(__builtin_altivec_vmaxfp, "V4fV4fV4f", "")
    164 
    165 BUILTIN(__builtin_altivec_mfvscr, "V8Us", "")
    166 
    167 BUILTIN(__builtin_altivec_vminsb, "V16ScV16ScV16Sc", "")
    168 BUILTIN(__builtin_altivec_vminub, "V16UcV16UcV16Uc", "")
    169 BUILTIN(__builtin_altivec_vminsh, "V8SsV8SsV8Ss", "")
    170 BUILTIN(__builtin_altivec_vminuh, "V8UsV8UsV8Us", "")
    171 BUILTIN(__builtin_altivec_vminsw, "V4SiV4SiV4Si", "")
    172 BUILTIN(__builtin_altivec_vminuw, "V4UiV4UiV4Ui", "")
    173 BUILTIN(__builtin_altivec_vminsd, "V2LLiV2LLiV2LLi", "")
    174 BUILTIN(__builtin_altivec_vminud, "V2ULLiV2ULLiV2ULLi", "")
    175 BUILTIN(__builtin_altivec_vminfp, "V4fV4fV4f", "")
    176 
    177 BUILTIN(__builtin_altivec_mtvscr, "vV4i", "")
    178 
    179 BUILTIN(__builtin_altivec_vrefp, "V4fV4f", "")
    180 
    181 BUILTIN(__builtin_altivec_vrlb, "V16cV16cV16Uc", "")
    182 BUILTIN(__builtin_altivec_vrlh, "V8sV8sV8Us", "")
    183 BUILTIN(__builtin_altivec_vrlw, "V4iV4iV4Ui", "")
    184 BUILTIN(__builtin_altivec_vrld, "V2LLiV2LLiV2ULLi", "")
    185 
    186 BUILTIN(__builtin_altivec_vsel_4si, "V4iV4iV4iV4Ui", "")
    187 
    188 BUILTIN(__builtin_altivec_vsl, "V4iV4iV4i", "")
    189 BUILTIN(__builtin_altivec_vslo, "V4iV4iV4i", "")
    190 
    191 BUILTIN(__builtin_altivec_vsrab, "V16cV16cV16Uc", "")
    192 BUILTIN(__builtin_altivec_vsrah, "V8sV8sV8Us", "")
    193 BUILTIN(__builtin_altivec_vsraw, "V4iV4iV4Ui", "")
    194 
    195 BUILTIN(__builtin_altivec_vsr, "V4iV4iV4i", "")
    196 BUILTIN(__builtin_altivec_vsro, "V4iV4iV4i", "")
    197 
    198 BUILTIN(__builtin_altivec_vrfin, "V4fV4f", "")
    199 
    200 BUILTIN(__builtin_altivec_vrsqrtefp, "V4fV4f", "")
    201 
    202 BUILTIN(__builtin_altivec_vsubcuw, "V4UiV4UiV4Ui", "")
    203 
    204 BUILTIN(__builtin_altivec_vsum4sbs, "V4SiV16ScV4Si", "")
    205 BUILTIN(__builtin_altivec_vsum4ubs, "V4UiV16UcV4Ui", "")
    206 BUILTIN(__builtin_altivec_vsum4shs, "V4SiV8SsV4Si", "")
    207 
    208 BUILTIN(__builtin_altivec_vsum2sws, "V4SiV4SiV4Si", "")
    209 
    210 BUILTIN(__builtin_altivec_vsumsws, "V4SiV4SiV4Si", "")
    211 
    212 BUILTIN(__builtin_altivec_vrfiz, "V4fV4f", "")
    213 
    214 BUILTIN(__builtin_altivec_vupkhsb, "V8sV16c", "")
    215 BUILTIN(__builtin_altivec_vupkhpx, "V4UiV8s", "")
    216 BUILTIN(__builtin_altivec_vupkhsh, "V4iV8s", "")
    217 BUILTIN(__builtin_altivec_vupkhsw, "V2LLiV4i", "")
    218 
    219 BUILTIN(__builtin_altivec_vupklsb, "V8sV16c", "")
    220 BUILTIN(__builtin_altivec_vupklpx, "V4UiV8s", "")
    221 BUILTIN(__builtin_altivec_vupklsh, "V4iV8s", "")
    222 BUILTIN(__builtin_altivec_vupklsw, "V2LLiV4i", "")
    223 
    224 BUILTIN(__builtin_altivec_vcmpbfp_p, "iiV4fV4f", "")
    225 
    226 BUILTIN(__builtin_altivec_vcmpgefp_p, "iiV4fV4f", "")
    227 
    228 BUILTIN(__builtin_altivec_vcmpequb_p, "iiV16cV16c", "")
    229 BUILTIN(__builtin_altivec_vcmpequh_p, "iiV8sV8s", "")
    230 BUILTIN(__builtin_altivec_vcmpequw_p, "iiV4iV4i", "")
    231 BUILTIN(__builtin_altivec_vcmpequd_p, "iiV2LLiV2LLi", "")
    232 BUILTIN(__builtin_altivec_vcmpeqfp_p, "iiV4fV4f", "")
    233 
    234 BUILTIN(__builtin_altivec_vcmpneb_p, "iiV16cV16c", "")
    235 BUILTIN(__builtin_altivec_vcmpneh_p, "iiV8sV8s", "")
    236 BUILTIN(__builtin_altivec_vcmpnew_p, "iiV4iV4i", "")
    237 BUILTIN(__builtin_altivec_vcmpned_p, "iiV2LLiV2LLi", "")
    238 
    239 BUILTIN(__builtin_altivec_vcmpgtsb_p, "iiV16ScV16Sc", "")
    240 BUILTIN(__builtin_altivec_vcmpgtub_p, "iiV16UcV16Uc", "")
    241 BUILTIN(__builtin_altivec_vcmpgtsh_p, "iiV8SsV8Ss", "")
    242 BUILTIN(__builtin_altivec_vcmpgtuh_p, "iiV8UsV8Us", "")
    243 BUILTIN(__builtin_altivec_vcmpgtsw_p, "iiV4SiV4Si", "")
    244 BUILTIN(__builtin_altivec_vcmpgtuw_p, "iiV4UiV4Ui", "")
    245 BUILTIN(__builtin_altivec_vcmpgtsd_p, "iiV2LLiV2LLi", "")
    246 BUILTIN(__builtin_altivec_vcmpgtud_p, "iiV2ULLiV2ULLi", "")
    247 BUILTIN(__builtin_altivec_vcmpgtfp_p, "iiV4fV4f", "")
    248 
    249 BUILTIN(__builtin_altivec_vgbbd, "V16UcV16Uc", "")
    250 BUILTIN(__builtin_altivec_vbpermq, "V2ULLiV16UcV16Uc", "")
    251 
    252 // P8 Crypto built-ins.
    253 BUILTIN(__builtin_altivec_crypto_vsbox, "V2ULLiV2ULLi", "")
    254 BUILTIN(__builtin_altivec_crypto_vpermxor, "V16UcV16UcV16UcV16Uc", "")
    255 BUILTIN(__builtin_altivec_crypto_vshasigmaw, "V4UiV4UiIiIi", "")
    256 BUILTIN(__builtin_altivec_crypto_vshasigmad, "V2ULLiV2ULLiIiIi", "")
    257 BUILTIN(__builtin_altivec_crypto_vcipher, "V2ULLiV2ULLiV2ULLi", "")
    258 BUILTIN(__builtin_altivec_crypto_vcipherlast, "V2ULLiV2ULLiV2ULLi", "")
    259 BUILTIN(__builtin_altivec_crypto_vncipher, "V2ULLiV2ULLiV2ULLi", "")
    260 BUILTIN(__builtin_altivec_crypto_vncipherlast, "V2ULLiV2ULLiV2ULLi", "")
    261 BUILTIN(__builtin_altivec_crypto_vpmsumb, "V16UcV16UcV16Uc", "")
    262 BUILTIN(__builtin_altivec_crypto_vpmsumh, "V8UsV8UsV8Us", "")
    263 BUILTIN(__builtin_altivec_crypto_vpmsumw, "V4UiV4UiV4Ui", "")
    264 BUILTIN(__builtin_altivec_crypto_vpmsumd, "V2ULLiV2ULLiV2ULLi", "")
    265 
    266 BUILTIN(__builtin_altivec_vclzb, "V16UcV16Uc", "")
    267 BUILTIN(__builtin_altivec_vclzh, "V8UsV8Us", "")
    268 BUILTIN(__builtin_altivec_vclzw, "V4UiV4Ui", "")
    269 BUILTIN(__builtin_altivec_vclzd, "V2ULLiV2ULLi", "")
    270 BUILTIN(__builtin_altivec_vctzb, "V16UcV16Uc", "")
    271 BUILTIN(__builtin_altivec_vctzh, "V8UsV8Us", "")
    272 BUILTIN(__builtin_altivec_vctzw, "V4UiV4Ui", "")
    273 BUILTIN(__builtin_altivec_vctzd, "V2ULLiV2ULLi", "")
    274 
    275 BUILTIN(__builtin_altivec_vclzlsbb, "SiV16Uc", "")
    276 BUILTIN(__builtin_altivec_vctzlsbb, "SiV16Uc", "")
    277 BUILTIN(__builtin_altivec_vprtybw, "V4UiV4Ui", "")
    278 BUILTIN(__builtin_altivec_vprtybd, "V2ULLiV2ULLi", "")
    279 BUILTIN(__builtin_altivec_vprtybq, "V1ULLLiV1ULLLi", "")
    280 
    281 // Vector population count built-ins
    282 BUILTIN(__builtin_altivec_vpopcntb, "V16UcV16Uc", "")
    283 BUILTIN(__builtin_altivec_vpopcnth, "V8UsV8Us", "")
    284 BUILTIN(__builtin_altivec_vpopcntw, "V4UiV4Ui", "")
    285 BUILTIN(__builtin_altivec_vpopcntd, "V2ULLiV2ULLi", "")
    286 
    287 // Absolute difference built-ins
    288 BUILTIN(__builtin_altivec_vabsdub, "V16UcV16UcV16Uc", "")
    289 BUILTIN(__builtin_altivec_vabsduh, "V8UsV8UsV8Us", "")
    290 BUILTIN(__builtin_altivec_vabsduw, "V4UiV4UiV4Ui", "")
    291 
    292 // P9 Shift built-ins.
    293 BUILTIN(__builtin_altivec_vslv, "V16UcV16UcV16Uc", "")
    294 BUILTIN(__builtin_altivec_vsrv, "V16UcV16UcV16Uc", "")
    295 
    296 // P9 Vector rotate built-ins
    297 BUILTIN(__builtin_altivec_vrlwmi, "V4UiV4UiV4UiV4Ui", "")
    298 BUILTIN(__builtin_altivec_vrldmi, "V2ULLiV2ULLiV2ULLiV2ULLi", "")
    299 BUILTIN(__builtin_altivec_vrlwnm, "V4UiV4UiV4Ui", "")
    300 BUILTIN(__builtin_altivec_vrldnm, "V2ULLiV2ULLiV2ULLi", "")
    301 
    302 // VSX built-ins.
    303 
    304 BUILTIN(__builtin_vsx_lxvd2x, "V2divC*", "")
    305 BUILTIN(__builtin_vsx_lxvw4x, "V4iivC*", "")
    306 BUILTIN(__builtin_vsx_lxvd2x_be, "V2dSLLivC*", "")
    307 BUILTIN(__builtin_vsx_lxvw4x_be, "V4iSLLivC*", "")
    308 
    309 BUILTIN(__builtin_vsx_stxvd2x, "vV2div*", "")
    310 BUILTIN(__builtin_vsx_stxvw4x, "vV4iiv*", "")
    311 BUILTIN(__builtin_vsx_stxvd2x_be, "vV2dSLLivC*", "")
    312 BUILTIN(__builtin_vsx_stxvw4x_be, "vV4iSLLivC*", "")
    313 
    314 BUILTIN(__builtin_vsx_lxvl, "V4ivC*ULLi", "")
    315 BUILTIN(__builtin_vsx_lxvll, "V4ivC*ULLi", "")
    316 BUILTIN(__builtin_vsx_stxvl, "vV4iv*ULLi", "")
    317 BUILTIN(__builtin_vsx_stxvll, "vV4iv*ULLi", "")
    318 
    319 BUILTIN(__builtin_vsx_xvmaxdp, "V2dV2dV2d", "")
    320 BUILTIN(__builtin_vsx_xvmaxsp, "V4fV4fV4f", "")
    321 BUILTIN(__builtin_vsx_xsmaxdp, "ddd", "")
    322 
    323 BUILTIN(__builtin_vsx_xvmindp, "V2dV2dV2d", "")
    324 BUILTIN(__builtin_vsx_xvminsp, "V4fV4fV4f", "")
    325 BUILTIN(__builtin_vsx_xsmindp, "ddd", "")
    326 
    327 BUILTIN(__builtin_vsx_xvdivdp, "V2dV2dV2d", "")
    328 BUILTIN(__builtin_vsx_xvdivsp, "V4fV4fV4f", "")
    329 
    330 BUILTIN(__builtin_vsx_xvrdpip, "V2dV2d", "")
    331 BUILTIN(__builtin_vsx_xvrspip, "V4fV4f", "")
    332 
    333 BUILTIN(__builtin_vsx_xvcmpeqdp, "V2ULLiV2dV2d", "")
    334 BUILTIN(__builtin_vsx_xvcmpeqsp, "V4UiV4fV4f", "")
    335 
    336 BUILTIN(__builtin_vsx_xvcmpeqdp_p, "iiV2dV2d", "")
    337 BUILTIN(__builtin_vsx_xvcmpeqsp_p, "iiV4fV4f", "")
    338 
    339 BUILTIN(__builtin_vsx_xvcmpgedp, "V2ULLiV2dV2d", "")
    340 BUILTIN(__builtin_vsx_xvcmpgesp, "V4UiV4fV4f", "")
    341 
    342 BUILTIN(__builtin_vsx_xvcmpgedp_p, "iiV2dV2d", "")
    343 BUILTIN(__builtin_vsx_xvcmpgesp_p, "iiV4fV4f", "")
    344 
    345 BUILTIN(__builtin_vsx_xvcmpgtdp, "V2ULLiV2dV2d", "")
    346 BUILTIN(__builtin_vsx_xvcmpgtsp, "V4UiV4fV4f", "")
    347 
    348 BUILTIN(__builtin_vsx_xvcmpgtdp_p, "iiV2dV2d", "")
    349 BUILTIN(__builtin_vsx_xvcmpgtsp_p, "iiV4fV4f", "")
    350 
    351 BUILTIN(__builtin_vsx_xvrdpim, "V2dV2d", "")
    352 BUILTIN(__builtin_vsx_xvrspim, "V4fV4f", "")
    353 
    354 BUILTIN(__builtin_vsx_xvrdpi, "V2dV2d", "")
    355 BUILTIN(__builtin_vsx_xvrspi, "V4fV4f", "")
    356 
    357 BUILTIN(__builtin_vsx_xvrdpic, "V2dV2d", "")
    358 BUILTIN(__builtin_vsx_xvrspic, "V4fV4f", "")
    359 
    360 BUILTIN(__builtin_vsx_xvrdpiz, "V2dV2d", "")
    361 BUILTIN(__builtin_vsx_xvrspiz, "V4fV4f", "")
    362 
    363 BUILTIN(__builtin_vsx_xvmaddadp, "V2dV2dV2dV2d", "")
    364 BUILTIN(__builtin_vsx_xvmaddasp, "V4fV4fV4fV4f", "")
    365 
    366 BUILTIN(__builtin_vsx_xvmsubadp, "V2dV2dV2dV2d", "")
    367 BUILTIN(__builtin_vsx_xvmsubasp, "V4fV4fV4fV4f", "")
    368 
    369 BUILTIN(__builtin_vsx_xvmuldp, "V2dV2dV2d", "")
    370 BUILTIN(__builtin_vsx_xvmulsp, "V4fV4fV4f", "")
    371 
    372 BUILTIN(__builtin_vsx_xvnmaddadp, "V2dV2dV2dV2d", "")
    373 BUILTIN(__builtin_vsx_xvnmaddasp, "V4fV4fV4fV4f", "")
    374 
    375 BUILTIN(__builtin_vsx_xvnmsubadp, "V2dV2dV2dV2d", "")
    376 BUILTIN(__builtin_vsx_xvnmsubasp, "V4fV4fV4fV4f", "")
    377 
    378 BUILTIN(__builtin_vsx_xvredp, "V2dV2d", "")
    379 BUILTIN(__builtin_vsx_xvresp, "V4fV4f", "")
    380 
    381 BUILTIN(__builtin_vsx_xvrsqrtedp, "V2dV2d", "")
    382 BUILTIN(__builtin_vsx_xvrsqrtesp, "V4fV4f", "")
    383 
    384 BUILTIN(__builtin_vsx_xvsqrtdp, "V2dV2d", "")
    385 BUILTIN(__builtin_vsx_xvsqrtsp, "V4fV4f", "")
    386 
    387 BUILTIN(__builtin_vsx_xxleqv, "V4UiV4UiV4Ui", "")
    388 
    389 BUILTIN(__builtin_vsx_xvcpsgndp, "V2dV2dV2d", "")
    390 BUILTIN(__builtin_vsx_xvcpsgnsp, "V4fV4fV4f", "")
    391 
    392 BUILTIN(__builtin_vsx_xvabssp, "V4fV4f", "")
    393 BUILTIN(__builtin_vsx_xvabsdp, "V2dV2d", "")
    394 
    395 // vector Insert/Extract exponent/significand builtins
    396 BUILTIN(__builtin_vsx_xviexpdp, "V2dV2ULLiV2ULLi", "")
    397 BUILTIN(__builtin_vsx_xviexpsp, "V4fV4UiV4Ui", "")
    398 BUILTIN(__builtin_vsx_xvxexpdp, "V2ULLiV2d", "")
    399 BUILTIN(__builtin_vsx_xvxexpsp, "V4UiV4f", "")
    400 BUILTIN(__builtin_vsx_xvxsigdp, "V2ULLiV2d", "")
    401 BUILTIN(__builtin_vsx_xvxsigsp, "V4UiV4f", "")
    402 
    403 // Conversion builtins
    404 BUILTIN(__builtin_vsx_xvcvdpsxws, "V4SiV2d", "")
    405 BUILTIN(__builtin_vsx_xvcvdpuxws, "V4UiV2d", "")
    406 BUILTIN(__builtin_vsx_xvcvsxwdp, "V2dV4Si", "")
    407 BUILTIN(__builtin_vsx_xvcvuxwdp, "V2dV4Ui", "")
    408 BUILTIN(__builtin_vsx_xvcvspdp, "V2dV4f", "")
    409 BUILTIN(__builtin_vsx_xvcvsxdsp, "V4fV2SLLi", "")
    410 BUILTIN(__builtin_vsx_xvcvuxdsp, "V4fV2ULLi", "")
    411 BUILTIN(__builtin_vsx_xvcvdpsp, "V4fV2d", "")
    412 
    413 BUILTIN(__builtin_vsx_xvcvsphp, "V4fV4f", "")
    414 BUILTIN(__builtin_vsx_xvcvhpsp, "V4fV8Us", "")
    415 
    416 // Vector Test Data Class builtins
    417 BUILTIN(__builtin_vsx_xvtstdcdp, "V2ULLiV2dIi", "")
    418 BUILTIN(__builtin_vsx_xvtstdcsp, "V4UiV4fIi", "")
    419 
    420 BUILTIN(__builtin_vsx_insertword, "V16UcV4UiV16UcIi", "")
    421 BUILTIN(__builtin_vsx_extractuword, "V2ULLiV16UcIi", "")
    422 
    423 BUILTIN(__builtin_vsx_xxpermdi, "v.", "t")
    424 BUILTIN(__builtin_vsx_xxsldwi, "v.", "t")
    425 
    426 // HTM builtins
    427 BUILTIN(__builtin_tbegin, "UiUIi", "")
    428 BUILTIN(__builtin_tend, "UiUIi", "")
    429 
    430 BUILTIN(__builtin_tabort, "UiUi", "")
    431 BUILTIN(__builtin_tabortdc, "UiUiUiUi", "")
    432 BUILTIN(__builtin_tabortdci, "UiUiUii", "")
    433 BUILTIN(__builtin_tabortwc, "UiUiUiUi", "")
    434 BUILTIN(__builtin_tabortwci, "UiUiUii", "")
    435 
    436 BUILTIN(__builtin_tcheck, "Ui", "")
    437 BUILTIN(__builtin_treclaim, "UiUi", "")
    438 BUILTIN(__builtin_trechkpt, "Ui", "")
    439 BUILTIN(__builtin_tsr, "UiUi", "")
    440 
    441 BUILTIN(__builtin_tendall, "Ui", "")
    442 BUILTIN(__builtin_tresume, "Ui", "")
    443 BUILTIN(__builtin_tsuspend, "Ui", "")
    444 
    445 BUILTIN(__builtin_get_texasr, "LUi", "c")
    446 BUILTIN(__builtin_get_texasru, "LUi", "c")
    447 BUILTIN(__builtin_get_tfhar, "LUi", "c")
    448 BUILTIN(__builtin_get_tfiar, "LUi", "c")
    449 
    450 BUILTIN(__builtin_set_texasr, "vLUi", "c")
    451 BUILTIN(__builtin_set_texasru, "vLUi", "c")
    452 BUILTIN(__builtin_set_tfhar, "vLUi", "c")
    453 BUILTIN(__builtin_set_tfiar, "vLUi", "c")
    454 
    455 BUILTIN(__builtin_ttest, "LUi", "")
    456 
    457 // Scalar built-ins
    458 BUILTIN(__builtin_divwe, "SiSiSi", "")
    459 BUILTIN(__builtin_divweu, "UiUiUi", "")
    460 BUILTIN(__builtin_divde, "SLLiSLLiSLLi", "")
    461 BUILTIN(__builtin_divdeu, "ULLiULLiULLi", "")
    462 BUILTIN(__builtin_bpermd, "SLLiSLLiSLLi", "")
    463 
    464 // FIXME: Obviously incomplete.
    465 
    466 #undef BUILTIN
    467