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