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