Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217843/?format=api
{ "id": 2217843, "url": "http://patchwork.ozlabs.org/api/patches/2217843/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260330181125.6602F4A0A2@imap1.dmz-prg2.suse.org/", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/projects/17/?format=api", "name": "GNU Compiler Collection", "link_name": "gcc", "list_id": "gcc-patches.gcc.gnu.org", "list_email": "gcc-patches@gcc.gnu.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260330181125.6602F4A0A2@imap1.dmz-prg2.suse.org>", "list_archive_url": null, "date": "2026-03-30T18:11:24", "name": "middle-end/124634 - add internal function internals documentation section", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "da91087e0313131fc91bae29c3dbc24e81b0066c", "submitter": { "id": 4338, "url": "http://patchwork.ozlabs.org/api/people/4338/?format=api", "name": "Richard Biener", "email": "rguenther@suse.de" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260330181125.6602F4A0A2@imap1.dmz-prg2.suse.org/mbox/", "series": [ { "id": 498074, "url": "http://patchwork.ozlabs.org/api/series/498074/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=498074", "date": "2026-03-30T18:11:24", "name": "middle-end/124634 - add internal function internals documentation section", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/498074/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217843/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217843/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=XurbRqqG;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=7xXM0j9f;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=XurbRqqG;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=7xXM0j9f;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)", "sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=XurbRqqG;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=7xXM0j9f;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=XurbRqqG;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=7xXM0j9f", "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=suse.de", "sourceware.org; spf=pass smtp.mailfrom=suse.de", "server2.sourceware.org;\n arc=none smtp.remote-ip=195.135.223.130", "smtp-out1.suse.de;\n dkim=pass header.d=suse.de header.s=susede2_rsa header.b=XurbRqqG;\n dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=7xXM0j9f" ], "Received": [ "from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fkzqN3HPbz1xrn\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 05:12:16 +1100 (AEDT)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 5E84D4B92094\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 30 Mar 2026 18:12:14 +0000 (GMT)", "from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])\n by sourceware.org (Postfix) with ESMTPS id ED9E24BB590B\n for <gcc-patches@gcc.gnu.org>; Mon, 30 Mar 2026 18:11:26 +0000 (GMT)", "from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org\n [IPv6:2a07:de40:b281:104:10:150:64:97])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-out1.suse.de (Postfix) with ESMTPS id 945594D404;\n Mon, 30 Mar 2026 18:11:25 +0000 (UTC)", "from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 6602F4A0A2;\n Mon, 30 Mar 2026 18:11:25 +0000 (UTC)", "from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])\n by imap1.dmz-prg2.suse.org with ESMTPSA id fnJWF828ymkJQAAAD6G6ig\n (envelope-from <rguenther@suse.de>); Mon, 30 Mar 2026 18:11:25 +0000" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 5E84D4B92094", "OpenDKIM Filter v2.11.0 sourceware.org ED9E24BB590B" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org ED9E24BB590B", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org ED9E24BB590B", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774894287; cv=none;\n b=velGsh/OI3lRv2wElZ5Ssi0mw8d1mDWXFqlcNNyhbAfIQb8UynJLGgsxAUIBYmux7Jf6gI4Gq4sfS2lULQqT/k1bV32VBC7V938LMsaqXf6WGN4ZDsyP31eiGCUm1zc7zzW9ZfjNxcN1qW1uSZ55ZhkY18RuT/U8N343YVw5rs0=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1774894287; c=relaxed/simple;\n bh=2GU17vv8OCugtxA1VMp7TxYOuzFlZEGJc63xJ4sEd8A=;\n h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:Date:\n From:To:Subject:MIME-Version:Message-Id;\n b=R45l7qWTpgXdgkqQt6fXUj570tA0rGRxa+RM3+9VYamkfDUxGNSRiyLVfPglyHgFUJUOxJrs+ThaYS6AxJx97BbnN5M3a7tISWvESZT9MBSnFCLgOxNVUocD2Ik7ePT3ibBgomQVNd/ET2ji8Xnze9sceYcnNjnwgvLmG2kRi+E=", "ARC-Authentication-Results": "i=1; server2.sourceware.org", "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1774894285;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type;\n bh=ecn7+p4e+2J8cqwzv4Mxxexh7Z4h/CKBxH0KYcVt0RM=;\n b=XurbRqqGoejd1PynKTc81K+YeGH6murOMBA9mXf9IpOkTEoOW4wQNLiF7Qh/MSuCDyW46M\n SZJSKGFwvJOzdIi6RoyQjuGsJbaJWBdIoUGzBr5s3CVSRUBP6QC27hkaOi9r0oqoKlUkZP\n +LcgBTDkL/iisgOPw7Po5GHFTb11m3o=", "v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1774894285;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type;\n bh=ecn7+p4e+2J8cqwzv4Mxxexh7Z4h/CKBxH0KYcVt0RM=;\n b=7xXM0j9ftGdHvXqu94gGO4iMrUBFzDbm4+HbZ94Cc6RGkA2uCGfp8PMS6hzuYxF+lxLroz\n e7J2zREnnVNSuyDg==", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1774894285;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type;\n bh=ecn7+p4e+2J8cqwzv4Mxxexh7Z4h/CKBxH0KYcVt0RM=;\n b=XurbRqqGoejd1PynKTc81K+YeGH6murOMBA9mXf9IpOkTEoOW4wQNLiF7Qh/MSuCDyW46M\n SZJSKGFwvJOzdIi6RoyQjuGsJbaJWBdIoUGzBr5s3CVSRUBP6QC27hkaOi9r0oqoKlUkZP\n +LcgBTDkL/iisgOPw7Po5GHFTb11m3o=", "v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1774894285;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type;\n bh=ecn7+p4e+2J8cqwzv4Mxxexh7Z4h/CKBxH0KYcVt0RM=;\n b=7xXM0j9ftGdHvXqu94gGO4iMrUBFzDbm4+HbZ94Cc6RGkA2uCGfp8PMS6hzuYxF+lxLroz\n e7J2zREnnVNSuyDg==" ], "Date": "Mon, 30 Mar 2026 20:11:24 +0200 (CEST)", "From": "Richard Biener <rguenther@suse.de>", "To": "gcc-patches@gcc.gnu.org", "cc": "rdsandiford@googlemail.com, sloosemore@baylibre.com", "Subject": "[PATCH] middle-end/124634 - add internal function internals\n documentation section", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=US-ASCII", "Message-Id": "<20260330181125.6602F4A0A2@imap1.dmz-prg2.suse.org>", "X-Spamd-Result": "default: False [-4.51 / 50.00]; BAYES_HAM(-3.00)[100.00%];\n NEURAL_HAM_LONG(-1.00)[-1.000];\n R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];\n NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain];\n MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[];\n FREEMAIL_ENVRCPT(0.00)[googlemail.com];\n FUZZY_RATELIMITED(0.00)[rspamd.com];\n DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];\n MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[];\n FREEMAIL_CC(0.00)[googlemail.com,baylibre.com];\n DKIM_TRACE(0.00)[suse.de:+];\n SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];\n RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[];\n FROM_HAS_DN(0.00)[]; RCVD_TLS_ALL(0.00)[]; TO_DN_NONE(0.00)[];\n MISSING_XM_UA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[];\n RCPT_COUNT_THREE(0.00)[3];\n DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim, imap1.dmz-prg2.suse.org:rdns,\n imap1.dmz-prg2.suse.org:mid, imap1.dmz-prg2.suse.org:helo]", "X-Rspamd-Action": "no action", "X-Rspamd-Server": "rspamd1.dmz-prg2.suse.org", "X-Rspamd-Queue-Id": "945594D404", "X-BeenThere": "gcc-patches@gcc.gnu.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>", "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>", "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>", "List-Post": "<mailto:gcc-patches@gcc.gnu.org>", "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>", "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>", "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org" }, "content": "The following adds documentation for internal function details. I\nhave populated the internal function tables via macro expansion\nof the internal-fn.def file, so it's quite boiler-plate and asks\nfor manual amending in more complicated places.\n\nWithout such a place it's quite difficult to tell people to document\nthings when they add new internal functions. We might want to split\nthe table into two, separating direct internal functions from others.\n\nI have added some overall sentences related to internal functions\nand builtins but left the API section as a FIXME.\n\nI'm not sure we need a separate index - I have used IFN_ prefixes\nwhich separates them nicely. Removing those would warrant a\nseparate index.\n\nI've placed the contents after the GENERIC/GIMPLE chapters.\n\nI have looked over the generated pdf and it looks reasonable.\n\nIs this OK to push in this state? Or is \"bad\" documentation\nworse than none?\n\nThanks,\nRichard.\n\n\tPR middle-end/124634\n\t* doc/ifn.texi: New file.\n\t* doc/gccint.texi: Include ifn.texi.\n\t* Makefile.in (TEXI_GCCINT_FILES): Add ifn.texi.\n---\n gcc/Makefile.in | 2 +-\n gcc/doc/gccint.texi | 1 +\n gcc/doc/ifn.texi | 1183 +++++++++++++++++++++++++++++++++++++++++++\n 3 files changed, 1185 insertions(+), 1 deletion(-)\n create mode 100644 gcc/doc/ifn.texi", "diff": "diff --git a/gcc/Makefile.in b/gcc/Makefile.in\nindex 6355ab02582..775080ef0f3 100644\n--- a/gcc/Makefile.in\n+++ b/gcc/Makefile.in\n@@ -3809,7 +3809,7 @@ TEXI_GCCINT_FILES = gccint.texi gcc-common.texi gcc-vers.texi\t\t\\\n \t sourcebuild.texi gty.texi libgcc.texi cfg.texi tree-ssa.texi\t\\\n \t loop.texi generic.texi gimple.texi plugins.texi optinfo.texi \\\n \t match-and-simplify.texi analyzer.texi ux.texi poly-int.texi\t\\\n-\t params.texi specs.texi\n+\t params.texi specs.texi ifn.texi\n \n TEXI_GCCINSTALL_FILES = install.texi fdl.texi\t\t\\\n \t gcc-common.texi gcc-vers.texi\ndiff --git a/gcc/doc/gccint.texi b/gcc/doc/gccint.texi\nindex 9d3b2f23428..be752db3cd4 100644\n--- a/gcc/doc/gccint.texi\n+++ b/gcc/doc/gccint.texi\n@@ -155,6 +155,7 @@ Additional tutorial information is linked to from\n @include poly-int.texi\n @include generic.texi\n @include gimple.texi\n+@include ifn.texi\n @include tree-ssa.texi\n @include rtl.texi\n @include cfg.texi\ndiff --git a/gcc/doc/ifn.texi b/gcc/doc/ifn.texi\nnew file mode 100644\nindex 00000000000..4fa51f0b5ca\n--- /dev/null\n+++ b/gcc/doc/ifn.texi\n@@ -0,0 +1,1183 @@\n+@c Copyright (C) 1988-2026 Free Software Foundation, Inc.\n+@c This is part of the GCC manual.\n+@c For copying conditions, see the file gcc.texi.\n+\n+@node Internal Functions\n+@chapter Internal Functions in GENERIC and GIMPLE\n+@cindex internal functions\n+@cindex @file{internal-fn.def}\n+\n+In addition to builtin functions specified in @file{builtins.def} and\n+friends the GENERIC and GIMPLE intermediate languages use calls with\n+pre-defined semantics that are inline expanded to RTL rather than to\n+calls or lowered at some point during optimziation.\n+\n+Internal functions work like tree operation codes in that they are\n+not strongly typed so there are no variants like @code{BUILT_IN_SIN}\n+and @code{BUILT_IN_SINF} but just a single @code{IFN_SIN}.\n+\n+Internal functions are declared in @file{internal-fn.def}.\n+\n+@menu\n+* Internal Function API:: The internal function related API.\n+* Internal Functions:: Table of internal functions.\n+@end menu\n+\n+@node Internal Function API\n+@section The internal function related API\n+\n+Internal functions and builtin functions can be operated on\n+transparently via the @code{combined_fn} enumeration type and\n+the following set of helper functions.\n+\n+@c FIXME\n+\n+The following are internal function specific helpers working\n+on the @code{internal_fn} enumeration type.\n+\n+@c FIXME\n+\n+@node Internal Functions\n+@section Table of internal functions\n+\n+@menu\n+* Direct Internal Functions::\n+* Internal Functions corresponding to builtins::\n+* Other Internal Functions::\n+@end menu\n+\n+@node Direct Internal Functions\n+@subsection Direct Internal Functions\n+\n+@table @asis\n+\n+@cindex @code{IFN_CRC} internal function\n+@item @samp{IFN_CRC}\n+The @code{IFN_CRC} internal function directly maps to the @code{crc} instruction pattern.\n+\n+@cindex @code{IFN_CRC_REV} internal function\n+@item @samp{IFN_CRC_REV}\n+The @code{IFN_CRC_REV} internal function directly maps to the @code{crc_rev} instruction pattern.\n+\n+@cindex @code{IFN_MASK_LOAD} internal function\n+@item @samp{IFN_MASK_LOAD}\n+The @code{IFN_MASK_LOAD} internal function directly maps to the @code{maskload} instruction pattern.\n+\n+@cindex @code{IFN_LOAD_LANES} internal function\n+@item @samp{IFN_LOAD_LANES}\n+The @code{IFN_LOAD_LANES} internal function directly maps to the @code{vec_load_lanes} instruction pattern.\n+\n+@cindex @code{IFN_MASK_LOAD_LANES} internal function\n+@item @samp{IFN_MASK_LOAD_LANES}\n+The @code{IFN_MASK_LOAD_LANES} internal function directly maps to the @code{vec_mask_load_lanes} instruction pattern.\n+\n+@cindex @code{IFN_MASK_LEN_LOAD_LANES} internal function\n+@item @samp{IFN_MASK_LEN_LOAD_LANES}\n+The @code{IFN_MASK_LEN_LOAD_LANES} internal function directly maps to the @code{vec_mask_len_load_lanes} instruction pattern.\n+\n+@cindex @code{IFN_GATHER_LOAD} internal function\n+@item @samp{IFN_GATHER_LOAD}\n+The @code{IFN_GATHER_LOAD} internal function directly maps to the @code{gather_load} instruction pattern.\n+\n+@cindex @code{IFN_MASK_GATHER_LOAD} internal function\n+@item @samp{IFN_MASK_GATHER_LOAD}\n+The @code{IFN_MASK_GATHER_LOAD} internal function directly maps to the @code{mask_gather_load} instruction pattern.\n+\n+@cindex @code{IFN_MASK_LEN_GATHER_LOAD} internal function\n+@item @samp{IFN_MASK_LEN_GATHER_LOAD}\n+The @code{IFN_MASK_LEN_GATHER_LOAD} internal function directly maps to the @code{mask_len_gather_load} instruction pattern.\n+\n+@cindex @code{IFN_MASK_LEN_STRIDED_LOAD} internal function\n+@item @samp{IFN_MASK_LEN_STRIDED_LOAD}\n+The @code{IFN_MASK_LEN_STRIDED_LOAD} internal function directly maps to the @code{mask_len_strided_load} instruction pattern.\n+\n+@cindex @code{IFN_LEN_LOAD} internal function\n+@item @samp{IFN_LEN_LOAD}\n+The @code{IFN_LEN_LOAD} internal function directly maps to the @code{len_load} instruction pattern.\n+\n+@cindex @code{IFN_MASK_LEN_LOAD} internal function\n+@item @samp{IFN_MASK_LEN_LOAD}\n+The @code{IFN_MASK_LEN_LOAD} internal function directly maps to the @code{mask_len_load} instruction pattern.\n+\n+@cindex @code{IFN_SCATTER_STORE} internal function\n+@item @samp{IFN_SCATTER_STORE}\n+The @code{IFN_SCATTER_STORE} internal function directly maps to the @code{scatter_store} instruction pattern.\n+\n+@cindex @code{IFN_MASK_SCATTER_STORE} internal function\n+@item @samp{IFN_MASK_SCATTER_STORE}\n+The @code{IFN_MASK_SCATTER_STORE} internal function directly maps to the @code{mask_scatter_store} instruction pattern.\n+\n+@cindex @code{IFN_MASK_LEN_SCATTER_STORE} internal function\n+@item @samp{IFN_MASK_LEN_SCATTER_STORE}\n+The @code{IFN_MASK_LEN_SCATTER_STORE} internal function directly maps to the @code{mask_len_scatter_store} instruction pattern.\n+\n+@cindex @code{IFN_MASK_LEN_STRIDED_STORE} internal function\n+@item @samp{IFN_MASK_LEN_STRIDED_STORE}\n+The @code{IFN_MASK_LEN_STRIDED_STORE} internal function directly maps to the @code{mask_len_strided_store} instruction pattern.\n+\n+@cindex @code{IFN_MASK_STORE} internal function\n+@item @samp{IFN_MASK_STORE}\n+The @code{IFN_MASK_STORE} internal function directly maps to the @code{maskstore} instruction pattern.\n+\n+@cindex @code{IFN_STORE_LANES} internal function\n+@item @samp{IFN_STORE_LANES}\n+The @code{IFN_STORE_LANES} internal function directly maps to the @code{vec_store_lanes} instruction pattern.\n+\n+@cindex @code{IFN_MASK_STORE_LANES} internal function\n+@item @samp{IFN_MASK_STORE_LANES}\n+The @code{IFN_MASK_STORE_LANES} internal function directly maps to the @code{vec_mask_store_lanes} instruction pattern.\n+\n+@cindex @code{IFN_MASK_LEN_STORE_LANES} internal function\n+@item @samp{IFN_MASK_LEN_STORE_LANES}\n+The @code{IFN_MASK_LEN_STORE_LANES} internal function directly maps to the @code{vec_mask_len_store_lanes} instruction pattern.\n+\n+@cindex @code{IFN_VCOND_MASK} internal function\n+@item @samp{IFN_VCOND_MASK}\n+The @code{IFN_VCOND_MASK} internal function directly maps to the @code{vcond_mask} instruction pattern.\n+\n+@cindex @code{IFN_VCOND_MASK_LEN} internal function\n+@item @samp{IFN_VCOND_MASK_LEN}\n+The @code{IFN_VCOND_MASK_LEN} internal function directly maps to the @code{vcond_mask_len} instruction pattern.\n+\n+@cindex @code{IFN_VEC_SET} internal function\n+@item @samp{IFN_VEC_SET}\n+The @code{IFN_VEC_SET} internal function directly maps to the @code{vec_set} instruction pattern.\n+\n+@cindex @code{IFN_VEC_EXTRACT} internal function\n+@item @samp{IFN_VEC_EXTRACT}\n+The @code{IFN_VEC_EXTRACT} internal function directly maps to the @code{vec_extract} instruction pattern.\n+\n+@cindex @code{IFN_LEN_STORE} internal function\n+@item @samp{IFN_LEN_STORE}\n+The @code{IFN_LEN_STORE} internal function directly maps to the @code{len_store} instruction pattern.\n+\n+@cindex @code{IFN_MASK_LEN_STORE} internal function\n+@item @samp{IFN_MASK_LEN_STORE}\n+The @code{IFN_MASK_LEN_STORE} internal function directly maps to the @code{mask_len_store} instruction pattern.\n+\n+@cindex @code{IFN_WHILE_ULT} internal function\n+@item @samp{IFN_WHILE_ULT}\n+The @code{IFN_WHILE_ULT} internal function directly maps to the @code{while_ult} instruction pattern.\n+\n+@cindex @code{IFN_SELECT_VL} internal function\n+@item @samp{IFN_SELECT_VL}\n+The @code{IFN_SELECT_VL} internal function directly maps to the @code{select_vl} instruction pattern.\n+\n+@cindex @code{IFN_CHECK_RAW_PTRS} internal function\n+@item @samp{IFN_CHECK_RAW_PTRS}\n+The @code{IFN_CHECK_RAW_PTRS} internal function directly maps to the @code{check_raw_ptrs} instruction pattern.\n+\n+@cindex @code{IFN_CHECK_WAR_PTRS} internal function\n+@item @samp{IFN_CHECK_WAR_PTRS}\n+The @code{IFN_CHECK_WAR_PTRS} internal function directly maps to the @code{check_war_ptrs} instruction pattern.\n+\n+@cindex @code{IFN_VEC_SHL_INSERT} internal function\n+@item @samp{IFN_VEC_SHL_INSERT}\n+The @code{IFN_VEC_SHL_INSERT} internal function directly maps to the @code{vec_shl_insert} instruction pattern.\n+\n+@cindex @code{IFN_DIV_POW2} internal function\n+@item @samp{IFN_DIV_POW2}\n+The @code{IFN_DIV_POW2} internal function directly maps to the @code{sdiv_pow2} instruction pattern.\n+\n+@cindex @code{IFN_FMS} internal function\n+@item @samp{IFN_FMS}\n+The @code{IFN_FMS} internal function directly maps to the @code{fms} instruction pattern.\n+\n+@cindex @code{IFN_FNMA} internal function\n+@item @samp{IFN_FNMA}\n+The @code{IFN_FNMA} internal function directly maps to the @code{fnma} instruction pattern.\n+\n+@cindex @code{IFN_FNMS} internal function\n+@item @samp{IFN_FNMS}\n+The @code{IFN_FNMS} internal function directly maps to the @code{fnms} instruction pattern.\n+\n+@cindex @code{IFN_COND_SQRT} internal function\n+@item @samp{IFN_COND_SQRT}\n+The @code{IFN_COND_SQRT} internal function directly maps to the @code{cond_sqrt} instruction pattern.\n+@cindex @code{IFN_COND_LEN_SQRT} internal function\n+@item @samp{IFN_COND_LEN_SQRT}\n+The @code{IFN_COND_LEN_SQRT} internal function directly maps to the @code{cond_len_sqrt} instruction pattern.\n+\n+@cindex @code{IFN_COND_CEIL} internal function\n+@item @samp{IFN_COND_CEIL}\n+The @code{IFN_COND_CEIL} internal function directly maps to the @code{cond_ceil} instruction pattern.\n+@cindex @code{IFN_COND_LEN_CEIL} internal function\n+@item @samp{IFN_COND_LEN_CEIL}\n+The @code{IFN_COND_LEN_CEIL} internal function directly maps to the @code{cond_len_ceil} instruction pattern.\n+\n+@cindex @code{IFN_COND_FLOOR} internal function\n+@item @samp{IFN_COND_FLOOR}\n+The @code{IFN_COND_FLOOR} internal function directly maps to the @code{cond_floor} instruction pattern.\n+@cindex @code{IFN_COND_LEN_FLOOR} internal function\n+@item @samp{IFN_COND_LEN_FLOOR}\n+The @code{IFN_COND_LEN_FLOOR} internal function directly maps to the @code{cond_len_floor} instruction pattern.\n+\n+@cindex @code{IFN_COND_ROUND} internal function\n+@item @samp{IFN_COND_ROUND}\n+The @code{IFN_COND_ROUND} internal function directly maps to the @code{cond_round} instruction pattern.\n+@cindex @code{IFN_COND_LEN_ROUND} internal function\n+@item @samp{IFN_COND_LEN_ROUND}\n+The @code{IFN_COND_LEN_ROUND} internal function directly maps to the @code{cond_len_round} instruction pattern.\n+\n+@cindex @code{IFN_COND_RINT} internal function\n+@item @samp{IFN_COND_RINT}\n+The @code{IFN_COND_RINT} internal function directly maps to the @code{cond_rint} instruction pattern.\n+@cindex @code{IFN_COND_LEN_RINT} internal function\n+@item @samp{IFN_COND_LEN_RINT}\n+The @code{IFN_COND_LEN_RINT} internal function directly maps to the @code{cond_len_rint} instruction pattern.\n+\n+@cindex @code{IFN_COND_ADD} internal function\n+@item @samp{IFN_COND_ADD}\n+The @code{IFN_COND_ADD} internal function directly maps to the @code{cond_add} instruction pattern.\n+@cindex @code{IFN_COND_LEN_ADD} internal function\n+@item @samp{IFN_COND_LEN_ADD}\n+The @code{IFN_COND_LEN_ADD} internal function directly maps to the @code{cond_len_add} instruction pattern.\n+\n+@cindex @code{IFN_COND_SUB} internal function\n+@item @samp{IFN_COND_SUB}\n+The @code{IFN_COND_SUB} internal function directly maps to the @code{cond_sub} instruction pattern.\n+@cindex @code{IFN_COND_LEN_SUB} internal function\n+@item @samp{IFN_COND_LEN_SUB}\n+The @code{IFN_COND_LEN_SUB} internal function directly maps to the @code{cond_len_sub} instruction pattern.\n+\n+@cindex @code{IFN_COND_MUL} internal function\n+@item @samp{IFN_COND_MUL}\n+The @code{IFN_COND_MUL} internal function directly maps to the @code{cond_smul} instruction pattern.\n+@cindex @code{IFN_COND_LEN_MUL} internal function\n+@item @samp{IFN_COND_LEN_MUL}\n+The @code{IFN_COND_LEN_MUL} internal function directly maps to the @code{cond_len_smul} instruction pattern.\n+\n+@cindex @code{IFN_COND_RDIV} internal function\n+@item @samp{IFN_COND_RDIV}\n+The @code{IFN_COND_RDIV} internal function directly maps to the @code{cond_sdiv} instruction pattern.\n+@cindex @code{IFN_COND_LEN_RDIV} internal function\n+@item @samp{IFN_COND_LEN_RDIV}\n+The @code{IFN_COND_LEN_RDIV} internal function directly maps to the @code{cond_len_sdiv} instruction pattern.\n+\n+@cindex @code{IFN_COND_COPYSIGN} internal function\n+@item @samp{IFN_COND_COPYSIGN}\n+The @code{IFN_COND_COPYSIGN} internal function directly maps to the @code{cond_copysign} instruction pattern.\n+@cindex @code{IFN_COND_LEN_COPYSIGN} internal function\n+@item @samp{IFN_COND_LEN_COPYSIGN}\n+The @code{IFN_COND_LEN_COPYSIGN} internal function directly maps to the @code{cond_len_copysign} instruction pattern.\n+\n+@cindex @code{IFN_COND_FMIN} internal function\n+@item @samp{IFN_COND_FMIN}\n+The @code{IFN_COND_FMIN} internal function directly maps to the @code{cond_fmin} instruction pattern.\n+@cindex @code{IFN_COND_LEN_FMIN} internal function\n+@item @samp{IFN_COND_LEN_FMIN}\n+The @code{IFN_COND_LEN_FMIN} internal function directly maps to the @code{cond_len_fmin} instruction pattern.\n+\n+@cindex @code{IFN_COND_FMAX} internal function\n+@item @samp{IFN_COND_FMAX}\n+The @code{IFN_COND_FMAX} internal function directly maps to the @code{cond_fmax} instruction pattern.\n+@cindex @code{IFN_COND_LEN_FMAX} internal function\n+@item @samp{IFN_COND_LEN_FMAX}\n+The @code{IFN_COND_LEN_FMAX} internal function directly maps to the @code{cond_len_fmax} instruction pattern.\n+\n+@cindex @code{IFN_COND_AND} internal function\n+@item @samp{IFN_COND_AND}\n+The @code{IFN_COND_AND} internal function directly maps to the @code{cond_and} instruction pattern.\n+@cindex @code{IFN_COND_LEN_AND} internal function\n+@item @samp{IFN_COND_LEN_AND}\n+The @code{IFN_COND_LEN_AND} internal function directly maps to the @code{cond_len_and} instruction pattern.\n+\n+@cindex @code{IFN_COND_IOR} internal function\n+@item @samp{IFN_COND_IOR}\n+The @code{IFN_COND_IOR} internal function directly maps to the @code{cond_ior} instruction pattern.\n+@cindex @code{IFN_COND_LEN_IOR} internal function\n+@item @samp{IFN_COND_LEN_IOR}\n+The @code{IFN_COND_LEN_IOR} internal function directly maps to the @code{cond_len_ior} instruction pattern.\n+\n+@cindex @code{IFN_COND_XOR} internal function\n+@item @samp{IFN_COND_XOR}\n+The @code{IFN_COND_XOR} internal function directly maps to the @code{cond_xor} instruction pattern.\n+@cindex @code{IFN_COND_LEN_XOR} internal function\n+@item @samp{IFN_COND_LEN_XOR}\n+The @code{IFN_COND_LEN_XOR} internal function directly maps to the @code{cond_len_xor} instruction pattern.\n+\n+@cindex @code{IFN_COND_SHL} internal function\n+@item @samp{IFN_COND_SHL}\n+The @code{IFN_COND_SHL} internal function directly maps to the @code{cond_ashl} instruction pattern.\n+@cindex @code{IFN_COND_LEN_SHL} internal function\n+@item @samp{IFN_COND_LEN_SHL}\n+The @code{IFN_COND_LEN_SHL} internal function directly maps to the @code{cond_len_ashl} instruction pattern.\n+\n+@cindex @code{IFN_COND_FMA} internal function\n+@item @samp{IFN_COND_FMA}\n+The @code{IFN_COND_FMA} internal function directly maps to the @code{cond_fma} instruction pattern.\n+@cindex @code{IFN_COND_LEN_FMA} internal function\n+@item @samp{IFN_COND_LEN_FMA}\n+The @code{IFN_COND_LEN_FMA} internal function directly maps to the @code{cond_len_fma} instruction pattern.\n+\n+@cindex @code{IFN_COND_FMS} internal function\n+@item @samp{IFN_COND_FMS}\n+The @code{IFN_COND_FMS} internal function directly maps to the @code{cond_fms} instruction pattern.\n+@cindex @code{IFN_COND_LEN_FMS} internal function\n+@item @samp{IFN_COND_LEN_FMS}\n+The @code{IFN_COND_LEN_FMS} internal function directly maps to the @code{cond_len_fms} instruction pattern.\n+\n+@cindex @code{IFN_COND_FNMA} internal function\n+@item @samp{IFN_COND_FNMA}\n+The @code{IFN_COND_FNMA} internal function directly maps to the @code{cond_fnma} instruction pattern.\n+@cindex @code{IFN_COND_LEN_FNMA} internal function\n+@item @samp{IFN_COND_LEN_FNMA}\n+The @code{IFN_COND_LEN_FNMA} internal function directly maps to the @code{cond_len_fnma} instruction pattern.\n+\n+@cindex @code{IFN_COND_FNMS} internal function\n+@item @samp{IFN_COND_FNMS}\n+The @code{IFN_COND_FNMS} internal function directly maps to the @code{cond_fnms} instruction pattern.\n+@cindex @code{IFN_COND_LEN_FNMS} internal function\n+@item @samp{IFN_COND_LEN_FNMS}\n+The @code{IFN_COND_LEN_FNMS} internal function directly maps to the @code{cond_len_fnms} instruction pattern.\n+\n+@cindex @code{IFN_COND_NEG} internal function\n+@item @samp{IFN_COND_NEG}\n+The @code{IFN_COND_NEG} internal function directly maps to the @code{cond_neg} instruction pattern.\n+@cindex @code{IFN_COND_LEN_NEG} internal function\n+@item @samp{IFN_COND_LEN_NEG}\n+The @code{IFN_COND_LEN_NEG} internal function directly maps to the @code{cond_len_neg} instruction pattern.\n+\n+@cindex @code{IFN_COND_NOT} internal function\n+@item @samp{IFN_COND_NOT}\n+The @code{IFN_COND_NOT} internal function directly maps to the @code{cond_one_cmpl} instruction pattern.\n+@cindex @code{IFN_COND_LEN_NOT} internal function\n+@item @samp{IFN_COND_LEN_NOT}\n+The @code{IFN_COND_LEN_NOT} internal function directly maps to the @code{cond_len_one_cmpl} instruction pattern.\n+\n+@cindex @code{IFN_RSQRT} internal function\n+@item @samp{IFN_RSQRT}\n+The @code{IFN_RSQRT} internal function directly maps to the @code{rsqrt} instruction pattern.\n+\n+@cindex @code{IFN_REDUC_PLUS} internal function\n+@item @samp{IFN_REDUC_PLUS}\n+The @code{IFN_REDUC_PLUS} internal function directly maps to the @code{reduc_plus_scal} instruction pattern.\n+\n+@cindex @code{IFN_REDUC_FMAX} internal function\n+@item @samp{IFN_REDUC_FMAX}\n+The @code{IFN_REDUC_FMAX} internal function directly maps to the @code{reduc_fmax_scal} instruction pattern.\n+\n+@cindex @code{IFN_REDUC_FMIN} internal function\n+@item @samp{IFN_REDUC_FMIN}\n+The @code{IFN_REDUC_FMIN} internal function directly maps to the @code{reduc_fmin_scal} instruction pattern.\n+\n+@cindex @code{IFN_REDUC_AND} internal function\n+@item @samp{IFN_REDUC_AND}\n+The @code{IFN_REDUC_AND} internal function directly maps to the @code{reduc_and_scal} instruction pattern.\n+\n+@cindex @code{IFN_REDUC_IOR} internal function\n+@item @samp{IFN_REDUC_IOR}\n+The @code{IFN_REDUC_IOR} internal function directly maps to the @code{reduc_ior_scal} instruction pattern.\n+\n+@cindex @code{IFN_REDUC_XOR} internal function\n+@item @samp{IFN_REDUC_XOR}\n+The @code{IFN_REDUC_XOR} internal function directly maps to the @code{reduc_xor_scal} instruction pattern.\n+\n+@cindex @code{IFN_REDUC_SBOOL_AND} internal function\n+@item @samp{IFN_REDUC_SBOOL_AND}\n+The @code{IFN_REDUC_SBOOL_AND} internal function directly maps to the @code{reduc_sbool_and_scal} instruction pattern.\n+\n+@cindex @code{IFN_REDUC_SBOOL_IOR} internal function\n+@item @samp{IFN_REDUC_SBOOL_IOR}\n+The @code{IFN_REDUC_SBOOL_IOR} internal function directly maps to the @code{reduc_sbool_ior_scal} instruction pattern.\n+\n+@cindex @code{IFN_REDUC_SBOOL_XOR} internal function\n+@item @samp{IFN_REDUC_SBOOL_XOR}\n+The @code{IFN_REDUC_SBOOL_XOR} internal function directly maps to the @code{reduc_sbool_xor_scal} instruction pattern.\n+\n+@cindex @code{IFN_EXTRACT_LAST} internal function\n+@item @samp{IFN_EXTRACT_LAST}\n+The @code{IFN_EXTRACT_LAST} internal function directly maps to the @code{extract_last} instruction pattern.\n+\n+@cindex @code{IFN_FOLD_EXTRACT_LAST} internal function\n+@item @samp{IFN_FOLD_EXTRACT_LAST}\n+The @code{IFN_FOLD_EXTRACT_LAST} internal function directly maps to the @code{fold_extract_last} instruction pattern.\n+\n+@cindex @code{IFN_LEN_FOLD_EXTRACT_LAST} internal function\n+@item @samp{IFN_LEN_FOLD_EXTRACT_LAST}\n+The @code{IFN_LEN_FOLD_EXTRACT_LAST} internal function directly maps to the @code{len_fold_extract_last} instruction pattern.\n+\n+@cindex @code{IFN_FOLD_LEFT_PLUS} internal function\n+@item @samp{IFN_FOLD_LEFT_PLUS}\n+The @code{IFN_FOLD_LEFT_PLUS} internal function directly maps to the @code{fold_left_plus} instruction pattern.\n+\n+@cindex @code{IFN_MASK_FOLD_LEFT_PLUS} internal function\n+@item @samp{IFN_MASK_FOLD_LEFT_PLUS}\n+The @code{IFN_MASK_FOLD_LEFT_PLUS} internal function directly maps to the @code{mask_fold_left_plus} instruction pattern.\n+\n+@cindex @code{IFN_MASK_LEN_FOLD_LEFT_PLUS} internal function\n+@item @samp{IFN_MASK_LEN_FOLD_LEFT_PLUS}\n+The @code{IFN_MASK_LEN_FOLD_LEFT_PLUS} internal function directly maps to the @code{mask_len_fold_left_plus} instruction pattern.\n+\n+@cindex @code{IFN_XORSIGN} internal function\n+@item @samp{IFN_XORSIGN}\n+The @code{IFN_XORSIGN} internal function directly maps to the @code{xorsign} instruction pattern.\n+\n+@cindex @code{IFN_COMPLEX_ADD_ROT90} internal function\n+@item @samp{IFN_COMPLEX_ADD_ROT90}\n+The @code{IFN_COMPLEX_ADD_ROT90} internal function directly maps to the @code{cadd90} instruction pattern.\n+\n+@cindex @code{IFN_COMPLEX_ADD_ROT270} internal function\n+@item @samp{IFN_COMPLEX_ADD_ROT270}\n+The @code{IFN_COMPLEX_ADD_ROT270} internal function directly maps to the @code{cadd270} instruction pattern.\n+\n+@cindex @code{IFN_COMPLEX_MUL} internal function\n+@item @samp{IFN_COMPLEX_MUL}\n+The @code{IFN_COMPLEX_MUL} internal function directly maps to the @code{cmul} instruction pattern.\n+\n+@cindex @code{IFN_COMPLEX_MUL_CONJ} internal function\n+@item @samp{IFN_COMPLEX_MUL_CONJ}\n+The @code{IFN_COMPLEX_MUL_CONJ} internal function directly maps to the @code{cmul_conj} instruction pattern.\n+\n+@cindex @code{IFN_VEC_ADDSUB} internal function\n+@item @samp{IFN_VEC_ADDSUB}\n+The @code{IFN_VEC_ADDSUB} internal function directly maps to the @code{vec_addsub} instruction pattern.\n+\n+@cindex @code{IFN_VEC_TRUNC_ADD_HIGH} internal function\n+@item @samp{IFN_VEC_TRUNC_ADD_HIGH}\n+The @code{IFN_VEC_TRUNC_ADD_HIGH} internal function directly maps to the @code{vec_trunc_add_high} instruction pattern.\n+\n+@cindex @code{IFN_VEC_FMADDSUB} internal function\n+@item @samp{IFN_VEC_FMADDSUB}\n+The @code{IFN_VEC_FMADDSUB} internal function directly maps to the @code{vec_fmaddsub} instruction pattern.\n+\n+@cindex @code{IFN_VEC_FMSUBADD} internal function\n+@item @samp{IFN_VEC_FMSUBADD}\n+The @code{IFN_VEC_FMSUBADD} internal function directly maps to the @code{vec_fmsubadd} instruction pattern.\n+\n+@cindex @code{IFN_COMPLEX_FMA} internal function\n+@item @samp{IFN_COMPLEX_FMA}\n+The @code{IFN_COMPLEX_FMA} internal function directly maps to the @code{cmla} instruction pattern.\n+\n+@cindex @code{IFN_COMPLEX_FMA_CONJ} internal function\n+@item @samp{IFN_COMPLEX_FMA_CONJ}\n+The @code{IFN_COMPLEX_FMA_CONJ} internal function directly maps to the @code{cmla_conj} instruction pattern.\n+\n+@cindex @code{IFN_COMPLEX_FMS} internal function\n+@item @samp{IFN_COMPLEX_FMS}\n+The @code{IFN_COMPLEX_FMS} internal function directly maps to the @code{cmls} instruction pattern.\n+\n+@cindex @code{IFN_COMPLEX_FMS_CONJ} internal function\n+@item @samp{IFN_COMPLEX_FMS_CONJ}\n+The @code{IFN_COMPLEX_FMS_CONJ} internal function directly maps to the @code{cmls_conj} instruction pattern.\n+\n+@cindex @code{IFN_BIT_ANDN} internal function\n+@item @samp{IFN_BIT_ANDN}\n+The @code{IFN_BIT_ANDN} internal function directly maps to the @code{andn} instruction pattern.\n+\n+@cindex @code{IFN_BIT_IORN} internal function\n+@item @samp{IFN_BIT_IORN}\n+The @code{IFN_BIT_IORN} internal function directly maps to the @code{iorn} instruction pattern.\n+\n+@cindex @code{IFN_ABD} internal function\n+@item @samp{IFN_ABD}\n+The @code{IFN_ABD} internal function directly maps to the @code{sabd} and @code{uabd} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_AVG_FLOOR} internal function\n+@item @samp{IFN_AVG_FLOOR}\n+The @code{IFN_AVG_FLOOR} internal function directly maps to the @code{savg_floor} and @code{uavg_floor} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_AVG_CEIL} internal function\n+@item @samp{IFN_AVG_CEIL}\n+The @code{IFN_AVG_CEIL} internal function directly maps to the @code{savg_ceil} and @code{uavg_ceil} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_MULH} internal function\n+@item @samp{IFN_MULH}\n+The @code{IFN_MULH} internal function directly maps to the @code{smul_highpart} and @code{umul_highpart} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_MULHS} internal function\n+@item @samp{IFN_MULHS}\n+The @code{IFN_MULHS} internal function directly maps to the @code{smulhs} and @code{umulhs} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_MULHRS} internal function\n+@item @samp{IFN_MULHRS}\n+The @code{IFN_MULHRS} internal function directly maps to the @code{smulhrs} and @code{umulhrs} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_SAT_ADD} internal function\n+@item @samp{IFN_SAT_ADD}\n+The @code{IFN_SAT_ADD} internal function directly maps to the @code{ssadd} and @code{usadd} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_SAT_SUB} internal function\n+@item @samp{IFN_SAT_SUB}\n+The @code{IFN_SAT_SUB} internal function directly maps to the @code{sssub} and @code{ussub} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_SAT_MUL} internal function\n+@item @samp{IFN_SAT_MUL}\n+The @code{IFN_SAT_MUL} internal function directly maps to the @code{ssmul} and @code{usmul} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_SAT_TRUNC} internal function\n+@item @samp{IFN_SAT_TRUNC}\n+The @code{IFN_SAT_TRUNC} internal function directly maps to the @code{sstrunc} and @code{ustrunc} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_COND_DIV} internal function\n+@item @samp{IFN_COND_DIV}\n+The @code{IFN_COND_DIV} internal function directly maps to the @code{cond_sdiv} and @code{cond_udiv} instruction patterns depending on the sign of the first argument.\n+@cindex @code{IFN_COND_LEN_DIV} internal function\n+@item @samp{IFN_COND_LEN_DIV}\n+The @code{IFN_COND_LEN_DIV} internal function directly maps to the @code{cond_len_sdiv} and @code{cond_len_udiv} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_COND_MOD} internal function\n+@item @samp{IFN_COND_MOD}\n+The @code{IFN_COND_MOD} internal function directly maps to the @code{cond_smod} and @code{cond_umod} instruction patterns depending on the sign of the first argument.\n+@cindex @code{IFN_COND_LEN_MOD} internal function\n+@item @samp{IFN_COND_LEN_MOD}\n+The @code{IFN_COND_LEN_MOD} internal function directly maps to the @code{cond_len_smod} and @code{cond_len_umod} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_COND_MIN} internal function\n+@item @samp{IFN_COND_MIN}\n+The @code{IFN_COND_MIN} internal function directly maps to the @code{cond_smin} and @code{cond_umin} instruction patterns depending on the sign of the first argument.\n+@cindex @code{IFN_COND_LEN_MIN} internal function\n+@item @samp{IFN_COND_LEN_MIN}\n+The @code{IFN_COND_LEN_MIN} internal function directly maps to the @code{cond_len_smin} and @code{cond_len_umin} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_COND_MAX} internal function\n+@item @samp{IFN_COND_MAX}\n+The @code{IFN_COND_MAX} internal function directly maps to the @code{cond_smax} and @code{cond_umax} instruction patterns depending on the sign of the first argument.\n+@cindex @code{IFN_COND_LEN_MAX} internal function\n+@item @samp{IFN_COND_LEN_MAX}\n+The @code{IFN_COND_LEN_MAX} internal function directly maps to the @code{cond_len_smax} and @code{cond_len_umax} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_COND_SHR} internal function\n+@item @samp{IFN_COND_SHR}\n+The @code{IFN_COND_SHR} internal function directly maps to the @code{cond_ashr} and @code{cond_lshr} instruction patterns depending on the sign of the first argument.\n+@cindex @code{IFN_COND_LEN_SHR} internal function\n+@item @samp{IFN_COND_LEN_SHR}\n+The @code{IFN_COND_LEN_SHR} internal function directly maps to the @code{cond_len_ashr} and @code{cond_len_lshr} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_REDUC_MAX} internal function\n+@item @samp{IFN_REDUC_MAX}\n+The @code{IFN_REDUC_MAX} internal function directly maps to the @code{reduc_smax_scal} and @code{reduc_umax_scal} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_REDUC_MIN} internal function\n+@item @samp{IFN_REDUC_MIN}\n+The @code{IFN_REDUC_MIN} internal function directly maps to the @code{reduc_smin_scal} and @code{reduc_umin_scal} instruction patterns depending on the sign of the first argument.\n+\n+@cindex @code{IFN_VEC_WIDEN_PLUS} internal function\n+@cindex @code{IFN_VEC_WIDEN_PLUS_LO} internal function\n+@cindex @code{IFN_VEC_WIDEN_PLUS_HI} internal function\n+@cindex @code{IFN_VEC_WIDEN_PLUS_EVEN} internal function\n+@cindex @code{IFN_VEC_WIDEN_PLUS_ODD} internal function\n+@item @samp{IFN_VEC_WIDEN_PLUS}\n+The @code{IFN_VEC_WIDEN_PLUS} set of internal functions directly map to the @code{vec_widen_sadd} and @code{vec_widen_uadd} instruction patterns depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_PLUS_LO} and @code{IFN_VEC_WIDEN_PLUS_HI} work on the low and highpart of a vector, the @code{IFN_VEC_WIDEN_PLUS_EVEN} and @code {IFN_VEC_WIDEN_PLUS_ODD} functions work on the even and odd elements of a vector.\n+\n+@cindex @code{IFN_VEC_WIDEN_MINUS} internal function\n+@cindex @code{IFN_VEC_WIDEN_MINUS_LO} internal function\n+@cindex @code{IFN_VEC_WIDEN_MINUS_HI} internal function\n+@cindex @code{IFN_VEC_WIDEN_MINUS_EVEN} internal function\n+@cindex @code{IFN_VEC_WIDEN_MINUS_ODD} internal function\n+@item @samp{IFN_VEC_WIDEN_MINUS}\n+The @code{IFN_VEC_WIDEN_MINUS} set of internal functions directly map to the @code{vec_widen_ssub} and @code{vec_widen_usub} instruction patterns depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_MINUS_LO} and @code{IFN_VEC_WIDEN_MINUS_HI} work on the low and highpart of a vector, the @code{IFN_VEC_WIDEN_MINUS_EVEN} and @code {IFN_VEC_WIDEN_MINUS_ODD} functions work on the even and odd elements of a vector.\n+\n+@cindex @code{IFN_VEC_WIDEN_ABD} internal function\n+@cindex @code{IFN_VEC_WIDEN_ABD_LO} internal function\n+@cindex @code{IFN_VEC_WIDEN_ABD_HI} internal function\n+@cindex @code{IFN_VEC_WIDEN_ABD_EVEN} internal function\n+@cindex @code{IFN_VEC_WIDEN_ABD_ODD} internal function\n+@item @samp{IFN_VEC_WIDEN_ABD}\n+The @code{IFN_VEC_WIDEN_ABD} set of internal functions directly map to the @code{vec_widen_sabd} and @code{vec_widen_uabd} instruction patterns depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_ABD_LO} and @code{IFN_VEC_WIDEN_ABD_HI} work on the low and highpart of a vector, the @code{IFN_VEC_WIDEN_ABD_EVEN} and @code {IFN_VEC_WIDEN_ABD_ODD} functions work on the even and odd elements of a vector.\n+\n+@end table\n+\n+@node Internal Functions corresponding to builtins\n+@subsection Internal Functions corresponding to builtins\n+\n+These group of internal functions extend the @code{BUILT_IN_@var{X}}\n+builtins to wider set of types.\n+\n+@table @asis\n+\n+@cindex @code{IFN_ACOS} internal function\n+@item @samp{IFN_ACOS}\n+The @code{IFN_ACOS} internal function directly maps to the @code{acos} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_ACOSH} internal function\n+@item @samp{IFN_ACOSH}\n+The @code{IFN_ACOSH} internal function directly maps to the @code{acosh} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_ASIN} internal function\n+@item @samp{IFN_ASIN}\n+The @code{IFN_ASIN} internal function directly maps to the @code{asin} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_ASINH} internal function\n+@item @samp{IFN_ASINH}\n+The @code{IFN_ASINH} internal function directly maps to the @code{asinh} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_ATAN} internal function\n+@item @samp{IFN_ATAN}\n+The @code{IFN_ATAN} internal function directly maps to the @code{atan} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_ATANH} internal function\n+@item @samp{IFN_ATANH}\n+The @code{IFN_ATANH} internal function directly maps to the @code{atanh} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_COS} internal function\n+@item @samp{IFN_COS}\n+The @code{IFN_COS} internal function directly maps to the @code{cos} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_COSH} internal function\n+@item @samp{IFN_COSH}\n+The @code{IFN_COSH} internal function directly maps to the @code{cosh} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_EXP} internal function\n+@item @samp{IFN_EXP}\n+The @code{IFN_EXP} internal function directly maps to the @code{exp} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_EXP10} internal function\n+@item @samp{IFN_EXP10}\n+The @code{IFN_EXP10} internal function directly maps to the @code{exp10} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_EXP2} internal function\n+@item @samp{IFN_EXP2}\n+The @code{IFN_EXP2} internal function directly maps to the @code{exp2} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_EXPM1} internal function\n+@item @samp{IFN_EXPM1}\n+The @code{IFN_EXPM1} internal function directly maps to the @code{expm1} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_LOG} internal function\n+@item @samp{IFN_LOG}\n+The @code{IFN_LOG} internal function directly maps to the @code{log} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_LOG10} internal function\n+@item @samp{IFN_LOG10}\n+The @code{IFN_LOG10} internal function directly maps to the @code{log10} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_LOG1P} internal function\n+@item @samp{IFN_LOG1P}\n+The @code{IFN_LOG1P} internal function directly maps to the @code{log1p} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_LOG2} internal function\n+@item @samp{IFN_LOG2}\n+The @code{IFN_LOG2} internal function directly maps to the @code{log2} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_LOGB} internal function\n+@item @samp{IFN_LOGB}\n+The @code{IFN_LOGB} internal function directly maps to the @code{logb} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_SIGNBIT} internal function\n+@item @samp{IFN_SIGNBIT}\n+The @code{IFN_SIGNBIT} internal function directly maps to the @code{signbit} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_SIGNIFICAND} internal function\n+@item @samp{IFN_SIGNIFICAND}\n+The @code{IFN_SIGNIFICAND} internal function directly maps to the @code{significand} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_SIN} internal function\n+@item @samp{IFN_SIN}\n+The @code{IFN_SIN} internal function directly maps to the @code{sin} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_SINH} internal function\n+@item @samp{IFN_SINH}\n+The @code{IFN_SINH} internal function directly maps to the @code{sinh} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_SQRT} internal function\n+@item @samp{IFN_SQRT}\n+The @code{IFN_SQRT} internal function directly maps to the @code{sqrt} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_TAN} internal function\n+@item @samp{IFN_TAN}\n+The @code{IFN_TAN} internal function directly maps to the @code{tan} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_TANH} internal function\n+@item @samp{IFN_TANH}\n+The @code{IFN_TANH} internal function directly maps to the @code{tanh} instruction pattern for floating point modes.\n+# 399 \"internal-fn.def\"\n+\n+@cindex @code{IFN_ICEIL} internal function\n+@item @samp{IFN_ICEIL}\n+The @code{IFN_ICEIL} internal function directly maps to the @code{lceil} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_IFLOOR} internal function\n+@item @samp{IFN_IFLOOR}\n+The @code{IFN_IFLOOR} internal function directly maps to the @code{lfloor} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_IRINT} internal function\n+@item @samp{IFN_IRINT}\n+The @code{IFN_IRINT} internal function directly maps to the @code{lrint} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_IROUND} internal function\n+@item @samp{IFN_IROUND}\n+The @code{IFN_IROUND} internal function directly maps to the @code{lround} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_LCEIL} internal function\n+@item @samp{IFN_LCEIL}\n+The @code{IFN_LCEIL} internal function directly maps to the @code{lceil} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_LFLOOR} internal function\n+@item @samp{IFN_LFLOOR}\n+The @code{IFN_LFLOOR} internal function directly maps to the @code{lfloor} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_LRINT} internal function\n+@item @samp{IFN_LRINT}\n+The @code{IFN_LRINT} internal function directly maps to the @code{lrint} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_LROUND} internal function\n+@item @samp{IFN_LROUND}\n+The @code{IFN_LROUND} internal function directly maps to the @code{lround} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_LLCEIL} internal function\n+@item @samp{IFN_LLCEIL}\n+The @code{IFN_LLCEIL} internal function directly maps to the @code{lceil} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_LLFLOOR} internal function\n+@item @samp{IFN_LLFLOOR}\n+The @code{IFN_LLFLOOR} internal function directly maps to the @code{lfloor} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_LLRINT} internal function\n+@item @samp{IFN_LLRINT}\n+The @code{IFN_LLRINT} internal function directly maps to the @code{lrint} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_LLROUND} internal function\n+@item @samp{IFN_LLROUND}\n+The @code{IFN_LLROUND} internal function directly maps to the @code{lround} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_CEIL} internal function\n+@item @samp{IFN_CEIL}\n+The @code{IFN_CEIL} internal function directly maps to the @code{ceil} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_FLOOR} internal function\n+@item @samp{IFN_FLOOR}\n+The @code{IFN_FLOOR} internal function directly maps to the @code{floor} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_NEARBYINT} internal function\n+@item @samp{IFN_NEARBYINT}\n+The @code{IFN_NEARBYINT} internal function directly maps to the @code{nearbyint} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_RINT} internal function\n+@item @samp{IFN_RINT}\n+The @code{IFN_RINT} internal function directly maps to the @code{rint} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_ROUND} internal function\n+@item @samp{IFN_ROUND}\n+The @code{IFN_ROUND} internal function directly maps to the @code{round} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_ROUNDEVEN} internal function\n+@item @samp{IFN_ROUNDEVEN}\n+The @code{IFN_ROUNDEVEN} internal function directly maps to the @code{roundeven} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_TRUNC} internal function\n+@item @samp{IFN_TRUNC}\n+The @code{IFN_TRUNC} internal function directly maps to the @code{btrunc} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_ATAN2} internal function\n+@item @samp{IFN_ATAN2}\n+The @code{IFN_ATAN2} internal function directly maps to the @code{atan2} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_COPYSIGN} internal function\n+@item @samp{IFN_COPYSIGN}\n+The @code{IFN_COPYSIGN} internal function directly maps to the @code{copysign} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_FMOD} internal function\n+@item @samp{IFN_FMOD}\n+The @code{IFN_FMOD} internal function directly maps to the @code{fmod} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_HYPOT} internal function\n+@item @samp{IFN_HYPOT}\n+The @code{IFN_HYPOT} internal function directly maps to the @code{hypot} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_POW} internal function\n+@item @samp{IFN_POW}\n+The @code{IFN_POW} internal function directly maps to the @code{pow} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_REMAINDER} internal function\n+@item @samp{IFN_REMAINDER}\n+The @code{IFN_REMAINDER} internal function directly maps to the @code{remainder} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_SCALB} internal function\n+@item @samp{IFN_SCALB}\n+The @code{IFN_SCALB} internal function directly maps to the @code{scalb} instruction pattern for floating point modes.\n+\n+@cindex @code{IFN_FMIN} internal function\n+@item @samp{IFN_FMIN}\n+The @code{IFN_FMIN} internal function directly maps to the @code{fmin} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_FMAX} internal function\n+@item @samp{IFN_FMAX}\n+The @code{IFN_FMAX} internal function directly maps to the @code{fmax} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_LDEXP} internal function\n+@item @samp{IFN_LDEXP}\n+The @code{IFN_LDEXP} internal function directly maps to the @code{ldexp} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_FMA} internal function\n+@item @samp{IFN_FMA}\n+The @code{IFN_FMA} internal function directly maps to the @code{fma} instruction pattern for floating point modes including those for @code{_Float@var{n}}\n+\n+@cindex @code{IFN_CLRSB} internal function\n+@item @samp{IFN_CLRSB}\n+The @code{IFN_CLRSB} internal function directly maps to the @code{clrsb} instruction pattern for integer and integer vector point modes.\n+\n+@cindex @code{IFN_CLZ} internal function\n+@item @samp{IFN_CLZ}\n+The @code{IFN_CLZ} internal function directly maps to the @code{clz} instruction pattern for integer and integer vector point modes.\n+\n+@cindex @code{IFN_CTZ} internal function\n+@item @samp{IFN_CTZ}\n+The @code{IFN_CTZ} internal function directly maps to the @code{ctz} instruction pattern for integer and integer vector point modes.\n+\n+@cindex @code{IFN_FFS} internal function\n+@item @samp{IFN_FFS}\n+The @code{IFN_FFS} internal function directly maps to the @code{ffs} instruction pattern for integer and integer vector point modes.\n+\n+@cindex @code{IFN_PARITY} internal function\n+@item @samp{IFN_PARITY}\n+The @code{IFN_PARITY} internal function directly maps to the @code{parity} instruction pattern for integer and integer vector point modes.\n+\n+@cindex @code{IFN_POPCOUNT} internal function\n+@item @samp{IFN_POPCOUNT}\n+The @code{IFN_POPCOUNT} internal function directly maps to the @code{popcount} instruction pattern for integer and integer vector point modes.\n+\n+@end table\n+\n+@node Other Internal Functions\n+@subsection Other Internal Functions\n+\n+@table\n+@asis\n+\n+@cindex @code{IFN_GOMP_TARGET_REV} internal function\n+@item @samp{IFN_GOMP_TARGET_REV}\n+The @code{IFN_GOMP_TARGET_REV} internal function is expanded by the @code{expand_GOMP_TARGET_REV} function.\n+\n+@cindex @code{IFN_GOMP_USE_SIMT} internal function\n+@item @samp{IFN_GOMP_USE_SIMT}\n+The @code{IFN_GOMP_USE_SIMT} internal function is expanded by the @code{expand_GOMP_USE_SIMT} function.\n+\n+@cindex @code{IFN_GOMP_SIMT_ENTER} internal function\n+@item @samp{IFN_GOMP_SIMT_ENTER}\n+The @code{IFN_GOMP_SIMT_ENTER} internal function is expanded by the @code{expand_GOMP_SIMT_ENTER} function.\n+\n+@cindex @code{IFN_GOMP_SIMT_ENTER_ALLOC} internal function\n+@item @samp{IFN_GOMP_SIMT_ENTER_ALLOC}\n+The @code{IFN_GOMP_SIMT_ENTER_ALLOC} internal function is expanded by the @code{expand_GOMP_SIMT_ENTER_ALLOC} function.\n+\n+@cindex @code{IFN_GOMP_SIMT_EXIT} internal function\n+@item @samp{IFN_GOMP_SIMT_EXIT}\n+The @code{IFN_GOMP_SIMT_EXIT} internal function is expanded by the @code{expand_GOMP_SIMT_EXIT} function.\n+\n+@cindex @code{IFN_GOMP_SIMT_LANE} internal function\n+@item @samp{IFN_GOMP_SIMT_LANE}\n+The @code{IFN_GOMP_SIMT_LANE} internal function is expanded by the @code{expand_GOMP_SIMT_LANE} function.\n+\n+@cindex @code{IFN_GOMP_SIMT_VF} internal function\n+@item @samp{IFN_GOMP_SIMT_VF}\n+The @code{IFN_GOMP_SIMT_VF} internal function is expanded by the @code{expand_GOMP_SIMT_VF} function.\n+\n+@cindex @code{IFN_GOMP_MAX_VF} internal function\n+@item @samp{IFN_GOMP_MAX_VF}\n+The @code{IFN_GOMP_MAX_VF} internal function is expanded by the @code{expand_GOMP_MAX_VF} function.\n+\n+@cindex @code{IFN_GOMP_SIMT_LAST_LANE} internal function\n+@item @samp{IFN_GOMP_SIMT_LAST_LANE}\n+The @code{IFN_GOMP_SIMT_LAST_LANE} internal function is expanded by the @code{expand_GOMP_SIMT_LAST_LANE} function.\n+\n+@cindex @code{IFN_GOMP_SIMT_ORDERED_PRED} internal function\n+@item @samp{IFN_GOMP_SIMT_ORDERED_PRED}\n+The @code{IFN_GOMP_SIMT_ORDERED_PRED} internal function is expanded by the @code{expand_GOMP_SIMT_ORDERED_PRED} function.\n+\n+@cindex @code{IFN_GOMP_SIMT_VOTE_ANY} internal function\n+@item @samp{IFN_GOMP_SIMT_VOTE_ANY}\n+The @code{IFN_GOMP_SIMT_VOTE_ANY} internal function is expanded by the @code{expand_GOMP_SIMT_VOTE_ANY} function.\n+\n+@cindex @code{IFN_GOMP_SIMT_XCHG_BFLY} internal function\n+@item @samp{IFN_GOMP_SIMT_XCHG_BFLY}\n+The @code{IFN_GOMP_SIMT_XCHG_BFLY} internal function is expanded by the @code{expand_GOMP_SIMT_XCHG_BFLY} function.\n+\n+@cindex @code{IFN_GOMP_SIMT_XCHG_IDX} internal function\n+@item @samp{IFN_GOMP_SIMT_XCHG_IDX}\n+The @code{IFN_GOMP_SIMT_XCHG_IDX} internal function is expanded by the @code{expand_GOMP_SIMT_XCHG_IDX} function.\n+\n+@cindex @code{IFN_GOMP_SIMD_LANE} internal function\n+@item @samp{IFN_GOMP_SIMD_LANE}\n+The @code{IFN_GOMP_SIMD_LANE} internal function is expanded by the @code{expand_GOMP_SIMD_LANE} function.\n+\n+@cindex @code{IFN_GOMP_SIMD_VF} internal function\n+@item @samp{IFN_GOMP_SIMD_VF}\n+The @code{IFN_GOMP_SIMD_VF} internal function is expanded by the @code{expand_GOMP_SIMD_VF} function.\n+\n+@cindex @code{IFN_GOMP_SIMD_LAST_LANE} internal function\n+@item @samp{IFN_GOMP_SIMD_LAST_LANE}\n+The @code{IFN_GOMP_SIMD_LAST_LANE} internal function is expanded by the @code{expand_GOMP_SIMD_LAST_LANE} function.\n+\n+@cindex @code{IFN_GOMP_SIMD_ORDERED_START} internal function\n+@item @samp{IFN_GOMP_SIMD_ORDERED_START}\n+The @code{IFN_GOMP_SIMD_ORDERED_START} internal function is expanded by the @code{expand_GOMP_SIMD_ORDERED_START} function.\n+\n+@cindex @code{IFN_GOMP_SIMD_ORDERED_END} internal function\n+@item @samp{IFN_GOMP_SIMD_ORDERED_END}\n+The @code{IFN_GOMP_SIMD_ORDERED_END} internal function is expanded by the @code{expand_GOMP_SIMD_ORDERED_END} function.\n+\n+@cindex @code{IFN_GOMP_DISPATCH} internal function\n+@item @samp{IFN_GOMP_DISPATCH}\n+The @code{IFN_GOMP_DISPATCH} internal function is expanded by the @code{expand_GOMP_DISPATCH} function.\n+\n+@cindex @code{IFN_LOOP_VECTORIZED} internal function\n+@item @samp{IFN_LOOP_VECTORIZED}\n+The @code{IFN_LOOP_VECTORIZED} internal function is expanded by the @code{expand_LOOP_VECTORIZED} function.\n+\n+@cindex @code{IFN_LOOP_DIST_ALIAS} internal function\n+@item @samp{IFN_LOOP_DIST_ALIAS}\n+The @code{IFN_LOOP_DIST_ALIAS} internal function is expanded by the @code{expand_LOOP_DIST_ALIAS} function.\n+\n+@cindex @code{IFN_ANNOTATE} internal function\n+@item @samp{IFN_ANNOTATE}\n+The @code{IFN_ANNOTATE} internal function is expanded by the @code{expand_ANNOTATE} function.\n+\n+@cindex @code{IFN_UBSAN_NULL} internal function\n+@item @samp{IFN_UBSAN_NULL}\n+The @code{IFN_UBSAN_NULL} internal function is expanded by the @code{expand_UBSAN_NULL} function.\n+\n+@cindex @code{IFN_UBSAN_BOUNDS} internal function\n+@item @samp{IFN_UBSAN_BOUNDS}\n+The @code{IFN_UBSAN_BOUNDS} internal function is expanded by the @code{expand_UBSAN_BOUNDS} function.\n+\n+@cindex @code{IFN_UBSAN_VPTR} internal function\n+@item @samp{IFN_UBSAN_VPTR}\n+The @code{IFN_UBSAN_VPTR} internal function is expanded by the @code{expand_UBSAN_VPTR} function.\n+\n+@cindex @code{IFN_UBSAN_CHECK_ADD} internal function\n+@item @samp{IFN_UBSAN_CHECK_ADD}\n+The @code{IFN_UBSAN_CHECK_ADD} internal function is expanded by the @code{expand_UBSAN_CHECK_ADD} function.\n+\n+@cindex @code{IFN_UBSAN_CHECK_SUB} internal function\n+@item @samp{IFN_UBSAN_CHECK_SUB}\n+The @code{IFN_UBSAN_CHECK_SUB} internal function is expanded by the @code{expand_UBSAN_CHECK_SUB} function.\n+\n+@cindex @code{IFN_UBSAN_CHECK_MUL} internal function\n+@item @samp{IFN_UBSAN_CHECK_MUL}\n+The @code{IFN_UBSAN_CHECK_MUL} internal function is expanded by the @code{expand_UBSAN_CHECK_MUL} function.\n+\n+@cindex @code{IFN_UBSAN_PTR} internal function\n+@item @samp{IFN_UBSAN_PTR}\n+The @code{IFN_UBSAN_PTR} internal function is expanded by the @code{expand_UBSAN_PTR} function.\n+\n+@cindex @code{IFN_UBSAN_OBJECT_SIZE} internal function\n+@item @samp{IFN_UBSAN_OBJECT_SIZE}\n+The @code{IFN_UBSAN_OBJECT_SIZE} internal function is expanded by the @code{expand_UBSAN_OBJECT_SIZE} function.\n+\n+@cindex @code{IFN_ABNORMAL_DISPATCHER} internal function\n+@item @samp{IFN_ABNORMAL_DISPATCHER}\n+The @code{IFN_ABNORMAL_DISPATCHER} internal function is expanded by the @code{expand_ABNORMAL_DISPATCHER} function.\n+\n+@cindex @code{IFN_BUILTIN_EXPECT} internal function\n+@item @samp{IFN_BUILTIN_EXPECT}\n+The @code{IFN_BUILTIN_EXPECT} internal function is expanded by the @code{expand_BUILTIN_EXPECT} function.\n+\n+@cindex @code{IFN_HWASAN_ALLOCA_POISON} internal function\n+@item @samp{IFN_HWASAN_ALLOCA_POISON}\n+The @code{IFN_HWASAN_ALLOCA_POISON} internal function is expanded by the @code{expand_HWASAN_ALLOCA_POISON} function.\n+\n+@cindex @code{IFN_HWASAN_ALLOCA_UNPOISON} internal function\n+@item @samp{IFN_HWASAN_ALLOCA_UNPOISON}\n+The @code{IFN_HWASAN_ALLOCA_UNPOISON} internal function is expanded by the @code{expand_HWASAN_ALLOCA_UNPOISON} function.\n+\n+@cindex @code{IFN_HWASAN_CHOOSE_TAG} internal function\n+@item @samp{IFN_HWASAN_CHOOSE_TAG}\n+The @code{IFN_HWASAN_CHOOSE_TAG} internal function is expanded by the @code{expand_HWASAN_CHOOSE_TAG} function.\n+\n+@cindex @code{IFN_HWASAN_CHECK} internal function\n+@item @samp{IFN_HWASAN_CHECK}\n+The @code{IFN_HWASAN_CHECK} internal function is expanded by the @code{expand_HWASAN_CHECK} function.\n+\n+@cindex @code{IFN_HWASAN_MARK} internal function\n+@item @samp{IFN_HWASAN_MARK}\n+The @code{IFN_HWASAN_MARK} internal function is expanded by the @code{expand_HWASAN_MARK} function.\n+\n+@cindex @code{IFN_HWASAN_SET_TAG} internal function\n+@item @samp{IFN_HWASAN_SET_TAG}\n+The @code{IFN_HWASAN_SET_TAG} internal function is expanded by the @code{expand_HWASAN_SET_TAG} function.\n+\n+@cindex @code{IFN_ASAN_CHECK} internal function\n+@item @samp{IFN_ASAN_CHECK}\n+The @code{IFN_ASAN_CHECK} internal function is expanded by the @code{expand_ASAN_CHECK} function.\n+\n+@cindex @code{IFN_ASAN_MARK} internal function\n+@item @samp{IFN_ASAN_MARK}\n+The @code{IFN_ASAN_MARK} internal function is expanded by the @code{expand_ASAN_MARK} function.\n+\n+@cindex @code{IFN_ASAN_POISON} internal function\n+@item @samp{IFN_ASAN_POISON}\n+The @code{IFN_ASAN_POISON} internal function is expanded by the @code{expand_ASAN_POISON} function.\n+\n+@cindex @code{IFN_ASAN_POISON_USE} internal function\n+@item @samp{IFN_ASAN_POISON_USE}\n+The @code{IFN_ASAN_POISON_USE} internal function is expanded by the @code{expand_ASAN_POISON_USE} function.\n+\n+@cindex @code{IFN_ADD_OVERFLOW} internal function\n+@item @samp{IFN_ADD_OVERFLOW}\n+The @code{IFN_ADD_OVERFLOW} internal function is expanded by the @code{expand_ADD_OVERFLOW} function.\n+\n+@cindex @code{IFN_SUB_OVERFLOW} internal function\n+@item @samp{IFN_SUB_OVERFLOW}\n+The @code{IFN_SUB_OVERFLOW} internal function is expanded by the @code{expand_SUB_OVERFLOW} function.\n+\n+@cindex @code{IFN_MUL_OVERFLOW} internal function\n+@item @samp{IFN_MUL_OVERFLOW}\n+The @code{IFN_MUL_OVERFLOW} internal function is expanded by the @code{expand_MUL_OVERFLOW} function.\n+\n+@cindex @code{IFN_UADDC} internal function\n+@item @samp{IFN_UADDC}\n+The @code{IFN_UADDC} internal function is expanded by the @code{expand_UADDC} function.\n+\n+@cindex @code{IFN_USUBC} internal function\n+@item @samp{IFN_USUBC}\n+The @code{IFN_USUBC} internal function is expanded by the @code{expand_USUBC} function.\n+\n+@cindex @code{IFN_TSAN_FUNC_EXIT} internal function\n+@item @samp{IFN_TSAN_FUNC_EXIT}\n+The @code{IFN_TSAN_FUNC_EXIT} internal function is expanded by the @code{expand_TSAN_FUNC_EXIT} function.\n+\n+@cindex @code{IFN_VA_ARG} internal function\n+@item @samp{IFN_VA_ARG}\n+The @code{IFN_VA_ARG} internal function is expanded by the @code{expand_VA_ARG} function.\n+\n+@cindex @code{IFN_VEC_CONVERT} internal function\n+@item @samp{IFN_VEC_CONVERT}\n+The @code{IFN_VEC_CONVERT} internal function is expanded by the @code{expand_VEC_CONVERT} function.\n+\n+@cindex @code{IFN_RAWMEMCHR} internal function\n+@item @samp{IFN_RAWMEMCHR}\n+The @code{IFN_RAWMEMCHR} internal function is expanded by the @code{expand_RAWMEMCHR} function.\n+\n+@cindex @code{IFN_UNIQUE} internal function\n+@item @samp{IFN_UNIQUE}\n+The @code{IFN_UNIQUE} internal function is expanded by the @code{expand_UNIQUE} function.\n+\n+@cindex @code{IFN_PHI} internal function\n+@item @samp{IFN_PHI}\n+The @code{IFN_PHI} internal function is used by the GIMPLE frontend and lowered to PHI nodes.\n+\n+@cindex @code{IFN_DEFERRED_INIT} internal function\n+@item @samp{IFN_DEFERRED_INIT}\n+The @code{IFN_DEFERRED_INIT} internal function is expanded by the @code{expand_DEFERRED_INIT} function.\n+\n+@cindex @code{IFN_ACCESS_WITH_SIZE} internal function\n+@item @samp{IFN_ACCESS_WITH_SIZE}\n+The @code{IFN_ACCESS_WITH_SIZE} internal function is expanded by the @code{expand_ACCESS_WITH_SIZE} function.\n+\n+@cindex @code{IFN_GOACC_DIM_SIZE} internal function\n+@item @samp{IFN_GOACC_DIM_SIZE}\n+The @code{IFN_GOACC_DIM_SIZE} internal function is expanded by the @code{expand_GOACC_DIM_SIZE} function.\n+\n+@cindex @code{IFN_GOACC_DIM_POS} internal function\n+@item @samp{IFN_GOACC_DIM_POS}\n+The @code{IFN_GOACC_DIM_POS} internal function is expanded by the @code{expand_GOACC_DIM_POS} function.\n+\n+@cindex @code{IFN_GOACC_LOOP} internal function\n+@item @samp{IFN_GOACC_LOOP}\n+The @code{IFN_GOACC_LOOP} internal function is expanded by the @code{expand_GOACC_LOOP} function.\n+\n+@cindex @code{IFN_GOACC_REDUCTION} internal function\n+@item @samp{IFN_GOACC_REDUCTION}\n+The @code{IFN_GOACC_REDUCTION} internal function is expanded by the @code{expand_GOACC_REDUCTION} function.\n+\n+@cindex @code{IFN_GOACC_TILE} internal function\n+@item @samp{IFN_GOACC_TILE}\n+The @code{IFN_GOACC_TILE} internal function is expanded by the @code{expand_GOACC_TILE} function.\n+\n+@cindex @code{IFN_SET_EDOM} internal function\n+@item @samp{IFN_SET_EDOM}\n+The @code{IFN_SET_EDOM} internal function is expanded by the @code{expand_SET_EDOM} function.\n+\n+@cindex @code{IFN_ATOMIC_BIT_TEST_AND_SET} internal function\n+@item @samp{IFN_ATOMIC_BIT_TEST_AND_SET}\n+The @code{IFN_ATOMIC_BIT_TEST_AND_SET} internal function is expanded by the @code{expand_ATOMIC_BIT_TEST_AND_SET} function.\n+\n+@cindex @code{IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT} internal function\n+@item @samp{IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT}\n+The @code{IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT} internal function is expanded by the @code{expand_ATOMIC_BIT_TEST_AND_COMPLEMENT} function.\n+\n+@cindex @code{IFN_ATOMIC_BIT_TEST_AND_RESET} internal function\n+@item @samp{IFN_ATOMIC_BIT_TEST_AND_RESET}\n+The @code{IFN_ATOMIC_BIT_TEST_AND_RESET} internal function is expanded by the @code{expand_ATOMIC_BIT_TEST_AND_RESET} function.\n+\n+@cindex @code{IFN_ATOMIC_COMPARE_EXCHANGE} internal function\n+@item @samp{IFN_ATOMIC_COMPARE_EXCHANGE}\n+The @code{IFN_ATOMIC_COMPARE_EXCHANGE} internal function is expanded by the @code{expand_ATOMIC_COMPARE_EXCHANGE} function.\n+\n+@cindex @code{IFN_ATOMIC_ADD_FETCH_CMP_0} internal function\n+@item @samp{IFN_ATOMIC_ADD_FETCH_CMP_0}\n+The @code{IFN_ATOMIC_ADD_FETCH_CMP_0} internal function is expanded by the @code{expand_ATOMIC_ADD_FETCH_CMP_0} function.\n+\n+@cindex @code{IFN_ATOMIC_SUB_FETCH_CMP_0} internal function\n+@item @samp{IFN_ATOMIC_SUB_FETCH_CMP_0}\n+The @code{IFN_ATOMIC_SUB_FETCH_CMP_0} internal function is expanded by the @code{expand_ATOMIC_SUB_FETCH_CMP_0} function.\n+\n+@cindex @code{IFN_ATOMIC_AND_FETCH_CMP_0} internal function\n+@item @samp{IFN_ATOMIC_AND_FETCH_CMP_0}\n+The @code{IFN_ATOMIC_AND_FETCH_CMP_0} internal function is expanded by the @code{expand_ATOMIC_AND_FETCH_CMP_0} function.\n+\n+@cindex @code{IFN_ATOMIC_OR_FETCH_CMP_0} internal function\n+@item @samp{IFN_ATOMIC_OR_FETCH_CMP_0}\n+The @code{IFN_ATOMIC_OR_FETCH_CMP_0} internal function is expanded by the @code{expand_ATOMIC_OR_FETCH_CMP_0} function.\n+\n+@cindex @code{IFN_ATOMIC_XOR_FETCH_CMP_0} internal function\n+@item @samp{IFN_ATOMIC_XOR_FETCH_CMP_0}\n+The @code{IFN_ATOMIC_XOR_FETCH_CMP_0} internal function is expanded by the @code{expand_ATOMIC_XOR_FETCH_CMP_0} function.\n+\n+@cindex @code{IFN_FALLTHROUGH} internal function\n+@item @samp{IFN_FALLTHROUGH}\n+The @code{IFN_FALLTHROUGH} internal function is expanded by the @code{expand_FALLTHROUGH} function.\n+\n+@cindex @code{IFN_LAUNDER} internal function\n+@item @samp{IFN_LAUNDER}\n+The @code{IFN_LAUNDER} internal function is expanded by the @code{expand_LAUNDER} function.\n+\n+@cindex @code{IFN_DIVMOD} internal function\n+@item @samp{IFN_DIVMOD}\n+The @code{IFN_DIVMOD} internal function is expanded by the @code{expand_DIVMOD} function.\n+\n+@cindex @code{IFN_CO_ACTOR} internal function\n+@item @samp{IFN_CO_ACTOR}\n+The @code{IFN_CO_ACTOR} internal function is expanded by the @code{expand_CO_ACTOR} function.\n+\n+@cindex @code{IFN_CO_YIELD} internal function\n+@item @samp{IFN_CO_YIELD}\n+The @code{IFN_CO_YIELD} internal function is expanded by the @code{expand_CO_YIELD} function.\n+\n+@cindex @code{IFN_CO_SUSPN} internal function\n+@item @samp{IFN_CO_SUSPN}\n+The @code{IFN_CO_SUSPN} internal function is expanded by the @code{expand_CO_SUSPN} function.\n+\n+@cindex @code{IFN_CO_FRAME} internal function\n+@item @samp{IFN_CO_FRAME}\n+The @code{IFN_CO_FRAME} internal function is expanded by the @code{expand_CO_FRAME} function.\n+\n+@cindex @code{IFN_NOP} internal function\n+@item @samp{IFN_NOP}\n+The @code{IFN_NOP} internal function is expanded by the @code{expand_NOP} function.\n+\n+@cindex @code{IFN_SHUFFLEVECTOR} internal function\n+@item @samp{IFN_SHUFFLEVECTOR}\n+The @code{IFN_SHUFFLEVECTOR} internal function is expanded by the @code{expand_SHUFFLEVECTOR} function.\n+\n+@cindex @code{IFN_SPACESHIP} internal function\n+@item @samp{IFN_SPACESHIP}\n+The @code{IFN_SPACESHIP} internal function is expanded by the @code{expand_SPACESHIP} function.\n+\n+@cindex @code{IFN_ASSUME} internal function\n+@item @samp{IFN_ASSUME}\n+The @code{IFN_ASSUME} internal function is expanded by the @code{expand_ASSUME} function.\n+\n+@cindex @code{IFN_MASK_CALL} internal function\n+@item @samp{IFN_MASK_CALL}\n+The @code{IFN_MASK_CALL} internal function is expanded by the @code{expand_MASK_CALL} function.\n+\n+@cindex @code{IFN_MULBITINT} internal function\n+@item @samp{IFN_MULBITINT}\n+The @code{IFN_MULBITINT} internal function is expanded by the @code{expand_MULBITINT} function.\n+\n+@cindex @code{IFN_DIVMODBITINT} internal function\n+@item @samp{IFN_DIVMODBITINT}\n+The @code{IFN_DIVMODBITINT} internal function is expanded by the @code{expand_DIVMODBITINT} function.\n+\n+@cindex @code{IFN_FLOATTOBITINT} internal function\n+@item @samp{IFN_FLOATTOBITINT}\n+The @code{IFN_FLOATTOBITINT} internal function is expanded by the @code{expand_FLOATTOBITINT} function.\n+\n+@cindex @code{IFN_BITINTTOFLOAT} internal function\n+@item @samp{IFN_BITINTTOFLOAT}\n+The @code{IFN_BITINTTOFLOAT} internal function is expanded by the @code{expand_BITINTTOFLOAT} function.\n+\n+@end table\n+\n", "prefixes": [] }