From: Anders Carlsson Date: Wed, 28 Nov 2007 06:09:44 +0000 (+0000) Subject: Add correct types for the last remaining intrinsics. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5df6070d62ac4ed7e0dc17e3f0c5ef7b3cf3f84e;p=clang Add correct types for the last remaining intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44396 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Driver/X86Builtins.def b/Driver/X86Builtins.def index 99ed570f7e..18ba684fee 100644 --- a/Driver/X86Builtins.def +++ b/Driver/X86Builtins.def @@ -22,7 +22,8 @@ BUILTIN(__builtin_ia32_emms , "v", "") -// FIXME: These types are incorrect. +// FIXME: Are these nothrow/const? + // SSE intrinsics. BUILTIN(__builtin_ia32_comieq, "iV4fV4f", "") BUILTIN(__builtin_ia32_comilt, "iV4fV4f", "") @@ -217,42 +218,42 @@ BUILTIN(__builtin_ia32_packsswb128, "V8sV8sV8s", "") BUILTIN(__builtin_ia32_packssdw128, "V4iV4iV4i", "") BUILTIN(__builtin_ia32_packuswb128, "V8sV8sV8s", "") BUILTIN(__builtin_ia32_pmulhuw128, "V8sV8sV8s", "") -BUILTIN(__builtin_ia32_addsubps, "v", "") -BUILTIN(__builtin_ia32_addsubpd, "v", "") -BUILTIN(__builtin_ia32_haddps, "v", "") -BUILTIN(__builtin_ia32_haddpd, "v", "") -BUILTIN(__builtin_ia32_hsubps, "v", "") -BUILTIN(__builtin_ia32_hsubpd, "v", "") -BUILTIN(__builtin_ia32_phaddw128, "v", "") -BUILTIN(__builtin_ia32_phaddw, "v", "") -BUILTIN(__builtin_ia32_phaddd128, "v", "") -BUILTIN(__builtin_ia32_phaddd, "v", "") -BUILTIN(__builtin_ia32_phaddsw128, "v", "") -BUILTIN(__builtin_ia32_phaddsw, "v", "") -BUILTIN(__builtin_ia32_phsubw128, "v", "") -BUILTIN(__builtin_ia32_phsubw, "v", "") -BUILTIN(__builtin_ia32_phsubd128, "v", "") -BUILTIN(__builtin_ia32_phsubd, "v", "") -BUILTIN(__builtin_ia32_phsubsw128, "v", "") -BUILTIN(__builtin_ia32_phsubsw, "v", "") -BUILTIN(__builtin_ia32_pmaddubsw128, "v", "") -BUILTIN(__builtin_ia32_pmaddubsw, "v", "") -BUILTIN(__builtin_ia32_pmulhrsw128, "v", "") -BUILTIN(__builtin_ia32_pmulhrsw, "v", "") -BUILTIN(__builtin_ia32_pshufb128, "v", "") -BUILTIN(__builtin_ia32_pshufb, "v", "") -BUILTIN(__builtin_ia32_psignb128, "v", "") -BUILTIN(__builtin_ia32_psignb, "v", "") -BUILTIN(__builtin_ia32_psignw128, "v", "") -BUILTIN(__builtin_ia32_psignw, "v", "") -BUILTIN(__builtin_ia32_psignd128, "v", "") -BUILTIN(__builtin_ia32_psignd, "v", "") -BUILTIN(__builtin_ia32_pabsb128, "v", "") -BUILTIN(__builtin_ia32_pabsb, "v", "") -BUILTIN(__builtin_ia32_pabsw128, "v", "") -BUILTIN(__builtin_ia32_pabsw, "v", "") -BUILTIN(__builtin_ia32_pabsd128, "v", "") -BUILTIN(__builtin_ia32_pabsd, "v", "") +BUILTIN(__builtin_ia32_addsubps, "V4fV4fV4f", "") +BUILTIN(__builtin_ia32_addsubpd, "V2dV2dV2d", "") +BUILTIN(__builtin_ia32_haddps, "V4fV4fV4f", "") +BUILTIN(__builtin_ia32_haddpd, "V2dV2dV2d", "") +BUILTIN(__builtin_ia32_hsubps, "V4fV4fV4f", "") +BUILTIN(__builtin_ia32_hsubpd, "V2dV2dV2d", "") +BUILTIN(__builtin_ia32_phaddw128, "V8sV8sV8s", "") +BUILTIN(__builtin_ia32_phaddw, "V4sV4sV4s", "") +BUILTIN(__builtin_ia32_phaddd128, "V4iV4iV4i", "") +BUILTIN(__builtin_ia32_phaddd, "V2iV2iV2i", "") +BUILTIN(__builtin_ia32_phaddsw128, "V8sV8sV8s", "") +BUILTIN(__builtin_ia32_phaddsw, "V4sV4sV4s", "") +BUILTIN(__builtin_ia32_phsubw128, "V8sV8sV8s", "") +BUILTIN(__builtin_ia32_phsubw, "V4sV4sV4s", "") +BUILTIN(__builtin_ia32_phsubd128, "V4iV4iV4i", "") +BUILTIN(__builtin_ia32_phsubd, "V2iV2iV2i", "") +BUILTIN(__builtin_ia32_phsubsw128, "V8sV8sV8s", "") +BUILTIN(__builtin_ia32_phsubsw, "V4sV4sV4s", "") +BUILTIN(__builtin_ia32_pmaddubsw128, "V16cV16cV16c", "") +BUILTIN(__builtin_ia32_pmaddubsw, "V8cV8cV8c", "") +BUILTIN(__builtin_ia32_pmulhrsw128, "V8sV8sV8s", "") +BUILTIN(__builtin_ia32_pmulhrsw, "V4sV4sV4s", "") +BUILTIN(__builtin_ia32_pshufb128, "V16cV16cV16c", "") +BUILTIN(__builtin_ia32_pshufb, "V8cV8cV8c", "") +BUILTIN(__builtin_ia32_psignb128, "V16cV16cV16c", "") +BUILTIN(__builtin_ia32_psignb, "V8cV8cV8c", "") +BUILTIN(__builtin_ia32_psignw128, "V8sV8sV8s", "") +BUILTIN(__builtin_ia32_psignw, "V4sV4sV4s", "") +BUILTIN(__builtin_ia32_psignd128, "V4iV4iV4i", "") +BUILTIN(__builtin_ia32_psignd, "V2iV2iV2i", "") +BUILTIN(__builtin_ia32_pabsb128, "V16cV16c", "") +BUILTIN(__builtin_ia32_pabsb, "V8cV8c", "") +BUILTIN(__builtin_ia32_pabsw128, "V8sV8s", "") +BUILTIN(__builtin_ia32_pabsw, "V4sV4s", "") +BUILTIN(__builtin_ia32_pabsd128, "V4iV4i", "") +BUILTIN(__builtin_ia32_pabsd, "V2iV2i", "") BUILTIN(__builtin_ia32_psllw, "V4sV4sV1LLi", "") BUILTIN(__builtin_ia32_pslld, "V2iV2iV1LLi", "") BUILTIN(__builtin_ia32_psllq, "V1LLiV1LLiV1LLi", "") @@ -261,7 +262,7 @@ BUILTIN(__builtin_ia32_psrld, "V2iV2iV1LLi", "") BUILTIN(__builtin_ia32_psrlq, "V1LLiV1LLiV1LLi", "") BUILTIN(__builtin_ia32_psraw, "V4sV4sV1LLi", "") BUILTIN(__builtin_ia32_psrad, "V2iV2iV1LLi", "") -BUILTIN(__builtin_ia32_pshufw, "v", "") +BUILTIN(__builtin_ia32_pshufw, "V4sV4si", "") BUILTIN(__builtin_ia32_pmaddwd, "V2iV4sV4s", "") BUILTIN(__builtin_ia32_packsswb, "V8cV4sV4s", "") BUILTIN(__builtin_ia32_packssdw, "V4sV2iV2i", "") @@ -271,12 +272,12 @@ BUILTIN(__builtin_ia32_stmxcsr, "Ui", "") BUILTIN(__builtin_ia32_cvtpi2ps, "V4fV4fV2i", "") BUILTIN(__builtin_ia32_cvtps2pi, "V2iV4f", "") BUILTIN(__builtin_ia32_cvtsi2ss, "V4fV4fi", "") -BUILTIN(__builtin_ia32_cvtsi642ss, "v", "") +BUILTIN(__builtin_ia32_cvtsi642ss, "V4fV4fLLi", "") BUILTIN(__builtin_ia32_cvtss2si, "iV4f", "") -BUILTIN(__builtin_ia32_cvtss2si64, "v", "") +BUILTIN(__builtin_ia32_cvtss2si64, "LLiV4f", "") BUILTIN(__builtin_ia32_cvttps2pi, "V2iV4f", "") BUILTIN(__builtin_ia32_cvttss2si, "iV4f", "") -BUILTIN(__builtin_ia32_cvttss2si64, "v", "") +BUILTIN(__builtin_ia32_cvttss2si64, "LLiV4f", "") BUILTIN(__builtin_ia32_maskmovq, "vV8cV8cc*", "") BUILTIN(__builtin_ia32_loadups, "V4ffC*", "") BUILTIN(__builtin_ia32_storeups, "vf*V4f", "") @@ -298,31 +299,31 @@ BUILTIN(__builtin_ia32_sqrtps, "V4fV4f", "") BUILTIN(__builtin_ia32_sqrtss, "V4fV4f", "") BUILTIN(__builtin_ia32_shufps, "V4fV4fV4fi", "") BUILTIN(__builtin_ia32_femms, "v", "") -BUILTIN(__builtin_ia32_pavgusb, "v", "") -BUILTIN(__builtin_ia32_pf2id, "v", "") -BUILTIN(__builtin_ia32_pfacc, "v", "") -BUILTIN(__builtin_ia32_pfadd, "v", "") -BUILTIN(__builtin_ia32_pfcmpeq, "v", "") -BUILTIN(__builtin_ia32_pfcmpge, "v", "") -BUILTIN(__builtin_ia32_pfcmpgt, "v", "") -BUILTIN(__builtin_ia32_pfmax, "v", "") -BUILTIN(__builtin_ia32_pfmin, "v", "") -BUILTIN(__builtin_ia32_pfmul, "v", "") -BUILTIN(__builtin_ia32_pfrcp, "v", "") -BUILTIN(__builtin_ia32_pfrcpit1, "v", "") -BUILTIN(__builtin_ia32_pfrcpit2, "v", "") -BUILTIN(__builtin_ia32_pfrsqrt, "v", "") -BUILTIN(__builtin_ia32_pfrsqit1, "v", "") -BUILTIN(__builtin_ia32_pfsub, "v", "") -BUILTIN(__builtin_ia32_pfsubr, "v", "") -BUILTIN(__builtin_ia32_pi2fd, "v", "") -BUILTIN(__builtin_ia32_pmulhrw, "v", "") -BUILTIN(__builtin_ia32_pf2iw, "v", "") -BUILTIN(__builtin_ia32_pfnacc, "v", "") -BUILTIN(__builtin_ia32_pfpnacc, "v", "") -BUILTIN(__builtin_ia32_pi2fw, "v", "") -BUILTIN(__builtin_ia32_pswapdsf, "v", "") -BUILTIN(__builtin_ia32_pswapdsi, "v", "") +BUILTIN(__builtin_ia32_pavgusb, "V8cV8cV8c", "") +BUILTIN(__builtin_ia32_pf2id, "V2iV2f", "") +BUILTIN(__builtin_ia32_pfacc, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfadd, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfcmpeq, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfcmpge, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfcmpgt, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfmax, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfmin, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfmul, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfrcp, "V2fV2f", "") +BUILTIN(__builtin_ia32_pfrcpit1, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfrcpit2, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfrsqrt, "V2fV2f", "") +BUILTIN(__builtin_ia32_pfrsqit1, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfsub, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfsubr, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pi2fd, "V2fV2i", "") +BUILTIN(__builtin_ia32_pmulhrw, "V4sV4sV4s", "") +BUILTIN(__builtin_ia32_pf2iw, "V2iV2f", "") +BUILTIN(__builtin_ia32_pfnacc, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pfpnacc, "V2fV2fV2f", "") +BUILTIN(__builtin_ia32_pi2fw, "V2fV2i", "") +BUILTIN(__builtin_ia32_pswapdsf, "V2fV2f", "") +BUILTIN(__builtin_ia32_pswapdsi, "V2iV2i", "") BUILTIN(__builtin_ia32_maskmovdqu, "vV16cV16cc*", "") BUILTIN(__builtin_ia32_loadupd, "V2dd*C", "") BUILTIN(__builtin_ia32_storeupd, "vd*V2d", "") @@ -334,8 +335,8 @@ BUILTIN(__builtin_ia32_movnti, "vi*i", "") BUILTIN(__builtin_ia32_movntpd, "vd*V2d", "") BUILTIN(__builtin_ia32_movntdq, "vV2LLi*V2LLi", "") BUILTIN(__builtin_ia32_pshufd, "V4iV4ii", "") -BUILTIN(__builtin_ia32_pshuflw, "v", "") -BUILTIN(__builtin_ia32_pshufhw, "v", "") +BUILTIN(__builtin_ia32_pshuflw, "V8sV8si", "") +BUILTIN(__builtin_ia32_pshufhw, "V8sV8si", "") BUILTIN(__builtin_ia32_psadbw128, "V2LLiV16cV16c", "") BUILTIN(__builtin_ia32_sqrtpd, "V2dV2d", "") BUILTIN(__builtin_ia32_sqrtsd, "V2dV2d", "") @@ -350,13 +351,13 @@ BUILTIN(__builtin_ia32_cvttpd2pi, "V2iV2d", "") BUILTIN(__builtin_ia32_cvtpi2pd, "V2dV2i", "") BUILTIN(__builtin_ia32_cvtsd2si, "iV2d", "") BUILTIN(__builtin_ia32_cvttsd2si, "iV2d", "") -BUILTIN(__builtin_ia32_cvtsd2si64, "v", "") -BUILTIN(__builtin_ia32_cvttsd2si64, "v", "") +BUILTIN(__builtin_ia32_cvtsd2si64, "LLiV2d", "") +BUILTIN(__builtin_ia32_cvttsd2si64, "LLiV2d", "") BUILTIN(__builtin_ia32_cvtps2dq, "V4iV4f", "") BUILTIN(__builtin_ia32_cvtps2pd, "V2dV4f", "") BUILTIN(__builtin_ia32_cvttps2dq, "V4iV4f", "") BUILTIN(__builtin_ia32_cvtsi2sd, "V2dV2di", "") -BUILTIN(__builtin_ia32_cvtsi642sd, "v", "") +BUILTIN(__builtin_ia32_cvtsi642sd, "V2dV2dLLi", "") BUILTIN(__builtin_ia32_cvtsd2ss, "V4fV4fV2d", "") BUILTIN(__builtin_ia32_cvtss2sd, "V2dV2dV4f", "") BUILTIN(__builtin_ia32_clflush, "vv*C", "") @@ -374,32 +375,23 @@ BUILTIN(__builtin_ia32_psrldi, "V2iV2ii", "") BUILTIN(__builtin_ia32_psrlqi, "V1LLiV1LLii", "") BUILTIN(__builtin_ia32_pmuludq, "V1LLiV2iV2i", "") BUILTIN(__builtin_ia32_pmuludq128, "V2LLiV4iV4i", "") -BUILTIN(__builtin_ia32_psllw128, "v", "") -BUILTIN(__builtin_ia32_pslld128, "v", "") -BUILTIN(__builtin_ia32_psllq128, "v", "") -BUILTIN(__builtin_ia32_psrlw128, "v", "") BUILTIN(__builtin_ia32_psrld128, "V2iV2iV1LLi", "") -BUILTIN(__builtin_ia32_psrlq128, "v", "") -BUILTIN(__builtin_ia32_psraw128, "v", "") -BUILTIN(__builtin_ia32_psrad128, "v", "") -BUILTIN(__builtin_ia32_pslldqi128, "v", "") BUILTIN(__builtin_ia32_psllwi128, "V8sV8si", "") BUILTIN(__builtin_ia32_pslldi128, "V4iV4ii", "") BUILTIN(__builtin_ia32_psllqi128, "V2LLiV2LLii", "") -BUILTIN(__builtin_ia32_psrldqi128, "v", "") BUILTIN(__builtin_ia32_psrlwi128, "V8sV8si", "") BUILTIN(__builtin_ia32_psrldi128, "V4iV4ii", "") BUILTIN(__builtin_ia32_psrlqi128, "V2LLiV2LLii", "") BUILTIN(__builtin_ia32_psrawi128, "V8sV8si", "") BUILTIN(__builtin_ia32_psradi128, "V4iV4ii", "") BUILTIN(__builtin_ia32_pmaddwd128, "V8sV8sV8s", "") -BUILTIN(__builtin_ia32_monitor, "v", "") -BUILTIN(__builtin_ia32_mwait, "v", "") -BUILTIN(__builtin_ia32_movshdup, "v", "") -BUILTIN(__builtin_ia32_movsldup, "v", "") -BUILTIN(__builtin_ia32_lddqu, "v", "") -BUILTIN(__builtin_ia32_palignr128, "v", "") -BUILTIN(__builtin_ia32_palignr, "v", "") +BUILTIN(__builtin_ia32_monitor, "vv*UiUi", "") +BUILTIN(__builtin_ia32_mwait, "vUiUi", "") +BUILTIN(__builtin_ia32_movshdup, "V4fV4f", "") +BUILTIN(__builtin_ia32_movsldup, "V4fV4f", "") +BUILTIN(__builtin_ia32_lddqu, "V16ccC*", "") +BUILTIN(__builtin_ia32_palignr128, "V2LLiV2LLii", "") +BUILTIN(__builtin_ia32_palignr, "V1LLiV1LLii", "") BUILTIN(__builtin_ia32_vec_init_v2si, "V2iii", "") BUILTIN(__builtin_ia32_vec_init_v4hi, "V4sssss", "") BUILTIN(__builtin_ia32_vec_init_v8qi, "V8ccccccccc", "")