diff --git a/COPYING.RUNTIME b/COPYING.RUNTIME
new file mode 100644
index 0000000..e1b3c69
--- /dev/null
+++ b/COPYING.RUNTIME
@@ -0,0 +1,73 @@
+GCC RUNTIME LIBRARY EXCEPTION
+
+Version 3.1, 31 March 2009
+
+Copyright (C) 2009 Free Software Foundation, Inc. <http://fsf.org/>
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+This GCC Runtime Library Exception ("Exception") is an additional
+permission under section 7 of the GNU General Public License, version
+3 ("GPLv3"). It applies to a given file (the "Runtime Library") that
+bears a notice placed by the copyright holder of the file stating that
+the file is governed by GPLv3 along with this Exception.
+
+When you use GCC to compile a program, GCC may combine portions of
+certain GCC header files and runtime libraries with the compiled
+program. The purpose of this Exception is to allow compilation of
+non-GPL (including proprietary) programs to use, in this way, the
+header files and runtime libraries covered by this Exception.
+
+0. Definitions.
+
+A file is an "Independent Module" if it either requires the Runtime
+Library for execution after a Compilation Process, or makes use of an
+interface provided by the Runtime Library, but is not otherwise based
+on the Runtime Library.
+
+"GCC" means a version of the GNU Compiler Collection, with or without
+modifications, governed by version 3 (or a specified later version) of
+the GNU General Public License (GPL) with the option of using any
+subsequent versions published by the FSF.
+
+"GPL-compatible Software" is software whose conditions of propagation,
+modification and use would permit combination with GCC in accord with
+the license of GCC.
+
+"Target Code" refers to output from any compiler for a real or virtual
+target processor architecture, in executable form or suitable for
+input to an assembler, loader, linker and/or execution
+phase. Notwithstanding that, Target Code does not include data in any
+format that is used as a compiler intermediate representation, or used
+for producing a compiler intermediate representation.
+
+The "Compilation Process" transforms code entirely represented in
+non-intermediate languages designed for human-written code, and/or in
+Java Virtual Machine byte code, into Target Code. Thus, for example,
+use of source code generators and preprocessors need not be considered
+part of the Compilation Process, since the Compilation Process can be
+understood as starting with the output of the generators or
+preprocessors.
+
+A Compilation Process is "Eligible" if it is done using GCC, alone or
+with other GPL-compatible software, or if it is done without using any
+work based on GCC. For example, using non-GPL-compatible Software to
+optimize any GCC intermediate representations would not qualify as an
+Eligible Compilation Process.
+
+1. Grant of Additional Permission.
+
+You have permission to propagate a work of Target Code formed by
+combining the Runtime Library with Independent Modules, even if such
+propagation would otherwise violate the terms of GPLv3, provided that
+all Target Code was generated by Eligible Compilation Processes. You
+may then convey such a combination under terms of your choice,
+consistent with the licensing of the Independent Modules.
+
+2. No Weakening of GCC Copyleft.
+
+The availability of this Exception does not imply any general
+presumption that third-party software is unaffected by the copyleft
+requirements of the license of GCC.
+
diff --git a/COPYING3 b/COPYING3
new file mode 100644
index 0000000..94a9ed0
--- /dev/null
+++ b/COPYING3
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/COPYING3.LIB b/COPYING3.LIB
new file mode 100644
index 0000000..fc8a5de
--- /dev/null
+++ b/COPYING3.LIB
@@ -0,0 +1,165 @@
+		   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions. 
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version. 
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/SOURCES b/SOURCES
index 3c42c0e..bf9c229 100644
--- a/SOURCES
+++ b/SOURCES
@@ -1,4 +1,4 @@
-toolchain/build.git                    75542e77b565c2af968e48c1b12b32f343d913ae Fix binutils-2.24 detection
+toolchain/build.git                    f8db3f1d0824da5315df3415814ba76108157796 Static link ld.gold by mingw to avoid dependencies on libwinpthread-1.dll
 toolchain/gmp.git                      e6b9669dafc6a5f83c80b4b4176359b78bccdc90 Add gmp-5.0.5.tar.bz2
 toolchain/mpfr.git                     bfcf1bfa38469208aaad8873cd4c68781061d90f add mpfr-3.1.1.tar.bz2
 toolchain/mpc.git                      835d16e92eed875638a8b5d552034c3b1aae045b add mpc-1.0.1.tar.gz
@@ -6,14 +6,14 @@
 toolchain/isl.git                      b05d4572958c5d497da793f3317084bab90c3033 add isl-0.11.1.tar.bz2 needed by GCC 4.8 with graphite
 toolchain/ppl.git                      8ba1875b4c5341d902321761022a6d2a0b5b19a4 add ppl-1.0.tar.bz2
 toolchain/expat.git                    40172a0ae9d40a068f1e1a48ffcf6a1ccf765ed5 expat package for building gdb-7.3
-toolchain/binutils.git                 b3e9a4171187f64c03d1858c2c840113df6b02de Add MIPS specific changes to binutils 2.25 (prerelease) for MIPSR6 bug fixes, MXU support, and a fix to needed by gdbserver.
-toolchain/gcc.git                      866bd0b46cd84957df84e7a3e674d9777807b7f7 [4.8, 4.9] Fix crash of omp loops that are not in the main thread.
-toolchain/gdb.git                      24237bc8bc3001a82d6cd9685719c4679f721792 fix some build errors
+toolchain/binutils.git                 4f16de34c2f531495992afc6ecaab46391b59ff8 Fix build
+toolchain/gcc.git                      0dd93631a0aa1b5c2f807270305225bc2786393b backport fix for ICE: in add_stores, at var-tracking.c:6000
+toolchain/gdb.git                      d54e4b7af5c45d4bcde6f65e5dc44c821739740f Misc gdb-7.7 fixes for Android
 toolchain/python.git                   0d4194853e08d3244931523470331c00dfb94863 Fix python build inc_dirs[] and lib_dirs[] for linux/darwin
 toolchain/perl.git                     1121daca35c6c692602621eab28d4de19f0b347d Add -Dcc_as_ld to configure
-toolchain/mclinker.git                 66bf13b826497336180182aef105716603921494 Merge branch 'master' of https://android.googlesource.com/toolchain/mclinker into aosp
+toolchain/mclinker.git                 d20e247caf801ae6418e4226a19dd98719a7af75 Fix comparison between signed and unsigned integer expressions [-Werror=sign-compare].
 toolchain/yasm.git                     87c09baff80ca5bbe938392d8f320e621707f317 test commit
-toolchain/clang.git (release_35)       165e1069b19416743e61002c8155013b36384699 Merge "Emit i386 path in arm_neon.h" into release_35
+toolchain/clang.git (release_35)       f7bf93b58a05c72f7294cad69cfeb8d5d5851d60 [ndk] Frontend: Fix SourceColumnMap assertion failure on non-ascii characters.
 toolchain/llvm.git (release_35)        a3ebbc54575b8a9ca280cb3587bb90bddd34352c Merge "[3.5] writable .gcc_except_table for mips[64]" into release_35
 toolchain/compiler-rt.git (release_35) 69e1e46d2b03c4a8d573120d8f202f4367930eb1 Do not define CRT_HAS_128BIT for MIPS64
 toolchain/clang.git (release_34)       a284801985744bd9667b9d14f079b3a2e8b19130 [ndk] Define __USER_LABEL_PREFIX__ to empty string.
diff --git a/bin/mips64el-linux-android-cpp b/bin/mips64el-linux-android-cpp
index 9567e03..72bf65a 100755
--- a/bin/mips64el-linux-android-cpp
+++ b/bin/mips64el-linux-android-cpp
Binary files differ
diff --git a/bin/mips64el-linux-android-g++ b/bin/mips64el-linux-android-g++
index 9ef0278..2b70769 100755
--- a/bin/mips64el-linux-android-g++
+++ b/bin/mips64el-linux-android-g++
Binary files differ
diff --git a/bin/mips64el-linux-android-gcc b/bin/mips64el-linux-android-gcc
index a9cc7c7..c2a6abd 100755
--- a/bin/mips64el-linux-android-gcc
+++ b/bin/mips64el-linux-android-gcc
Binary files differ
diff --git a/bin/mips64el-linux-android-gcov-tool b/bin/mips64el-linux-android-gcov-tool
index 6cc3187..e3d19cd 100755
--- a/bin/mips64el-linux-android-gcov-tool
+++ b/bin/mips64el-linux-android-gcov-tool
Binary files differ
diff --git a/bin/mips64el-linux-android-gdb b/bin/mips64el-linux-android-gdb
index 68e36e9..43d0e83 100755
--- a/bin/mips64el-linux-android-gdb
+++ b/bin/mips64el-linux-android-gdb
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbegin.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbegin.o
index 08b9c9f..7b2d7b7 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbegin.o
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbegin.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginS.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginS.o
index 47057b2..69ec19d 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginS.o
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginS.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginT.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginT.o
index 08b9c9f..7b2d7b7 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginT.o
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginT.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtfastmath.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtfastmath.o
index cef0829..1df92bc 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtfastmath.o
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtfastmath.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcc.a b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcc.a
index 3bf8326..524908e 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcc.a
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcc.a
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcov.a b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcov.a
index d9051b0..9a3690b 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcov.a
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcov.a
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbegin.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbegin.o
index c6cdb3e..f3999a5 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbegin.o
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbegin.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginS.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginS.o
index 6d9addf..ca42e09 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginS.o
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginS.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginT.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginT.o
index c6cdb3e..f3999a5 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginT.o
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginT.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtfastmath.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtfastmath.o
index 4915e41..8db1d7e 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtfastmath.o
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtfastmath.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcc.a b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcc.a
index 39d506c..a5cea30 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcc.a
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcc.a
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcov.a b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcov.a
index 9b7e188..68d90b6 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcov.a
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcov.a
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbegin.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbegin.o
index e26e812..f5ed864 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbegin.o
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbegin.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginS.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginS.o
index 84e82e1..992c6a2 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginS.o
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginS.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginT.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginT.o
index e26e812..f5ed864 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginT.o
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginT.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtfastmath.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtfastmath.o
index b6f1b04..9985a77 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtfastmath.o
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtfastmath.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcc.a b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcc.a
index 4ada9eb..6977ae0 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcc.a
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcc.a
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcov.a b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcov.a
index 18367d6..76d9225 100644
--- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcov.a
+++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcov.a
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/crtbegin.o b/lib/gcc/mips64el-linux-android/4.9/crtbegin.o
index ce32550..d55aa6b 100644
--- a/lib/gcc/mips64el-linux-android/4.9/crtbegin.o
+++ b/lib/gcc/mips64el-linux-android/4.9/crtbegin.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/crtbeginS.o b/lib/gcc/mips64el-linux-android/4.9/crtbeginS.o
index 8fbdef7..bcc6e6a 100644
--- a/lib/gcc/mips64el-linux-android/4.9/crtbeginS.o
+++ b/lib/gcc/mips64el-linux-android/4.9/crtbeginS.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/crtbeginT.o b/lib/gcc/mips64el-linux-android/4.9/crtbeginT.o
index ce32550..d55aa6b 100644
--- a/lib/gcc/mips64el-linux-android/4.9/crtbeginT.o
+++ b/lib/gcc/mips64el-linux-android/4.9/crtbeginT.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/crtfastmath.o b/lib/gcc/mips64el-linux-android/4.9/crtfastmath.o
index 4c900c4..c717c67 100644
--- a/lib/gcc/mips64el-linux-android/4.9/crtfastmath.o
+++ b/lib/gcc/mips64el-linux-android/4.9/crtfastmath.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/include/msa.h b/lib/gcc/mips64el-linux-android/4.9/include/msa.h
index 64fa42c..fe2eaa1 100644
--- a/lib/gcc/mips64el-linux-android/4.9/include/msa.h
+++ b/lib/gcc/mips64el-linux-android/4.9/include/msa.h
@@ -51,1063 +51,1071 @@
 
 #ifndef __clang__
 extern v16i8 __builtin_msa_sll_b(v16i8, v16i8);
-#define __msa_sll_b __builtin_msa_sll_b
 extern v8i16 __builtin_msa_sll_h(v8i16, v8i16);
-#define __msa_sll_h __builtin_msa_sll_h
 extern v4i32 __builtin_msa_sll_w(v4i32, v4i32);
-#define __msa_sll_w __builtin_msa_sll_w
 extern v2i64 __builtin_msa_sll_d(v2i64, v2i64);
-#define __msa_sll_d __builtin_msa_sll_d
 extern v16i8 __builtin_msa_slli_b(v16i8, unsigned char);
-#define __msa_slli_b __builtin_msa_slli_b
 extern v8i16 __builtin_msa_slli_h(v8i16, unsigned char);
-#define __msa_slli_h __builtin_msa_slli_h
 extern v4i32 __builtin_msa_slli_w(v4i32, unsigned char);
-#define __msa_slli_w __builtin_msa_slli_w
 extern v2i64 __builtin_msa_slli_d(v2i64, unsigned char);
-#define __msa_slli_d __builtin_msa_slli_d
 extern v16i8 __builtin_msa_sra_b(v16i8, v16i8);
-#define __msa_sra_b __builtin_msa_sra_b
 extern v8i16 __builtin_msa_sra_h(v8i16, v8i16);
-#define __msa_sra_h __builtin_msa_sra_h
 extern v4i32 __builtin_msa_sra_w(v4i32, v4i32);
-#define __msa_sra_w __builtin_msa_sra_w
 extern v2i64 __builtin_msa_sra_d(v2i64, v2i64);
-#define __msa_sra_d __builtin_msa_sra_d
 extern v16i8 __builtin_msa_srai_b(v16i8, unsigned char);
-#define __msa_srai_b __builtin_msa_srai_b
 extern v8i16 __builtin_msa_srai_h(v8i16, unsigned char);
-#define __msa_srai_h __builtin_msa_srai_h
 extern v4i32 __builtin_msa_srai_w(v4i32, unsigned char);
-#define __msa_srai_w __builtin_msa_srai_w
 extern v2i64 __builtin_msa_srai_d(v2i64, unsigned char);
-#define __msa_srai_d __builtin_msa_srai_d
 extern v16i8 __builtin_msa_srar_b(v16i8, v16i8);
-#define __msa_srar_b __builtin_msa_srar_b
 extern v8i16 __builtin_msa_srar_h(v8i16, v8i16);
-#define __msa_srar_h __builtin_msa_srar_h
 extern v4i32 __builtin_msa_srar_w(v4i32, v4i32);
-#define __msa_srar_w __builtin_msa_srar_w
 extern v2i64 __builtin_msa_srar_d(v2i64, v2i64);
-#define __msa_srar_d __builtin_msa_srar_d
 extern v16i8 __builtin_msa_srari_b(v16i8, unsigned char);
-#define __msa_srari_b __builtin_msa_srari_b
 extern v8i16 __builtin_msa_srari_h(v8i16, unsigned char);
-#define __msa_srari_h __builtin_msa_srari_h
 extern v4i32 __builtin_msa_srari_w(v4i32, unsigned char);
-#define __msa_srari_w __builtin_msa_srari_w
 extern v2i64 __builtin_msa_srari_d(v2i64, unsigned char);
-#define __msa_srari_d __builtin_msa_srari_d
 extern v16i8 __builtin_msa_srl_b(v16i8, v16i8);
-#define __msa_srl_b __builtin_msa_srl_b
 extern v8i16 __builtin_msa_srl_h(v8i16, v8i16);
-#define __msa_srl_h __builtin_msa_srl_h
 extern v4i32 __builtin_msa_srl_w(v4i32, v4i32);
-#define __msa_srl_w __builtin_msa_srl_w
 extern v2i64 __builtin_msa_srl_d(v2i64, v2i64);
-#define __msa_srl_d __builtin_msa_srl_d
 extern v16i8 __builtin_msa_srli_b(v16i8, unsigned char);
-#define __msa_srli_b __builtin_msa_srli_b
 extern v8i16 __builtin_msa_srli_h(v8i16, unsigned char);
-#define __msa_srli_h __builtin_msa_srli_h
 extern v4i32 __builtin_msa_srli_w(v4i32, unsigned char);
-#define __msa_srli_w __builtin_msa_srli_w
 extern v2i64 __builtin_msa_srli_d(v2i64, unsigned char);
-#define __msa_srli_d __builtin_msa_srli_d
 extern v16i8 __builtin_msa_srlr_b(v16i8, v16i8);
-#define __msa_srlr_b __builtin_msa_srlr_b
 extern v8i16 __builtin_msa_srlr_h(v8i16, v8i16);
-#define __msa_srlr_h __builtin_msa_srlr_h
 extern v4i32 __builtin_msa_srlr_w(v4i32, v4i32);
-#define __msa_srlr_w __builtin_msa_srlr_w
 extern v2i64 __builtin_msa_srlr_d(v2i64, v2i64);
-#define __msa_srlr_d __builtin_msa_srlr_d
 extern v16i8 __builtin_msa_srlri_b(v16i8, unsigned char);
-#define __msa_srlri_b __builtin_msa_srlri_b
 extern v8i16 __builtin_msa_srlri_h(v8i16, unsigned char);
-#define __msa_srlri_h __builtin_msa_srlri_h
 extern v4i32 __builtin_msa_srlri_w(v4i32, unsigned char);
-#define __msa_srlri_w __builtin_msa_srlri_w
 extern v2i64 __builtin_msa_srlri_d(v2i64, unsigned char);
-#define __msa_srlri_d __builtin_msa_srlri_d
 extern v16u8 __builtin_msa_bclr_b(v16u8, v16u8);
-#define __msa_bclr_b __builtin_msa_bclr_b
 extern v8u16 __builtin_msa_bclr_h(v8u16, v8u16);
-#define __msa_bclr_h __builtin_msa_bclr_h
 extern v4u32 __builtin_msa_bclr_w(v4u32, v4u32);
-#define __msa_bclr_w __builtin_msa_bclr_w
 extern v2u64 __builtin_msa_bclr_d(v2u64, v2u64);
-#define __msa_bclr_d __builtin_msa_bclr_d
 extern v16u8 __builtin_msa_bclri_b(v16u8, unsigned char);
-#define __msa_bclri_b __builtin_msa_bclri_b
 extern v8u16 __builtin_msa_bclri_h(v8u16, unsigned char);
-#define __msa_bclri_h __builtin_msa_bclri_h
 extern v4u32 __builtin_msa_bclri_w(v4u32, unsigned char);
-#define __msa_bclri_w __builtin_msa_bclri_w
 extern v2u64 __builtin_msa_bclri_d(v2u64, unsigned char);
-#define __msa_bclri_d __builtin_msa_bclri_d
 extern v16u8 __builtin_msa_bset_b(v16u8, v16u8);
-#define __msa_bset_b __builtin_msa_bset_b
 extern v8u16 __builtin_msa_bset_h(v8u16, v8u16);
-#define __msa_bset_h __builtin_msa_bset_h
 extern v4u32 __builtin_msa_bset_w(v4u32, v4u32);
-#define __msa_bset_w __builtin_msa_bset_w
 extern v2u64 __builtin_msa_bset_d(v2u64, v2u64);
-#define __msa_bset_d __builtin_msa_bset_d
 extern v16u8 __builtin_msa_bseti_b(v16u8, unsigned char);
-#define __msa_bseti_b __builtin_msa_bseti_b
 extern v8u16 __builtin_msa_bseti_h(v8u16, unsigned char);
-#define __msa_bseti_h __builtin_msa_bseti_h
 extern v4u32 __builtin_msa_bseti_w(v4u32, unsigned char);
-#define __msa_bseti_w __builtin_msa_bseti_w
 extern v2u64 __builtin_msa_bseti_d(v2u64, unsigned char);
-#define __msa_bseti_d __builtin_msa_bseti_d
 extern v16u8 __builtin_msa_bneg_b(v16u8, v16u8);
-#define __msa_bneg_b __builtin_msa_bneg_b
 extern v8u16 __builtin_msa_bneg_h(v8u16, v8u16);
-#define __msa_bneg_h __builtin_msa_bneg_h
 extern v4u32 __builtin_msa_bneg_w(v4u32, v4u32);
-#define __msa_bneg_w __builtin_msa_bneg_w
 extern v2u64 __builtin_msa_bneg_d(v2u64, v2u64);
-#define __msa_bneg_d __builtin_msa_bneg_d
 extern v16u8 __builtin_msa_bnegi_b(v16u8, unsigned char);
-#define __msa_bnegi_b __builtin_msa_bnegi_b
 extern v8u16 __builtin_msa_bnegi_h(v8u16, unsigned char);
-#define __msa_bnegi_h __builtin_msa_bnegi_h
 extern v4u32 __builtin_msa_bnegi_w(v4u32, unsigned char);
-#define __msa_bnegi_w __builtin_msa_bnegi_w
 extern v2u64 __builtin_msa_bnegi_d(v2u64, unsigned char);
-#define __msa_bnegi_d __builtin_msa_bnegi_d
 extern v16u8 __builtin_msa_binsl_b(v16u8, v16u8, v16u8);
-#define __msa_binsl_b __builtin_msa_binsl_b
 extern v8u16 __builtin_msa_binsl_h(v8u16, v8u16, v8u16);
-#define __msa_binsl_h __builtin_msa_binsl_h
 extern v4u32 __builtin_msa_binsl_w(v4u32, v4u32, v4u32);
-#define __msa_binsl_w __builtin_msa_binsl_w
 extern v2u64 __builtin_msa_binsl_d(v2u64, v2u64, v2u64);
-#define __msa_binsl_d __builtin_msa_binsl_d
 extern v16u8 __builtin_msa_binsli_b(v16u8, v16u8, unsigned char);
-#define __msa_binsli_b __builtin_msa_binsli_b
 extern v8u16 __builtin_msa_binsli_h(v8u16, v8u16, unsigned char);
-#define __msa_binsli_h __builtin_msa_binsli_h
 extern v4u32 __builtin_msa_binsli_w(v4u32, v4u32, unsigned char);
-#define __msa_binsli_w __builtin_msa_binsli_w
 extern v2u64 __builtin_msa_binsli_d(v2u64, v2u64, unsigned char);
-#define __msa_binsli_d __builtin_msa_binsli_d
 extern v16u8 __builtin_msa_binsr_b(v16u8, v16u8, v16u8);
-#define __msa_binsr_b __builtin_msa_binsr_b
 extern v8u16 __builtin_msa_binsr_h(v8u16, v8u16, v8u16);
-#define __msa_binsr_h __builtin_msa_binsr_h
 extern v4u32 __builtin_msa_binsr_w(v4u32, v4u32, v4u32);
-#define __msa_binsr_w __builtin_msa_binsr_w
 extern v2u64 __builtin_msa_binsr_d(v2u64, v2u64, v2u64);
-#define __msa_binsr_d __builtin_msa_binsr_d
 extern v16u8 __builtin_msa_binsri_b(v16u8, v16u8, unsigned char);
-#define __msa_binsri_b __builtin_msa_binsri_b
 extern v8u16 __builtin_msa_binsri_h(v8u16, v8u16, unsigned char);
-#define __msa_binsri_h __builtin_msa_binsri_h
 extern v4u32 __builtin_msa_binsri_w(v4u32, v4u32, unsigned char);
-#define __msa_binsri_w __builtin_msa_binsri_w
 extern v2u64 __builtin_msa_binsri_d(v2u64, v2u64, unsigned char);
-#define __msa_binsri_d __builtin_msa_binsri_d
 extern v16i8 __builtin_msa_addv_b(v16i8, v16i8);
-#define __msa_addv_b __builtin_msa_addv_b
 extern v8i16 __builtin_msa_addv_h(v8i16, v8i16);
-#define __msa_addv_h __builtin_msa_addv_h
 extern v4i32 __builtin_msa_addv_w(v4i32, v4i32);
-#define __msa_addv_w __builtin_msa_addv_w
 extern v2i64 __builtin_msa_addv_d(v2i64, v2i64);
-#define __msa_addv_d __builtin_msa_addv_d
 extern v16i8 __builtin_msa_addvi_b(v16i8, unsigned char);
-#define __msa_addvi_b __builtin_msa_addvi_b
 extern v8i16 __builtin_msa_addvi_h(v8i16, unsigned char);
-#define __msa_addvi_h __builtin_msa_addvi_h
 extern v4i32 __builtin_msa_addvi_w(v4i32, unsigned char);
-#define __msa_addvi_w __builtin_msa_addvi_w
 extern v2i64 __builtin_msa_addvi_d(v2i64, unsigned char);
-#define __msa_addvi_d __builtin_msa_addvi_d
 extern v16i8 __builtin_msa_subv_b(v16i8, v16i8);
-#define __msa_subv_b __builtin_msa_subv_b
 extern v8i16 __builtin_msa_subv_h(v8i16, v8i16);
-#define __msa_subv_h __builtin_msa_subv_h
 extern v4i32 __builtin_msa_subv_w(v4i32, v4i32);
-#define __msa_subv_w __builtin_msa_subv_w
 extern v2i64 __builtin_msa_subv_d(v2i64, v2i64);
-#define __msa_subv_d __builtin_msa_subv_d
 extern v16i8 __builtin_msa_subvi_b(v16i8, unsigned char);
-#define __msa_subvi_b __builtin_msa_subvi_b
 extern v8i16 __builtin_msa_subvi_h(v8i16, unsigned char);
-#define __msa_subvi_h __builtin_msa_subvi_h
 extern v4i32 __builtin_msa_subvi_w(v4i32, unsigned char);
-#define __msa_subvi_w __builtin_msa_subvi_w
 extern v2i64 __builtin_msa_subvi_d(v2i64, unsigned char);
-#define __msa_subvi_d __builtin_msa_subvi_d
 extern v16i8 __builtin_msa_max_s_b(v16i8, v16i8);
-#define __msa_max_s_b __builtin_msa_max_s_b
 extern v8i16 __builtin_msa_max_s_h(v8i16, v8i16);
-#define __msa_max_s_h __builtin_msa_max_s_h
 extern v4i32 __builtin_msa_max_s_w(v4i32, v4i32);
-#define __msa_max_s_w __builtin_msa_max_s_w
 extern v2i64 __builtin_msa_max_s_d(v2i64, v2i64);
-#define __msa_max_s_d __builtin_msa_max_s_d
 extern v16i8 __builtin_msa_maxi_s_b(v16i8, char);
-#define __msa_maxi_s_b __builtin_msa_maxi_s_b
 extern v8i16 __builtin_msa_maxi_s_h(v8i16, char);
-#define __msa_maxi_s_h __builtin_msa_maxi_s_h
 extern v4i32 __builtin_msa_maxi_s_w(v4i32, char);
-#define __msa_maxi_s_w __builtin_msa_maxi_s_w
 extern v2i64 __builtin_msa_maxi_s_d(v2i64, char);
-#define __msa_maxi_s_d __builtin_msa_maxi_s_d
 extern v16u8 __builtin_msa_max_u_b(v16u8, v16u8);
-#define __msa_max_u_b __builtin_msa_max_u_b
 extern v8u16 __builtin_msa_max_u_h(v8u16, v8u16);
-#define __msa_max_u_h __builtin_msa_max_u_h
 extern v4u32 __builtin_msa_max_u_w(v4u32, v4u32);
-#define __msa_max_u_w __builtin_msa_max_u_w
 extern v2u64 __builtin_msa_max_u_d(v2u64, v2u64);
-#define __msa_max_u_d __builtin_msa_max_u_d
 extern v16u8 __builtin_msa_maxi_u_b(v16u8, unsigned char);
-#define __msa_maxi_u_b __builtin_msa_maxi_u_b
 extern v8u16 __builtin_msa_maxi_u_h(v8u16, unsigned char);
-#define __msa_maxi_u_h __builtin_msa_maxi_u_h
 extern v4u32 __builtin_msa_maxi_u_w(v4u32, unsigned char);
-#define __msa_maxi_u_w __builtin_msa_maxi_u_w
 extern v2u64 __builtin_msa_maxi_u_d(v2u64, unsigned char);
-#define __msa_maxi_u_d __builtin_msa_maxi_u_d
 extern v16i8 __builtin_msa_min_s_b(v16i8, v16i8);
-#define __msa_min_s_b __builtin_msa_min_s_b
 extern v8i16 __builtin_msa_min_s_h(v8i16, v8i16);
-#define __msa_min_s_h __builtin_msa_min_s_h
 extern v4i32 __builtin_msa_min_s_w(v4i32, v4i32);
-#define __msa_min_s_w __builtin_msa_min_s_w
 extern v2i64 __builtin_msa_min_s_d(v2i64, v2i64);
-#define __msa_min_s_d __builtin_msa_min_s_d
 extern v16i8 __builtin_msa_mini_s_b(v16i8, char);
-#define __msa_mini_s_b __builtin_msa_mini_s_b
 extern v8i16 __builtin_msa_mini_s_h(v8i16, char);
-#define __msa_mini_s_h __builtin_msa_mini_s_h
 extern v4i32 __builtin_msa_mini_s_w(v4i32, char);
-#define __msa_mini_s_w __builtin_msa_mini_s_w
 extern v2i64 __builtin_msa_mini_s_d(v2i64, char);
-#define __msa_mini_s_d __builtin_msa_mini_s_d
 extern v16u8 __builtin_msa_min_u_b(v16u8, v16u8);
-#define __msa_min_u_b __builtin_msa_min_u_b
 extern v8u16 __builtin_msa_min_u_h(v8u16, v8u16);
-#define __msa_min_u_h __builtin_msa_min_u_h
 extern v4u32 __builtin_msa_min_u_w(v4u32, v4u32);
-#define __msa_min_u_w __builtin_msa_min_u_w
 extern v2u64 __builtin_msa_min_u_d(v2u64, v2u64);
-#define __msa_min_u_d __builtin_msa_min_u_d
 extern v16u8 __builtin_msa_mini_u_b(v16u8, unsigned char);
-#define __msa_mini_u_b __builtin_msa_mini_u_b
 extern v8u16 __builtin_msa_mini_u_h(v8u16, unsigned char);
-#define __msa_mini_u_h __builtin_msa_mini_u_h
 extern v4u32 __builtin_msa_mini_u_w(v4u32, unsigned char);
-#define __msa_mini_u_w __builtin_msa_mini_u_w
 extern v2u64 __builtin_msa_mini_u_d(v2u64, unsigned char);
-#define __msa_mini_u_d __builtin_msa_mini_u_d
 extern v16i8 __builtin_msa_max_a_b(v16i8, v16i8);
-#define __msa_max_a_b __builtin_msa_max_a_b
 extern v8i16 __builtin_msa_max_a_h(v8i16, v8i16);
-#define __msa_max_a_h __builtin_msa_max_a_h
 extern v4i32 __builtin_msa_max_a_w(v4i32, v4i32);
-#define __msa_max_a_w __builtin_msa_max_a_w
 extern v2i64 __builtin_msa_max_a_d(v2i64, v2i64);
-#define __msa_max_a_d __builtin_msa_max_a_d
 extern v16i8 __builtin_msa_min_a_b(v16i8, v16i8);
-#define __msa_min_a_b __builtin_msa_min_a_b
 extern v8i16 __builtin_msa_min_a_h(v8i16, v8i16);
-#define __msa_min_a_h __builtin_msa_min_a_h
 extern v4i32 __builtin_msa_min_a_w(v4i32, v4i32);
-#define __msa_min_a_w __builtin_msa_min_a_w
 extern v2i64 __builtin_msa_min_a_d(v2i64, v2i64);
-#define __msa_min_a_d __builtin_msa_min_a_d
 extern v16i8 __builtin_msa_ceq_b(v16i8, v16i8);
-#define __msa_ceq_b __builtin_msa_ceq_b
 extern v8i16 __builtin_msa_ceq_h(v8i16, v8i16);
-#define __msa_ceq_h __builtin_msa_ceq_h
 extern v4i32 __builtin_msa_ceq_w(v4i32, v4i32);
-#define __msa_ceq_w __builtin_msa_ceq_w
 extern v2i64 __builtin_msa_ceq_d(v2i64, v2i64);
-#define __msa_ceq_d __builtin_msa_ceq_d
 extern v16i8 __builtin_msa_ceqi_b(v16i8, char);
-#define __msa_ceqi_b __builtin_msa_ceqi_b
 extern v8i16 __builtin_msa_ceqi_h(v8i16, char);
-#define __msa_ceqi_h __builtin_msa_ceqi_h
 extern v4i32 __builtin_msa_ceqi_w(v4i32, char);
-#define __msa_ceqi_w __builtin_msa_ceqi_w
 extern v2i64 __builtin_msa_ceqi_d(v2i64, char);
-#define __msa_ceqi_d __builtin_msa_ceqi_d
 extern v16i8 __builtin_msa_clt_s_b(v16i8, v16i8);
-#define __msa_clt_s_b __builtin_msa_clt_s_b
 extern v8i16 __builtin_msa_clt_s_h(v8i16, v8i16);
-#define __msa_clt_s_h __builtin_msa_clt_s_h
 extern v4i32 __builtin_msa_clt_s_w(v4i32, v4i32);
-#define __msa_clt_s_w __builtin_msa_clt_s_w
 extern v2i64 __builtin_msa_clt_s_d(v2i64, v2i64);
-#define __msa_clt_s_d __builtin_msa_clt_s_d
 extern v16i8 __builtin_msa_clti_s_b(v16i8, char);
-#define __msa_clti_s_b __builtin_msa_clti_s_b
 extern v8i16 __builtin_msa_clti_s_h(v8i16, char);
-#define __msa_clti_s_h __builtin_msa_clti_s_h
 extern v4i32 __builtin_msa_clti_s_w(v4i32, char);
-#define __msa_clti_s_w __builtin_msa_clti_s_w
 extern v2i64 __builtin_msa_clti_s_d(v2i64, char);
-#define __msa_clti_s_d __builtin_msa_clti_s_d
 extern v16i8 __builtin_msa_clt_u_b(v16u8, v16u8);
-#define __msa_clt_u_b __builtin_msa_clt_u_b
 extern v8i16 __builtin_msa_clt_u_h(v8u16, v8u16);
-#define __msa_clt_u_h __builtin_msa_clt_u_h
 extern v4i32 __builtin_msa_clt_u_w(v4u32, v4u32);
-#define __msa_clt_u_w __builtin_msa_clt_u_w
 extern v2i64 __builtin_msa_clt_u_d(v2u64, v2u64);
-#define __msa_clt_u_d __builtin_msa_clt_u_d
 extern v16i8 __builtin_msa_clti_u_b(v16u8, unsigned char);
-#define __msa_clti_u_b __builtin_msa_clti_u_b
 extern v8i16 __builtin_msa_clti_u_h(v8u16, unsigned char);
-#define __msa_clti_u_h __builtin_msa_clti_u_h
 extern v4i32 __builtin_msa_clti_u_w(v4u32, unsigned char);
-#define __msa_clti_u_w __builtin_msa_clti_u_w
 extern v2i64 __builtin_msa_clti_u_d(v2u64, unsigned char);
-#define __msa_clti_u_d __builtin_msa_clti_u_d
 extern v16i8 __builtin_msa_cle_s_b(v16i8, v16i8);
-#define __msa_cle_s_b __builtin_msa_cle_s_b
 extern v8i16 __builtin_msa_cle_s_h(v8i16, v8i16);
-#define __msa_cle_s_h __builtin_msa_cle_s_h
 extern v4i32 __builtin_msa_cle_s_w(v4i32, v4i32);
-#define __msa_cle_s_w __builtin_msa_cle_s_w
 extern v2i64 __builtin_msa_cle_s_d(v2i64, v2i64);
-#define __msa_cle_s_d __builtin_msa_cle_s_d
 extern v16i8 __builtin_msa_clei_s_b(v16i8, char);
-#define __msa_clei_s_b __builtin_msa_clei_s_b
 extern v8i16 __builtin_msa_clei_s_h(v8i16, char);
-#define __msa_clei_s_h __builtin_msa_clei_s_h
 extern v4i32 __builtin_msa_clei_s_w(v4i32, char);
-#define __msa_clei_s_w __builtin_msa_clei_s_w
 extern v2i64 __builtin_msa_clei_s_d(v2i64, char);
-#define __msa_clei_s_d __builtin_msa_clei_s_d
 extern v16i8 __builtin_msa_cle_u_b(v16u8, v16u8);
-#define __msa_cle_u_b __builtin_msa_cle_u_b
 extern v8i16 __builtin_msa_cle_u_h(v8u16, v8u16);
-#define __msa_cle_u_h __builtin_msa_cle_u_h
 extern v4i32 __builtin_msa_cle_u_w(v4u32, v4u32);
-#define __msa_cle_u_w __builtin_msa_cle_u_w
 extern v2i64 __builtin_msa_cle_u_d(v2u64, v2u64);
-#define __msa_cle_u_d __builtin_msa_cle_u_d
 extern v16i8 __builtin_msa_clei_u_b(v16u8, unsigned char);
-#define __msa_clei_u_b __builtin_msa_clei_u_b
 extern v8i16 __builtin_msa_clei_u_h(v8u16, unsigned char);
-#define __msa_clei_u_h __builtin_msa_clei_u_h
 extern v4i32 __builtin_msa_clei_u_w(v4u32, unsigned char);
-#define __msa_clei_u_w __builtin_msa_clei_u_w
 extern v2i64 __builtin_msa_clei_u_d(v2u64, unsigned char);
-#define __msa_clei_u_d __builtin_msa_clei_u_d
 extern v16i8 __builtin_msa_ld_b(void *, int);
-#define __msa_ld_b __builtin_msa_ld_b
 extern v8i16 __builtin_msa_ld_h(void *, int);
-#define __msa_ld_h __builtin_msa_ld_h
 extern v4i32 __builtin_msa_ld_w(void *, int);
-#define __msa_ld_w __builtin_msa_ld_w
 extern v2i64 __builtin_msa_ld_d(void *, int);
-#define __msa_ld_d __builtin_msa_ld_d
+extern void __builtin_msa_st_b(v16i8, char *, int);
+extern void __builtin_msa_st_h(v8i16, char *, int);
+extern void __builtin_msa_st_w(v4i32, char *, int);
+extern void __builtin_msa_st_d(v2i64, char *, int);
 extern v16i8 __builtin_msa_sat_s_b(v16i8, unsigned char);
-#define __msa_sat_s_b __builtin_msa_sat_s_b
 extern v8i16 __builtin_msa_sat_s_h(v8i16, unsigned char);
-#define __msa_sat_s_h __builtin_msa_sat_s_h
 extern v4i32 __builtin_msa_sat_s_w(v4i32, unsigned char);
-#define __msa_sat_s_w __builtin_msa_sat_s_w
 extern v2i64 __builtin_msa_sat_s_d(v2i64, unsigned char);
-#define __msa_sat_s_d __builtin_msa_sat_s_d
 extern v16u8 __builtin_msa_sat_u_b(v16u8, unsigned char);
-#define __msa_sat_u_b __builtin_msa_sat_u_b
 extern v8u16 __builtin_msa_sat_u_h(v8u16, unsigned char);
-#define __msa_sat_u_h __builtin_msa_sat_u_h
 extern v4u32 __builtin_msa_sat_u_w(v4u32, unsigned char);
-#define __msa_sat_u_w __builtin_msa_sat_u_w
 extern v2u64 __builtin_msa_sat_u_d(v2u64, unsigned char);
-#define __msa_sat_u_d __builtin_msa_sat_u_d
 extern v16i8 __builtin_msa_add_a_b(v16i8, v16i8);
-#define __msa_add_a_b __builtin_msa_add_a_b
 extern v8i16 __builtin_msa_add_a_h(v8i16, v8i16);
-#define __msa_add_a_h __builtin_msa_add_a_h
 extern v4i32 __builtin_msa_add_a_w(v4i32, v4i32);
-#define __msa_add_a_w __builtin_msa_add_a_w
 extern v2i64 __builtin_msa_add_a_d(v2i64, v2i64);
-#define __msa_add_a_d __builtin_msa_add_a_d
 extern v16i8 __builtin_msa_adds_a_b(v16i8, v16i8);
-#define __msa_adds_a_b __builtin_msa_adds_a_b
 extern v8i16 __builtin_msa_adds_a_h(v8i16, v8i16);
-#define __msa_adds_a_h __builtin_msa_adds_a_h
 extern v4i32 __builtin_msa_adds_a_w(v4i32, v4i32);
-#define __msa_adds_a_w __builtin_msa_adds_a_w
 extern v2i64 __builtin_msa_adds_a_d(v2i64, v2i64);
-#define __msa_adds_a_d __builtin_msa_adds_a_d
 extern v16i8 __builtin_msa_adds_s_b(v16i8, v16i8);
-#define __msa_adds_s_b __builtin_msa_adds_s_b
 extern v8i16 __builtin_msa_adds_s_h(v8i16, v8i16);
-#define __msa_adds_s_h __builtin_msa_adds_s_h
 extern v4i32 __builtin_msa_adds_s_w(v4i32, v4i32);
-#define __msa_adds_s_w __builtin_msa_adds_s_w
 extern v2i64 __builtin_msa_adds_s_d(v2i64, v2i64);
-#define __msa_adds_s_d __builtin_msa_adds_s_d
 extern v16u8 __builtin_msa_adds_u_b(v16u8, v16u8);
-#define __msa_adds_u_b __builtin_msa_adds_u_b
 extern v8u16 __builtin_msa_adds_u_h(v8u16, v8u16);
-#define __msa_adds_u_h __builtin_msa_adds_u_h
 extern v4u32 __builtin_msa_adds_u_w(v4u32, v4u32);
-#define __msa_adds_u_w __builtin_msa_adds_u_w
 extern v2u64 __builtin_msa_adds_u_d(v2u64, v2u64);
-#define __msa_adds_u_d __builtin_msa_adds_u_d
 extern v16i8 __builtin_msa_ave_s_b(v16i8, v16i8);
-#define __msa_ave_s_b __builtin_msa_ave_s_b
 extern v8i16 __builtin_msa_ave_s_h(v8i16, v8i16);
-#define __msa_ave_s_h __builtin_msa_ave_s_h
 extern v4i32 __builtin_msa_ave_s_w(v4i32, v4i32);
-#define __msa_ave_s_w __builtin_msa_ave_s_w
 extern v2i64 __builtin_msa_ave_s_d(v2i64, v2i64);
-#define __msa_ave_s_d __builtin_msa_ave_s_d
 extern v16u8 __builtin_msa_ave_u_b(v16u8, v16u8);
-#define __msa_ave_u_b __builtin_msa_ave_u_b
 extern v8u16 __builtin_msa_ave_u_h(v8u16, v8u16);
-#define __msa_ave_u_h __builtin_msa_ave_u_h
 extern v4u32 __builtin_msa_ave_u_w(v4u32, v4u32);
-#define __msa_ave_u_w __builtin_msa_ave_u_w
 extern v2u64 __builtin_msa_ave_u_d(v2u64, v2u64);
-#define __msa_ave_u_d __builtin_msa_ave_u_d
 extern v16i8 __builtin_msa_aver_s_b(v16i8, v16i8);
-#define __msa_aver_s_b __builtin_msa_aver_s_b
 extern v8i16 __builtin_msa_aver_s_h(v8i16, v8i16);
-#define __msa_aver_s_h __builtin_msa_aver_s_h
 extern v4i32 __builtin_msa_aver_s_w(v4i32, v4i32);
-#define __msa_aver_s_w __builtin_msa_aver_s_w
 extern v2i64 __builtin_msa_aver_s_d(v2i64, v2i64);
-#define __msa_aver_s_d __builtin_msa_aver_s_d
 extern v16u8 __builtin_msa_aver_u_b(v16u8, v16u8);
-#define __msa_aver_u_b __builtin_msa_aver_u_b
 extern v8u16 __builtin_msa_aver_u_h(v8u16, v8u16);
-#define __msa_aver_u_h __builtin_msa_aver_u_h
 extern v4u32 __builtin_msa_aver_u_w(v4u32, v4u32);
-#define __msa_aver_u_w __builtin_msa_aver_u_w
 extern v2u64 __builtin_msa_aver_u_d(v2u64, v2u64);
-#define __msa_aver_u_d __builtin_msa_aver_u_d
 extern v16i8 __builtin_msa_subs_s_b(v16i8, v16i8);
-#define __msa_subs_s_b __builtin_msa_subs_s_b
 extern v8i16 __builtin_msa_subs_s_h(v8i16, v8i16);
-#define __msa_subs_s_h __builtin_msa_subs_s_h
 extern v4i32 __builtin_msa_subs_s_w(v4i32, v4i32);
-#define __msa_subs_s_w __builtin_msa_subs_s_w
 extern v2i64 __builtin_msa_subs_s_d(v2i64, v2i64);
-#define __msa_subs_s_d __builtin_msa_subs_s_d
 extern v16u8 __builtin_msa_subs_u_b(v16u8, v16u8);
-#define __msa_subs_u_b __builtin_msa_subs_u_b
 extern v8u16 __builtin_msa_subs_u_h(v8u16, v8u16);
-#define __msa_subs_u_h __builtin_msa_subs_u_h
 extern v4u32 __builtin_msa_subs_u_w(v4u32, v4u32);
-#define __msa_subs_u_w __builtin_msa_subs_u_w
 extern v2u64 __builtin_msa_subs_u_d(v2u64, v2u64);
-#define __msa_subs_u_d __builtin_msa_subs_u_d
 extern v16i8 __builtin_msa_subsuu_s_b(v16u8, v16u8);
-#define __msa_subsuu_s_b __builtin_msa_subsuu_s_b
 extern v8i16 __builtin_msa_subsuu_s_h(v8u16, v8u16);
-#define __msa_subsuu_s_h __builtin_msa_subsuu_s_h
 extern v4i32 __builtin_msa_subsuu_s_w(v4u32, v4u32);
-#define __msa_subsuu_s_w __builtin_msa_subsuu_s_w
 extern v2i64 __builtin_msa_subsuu_s_d(v2u64, v2u64);
-#define __msa_subsuu_s_d __builtin_msa_subsuu_s_d
 extern v16u8 __builtin_msa_subsus_u_b(v16u8, v16i8);
-#define __msa_subsus_u_b __builtin_msa_subsus_u_b
 extern v8u16 __builtin_msa_subsus_u_h(v8u16, v8i16);
-#define __msa_subsus_u_h __builtin_msa_subsus_u_h
 extern v4u32 __builtin_msa_subsus_u_w(v4u32, v4i32);
-#define __msa_subsus_u_w __builtin_msa_subsus_u_w
 extern v2u64 __builtin_msa_subsus_u_d(v2u64, v2i64);
-#define __msa_subsus_u_d __builtin_msa_subsus_u_d
 extern v16i8 __builtin_msa_asub_s_b(v16i8, v16i8);
-#define __msa_asub_s_b __builtin_msa_asub_s_b
 extern v8i16 __builtin_msa_asub_s_h(v8i16, v8i16);
-#define __msa_asub_s_h __builtin_msa_asub_s_h
 extern v4i32 __builtin_msa_asub_s_w(v4i32, v4i32);
-#define __msa_asub_s_w __builtin_msa_asub_s_w
 extern v2i64 __builtin_msa_asub_s_d(v2i64, v2i64);
-#define __msa_asub_s_d __builtin_msa_asub_s_d
 extern v16u8 __builtin_msa_asub_u_b(v16u8, v16u8);
-#define __msa_asub_u_b __builtin_msa_asub_u_b
 extern v8u16 __builtin_msa_asub_u_h(v8u16, v8u16);
-#define __msa_asub_u_h __builtin_msa_asub_u_h
 extern v4u32 __builtin_msa_asub_u_w(v4u32, v4u32);
-#define __msa_asub_u_w __builtin_msa_asub_u_w
 extern v2u64 __builtin_msa_asub_u_d(v2u64, v2u64);
-#define __msa_asub_u_d __builtin_msa_asub_u_d
 extern v16i8 __builtin_msa_mulv_b(v16i8, v16i8);
-#define __msa_mulv_b __builtin_msa_mulv_b
 extern v8i16 __builtin_msa_mulv_h(v8i16, v8i16);
-#define __msa_mulv_h __builtin_msa_mulv_h
 extern v4i32 __builtin_msa_mulv_w(v4i32, v4i32);
-#define __msa_mulv_w __builtin_msa_mulv_w
 extern v2i64 __builtin_msa_mulv_d(v2i64, v2i64);
-#define __msa_mulv_d __builtin_msa_mulv_d
 extern v16i8 __builtin_msa_maddv_b(v16i8, v16i8, v16i8);
-#define __msa_maddv_b __builtin_msa_maddv_b
 extern v8i16 __builtin_msa_maddv_h(v8i16, v8i16, v8i16);
-#define __msa_maddv_h __builtin_msa_maddv_h
 extern v4i32 __builtin_msa_maddv_w(v4i32, v4i32, v4i32);
-#define __msa_maddv_w __builtin_msa_maddv_w
 extern v2i64 __builtin_msa_maddv_d(v2i64, v2i64, v2i64);
-#define __msa_maddv_d __builtin_msa_maddv_d
 extern v16i8 __builtin_msa_msubv_b(v16i8, v16i8, v16i8);
-#define __msa_msubv_b __builtin_msa_msubv_b
 extern v8i16 __builtin_msa_msubv_h(v8i16, v8i16, v8i16);
-#define __msa_msubv_h __builtin_msa_msubv_h
 extern v4i32 __builtin_msa_msubv_w(v4i32, v4i32, v4i32);
-#define __msa_msubv_w __builtin_msa_msubv_w
 extern v2i64 __builtin_msa_msubv_d(v2i64, v2i64, v2i64);
-#define __msa_msubv_d __builtin_msa_msubv_d
 extern v16i8 __builtin_msa_div_s_b(v16i8, v16i8);
-#define __msa_div_s_b __builtin_msa_div_s_b
 extern v8i16 __builtin_msa_div_s_h(v8i16, v8i16);
-#define __msa_div_s_h __builtin_msa_div_s_h
 extern v4i32 __builtin_msa_div_s_w(v4i32, v4i32);
-#define __msa_div_s_w __builtin_msa_div_s_w
 extern v2i64 __builtin_msa_div_s_d(v2i64, v2i64);
-#define __msa_div_s_d __builtin_msa_div_s_d
 extern v16u8 __builtin_msa_div_u_b(v16u8, v16u8);
-#define __msa_div_u_b __builtin_msa_div_u_b
 extern v8u16 __builtin_msa_div_u_h(v8u16, v8u16);
-#define __msa_div_u_h __builtin_msa_div_u_h
 extern v4u32 __builtin_msa_div_u_w(v4u32, v4u32);
-#define __msa_div_u_w __builtin_msa_div_u_w
 extern v2u64 __builtin_msa_div_u_d(v2u64, v2u64);
-#define __msa_div_u_d __builtin_msa_div_u_d
 extern v8i16 __builtin_msa_hadd_s_h(v16i8, v16i8);
-#define __msa_hadd_s_h __builtin_msa_hadd_s_h
 extern v4i32 __builtin_msa_hadd_s_w(v8i16, v8i16);
-#define __msa_hadd_s_w __builtin_msa_hadd_s_w
 extern v2i64 __builtin_msa_hadd_s_d(v4i32, v4i32);
-#define __msa_hadd_s_d __builtin_msa_hadd_s_d
 extern v8u16 __builtin_msa_hadd_u_h(v16u8, v16u8);
-#define __msa_hadd_u_h __builtin_msa_hadd_u_h
 extern v4u32 __builtin_msa_hadd_u_w(v8u16, v8u16);
-#define __msa_hadd_u_w __builtin_msa_hadd_u_w
 extern v2u64 __builtin_msa_hadd_u_d(v4u32, v4u32);
-#define __msa_hadd_u_d __builtin_msa_hadd_u_d
 extern v8i16 __builtin_msa_hsub_s_h(v16i8, v16i8);
-#define __msa_hsub_s_h __builtin_msa_hsub_s_h
 extern v4i32 __builtin_msa_hsub_s_w(v8i16, v8i16);
-#define __msa_hsub_s_w __builtin_msa_hsub_s_w
 extern v2i64 __builtin_msa_hsub_s_d(v4i32, v4i32);
-#define __msa_hsub_s_d __builtin_msa_hsub_s_d
 extern v8i16 __builtin_msa_hsub_u_h(v16u8, v16u8);
-#define __msa_hsub_u_h __builtin_msa_hsub_u_h
 extern v4i32 __builtin_msa_hsub_u_w(v8u16, v8u16);
-#define __msa_hsub_u_w __builtin_msa_hsub_u_w
 extern v2i64 __builtin_msa_hsub_u_d(v4u32, v4u32);
-#define __msa_hsub_u_d __builtin_msa_hsub_u_d
 extern v16i8 __builtin_msa_mod_s_b(v16i8, v16i8);
-#define __msa_mod_s_b __builtin_msa_mod_s_b
 extern v8i16 __builtin_msa_mod_s_h(v8i16, v8i16);
-#define __msa_mod_s_h __builtin_msa_mod_s_h
 extern v4i32 __builtin_msa_mod_s_w(v4i32, v4i32);
-#define __msa_mod_s_w __builtin_msa_mod_s_w
 extern v2i64 __builtin_msa_mod_s_d(v2i64, v2i64);
-#define __msa_mod_s_d __builtin_msa_mod_s_d
 extern v16u8 __builtin_msa_mod_u_b(v16u8, v16u8);
-#define __msa_mod_u_b __builtin_msa_mod_u_b
 extern v8u16 __builtin_msa_mod_u_h(v8u16, v8u16);
-#define __msa_mod_u_h __builtin_msa_mod_u_h
 extern v4u32 __builtin_msa_mod_u_w(v4u32, v4u32);
-#define __msa_mod_u_w __builtin_msa_mod_u_w
 extern v2u64 __builtin_msa_mod_u_d(v2u64, v2u64);
-#define __msa_mod_u_d __builtin_msa_mod_u_d
 extern v8i16 __builtin_msa_dotp_s_h(v16i8, v16i8);
-#define __msa_dotp_s_h __builtin_msa_dotp_s_h
 extern v4i32 __builtin_msa_dotp_s_w(v8i16, v8i16);
-#define __msa_dotp_s_w __builtin_msa_dotp_s_w
 extern v2i64 __builtin_msa_dotp_s_d(v4i32, v4i32);
-#define __msa_dotp_s_d __builtin_msa_dotp_s_d
 extern v8u16 __builtin_msa_dotp_u_h(v16u8, v16u8);
-#define __msa_dotp_u_h __builtin_msa_dotp_u_h
 extern v4u32 __builtin_msa_dotp_u_w(v8u16, v8u16);
-#define __msa_dotp_u_w __builtin_msa_dotp_u_w
 extern v2u64 __builtin_msa_dotp_u_d(v4u32, v4u32);
-#define __msa_dotp_u_d __builtin_msa_dotp_u_d
 extern v8i16 __builtin_msa_dpadd_s_h(v8i16, v16i8, v16i8);
-#define __msa_dpadd_s_h __builtin_msa_dpadd_s_h
 extern v4i32 __builtin_msa_dpadd_s_w(v4i32, v8i16, v8i16);
-#define __msa_dpadd_s_w __builtin_msa_dpadd_s_w
 extern v2i64 __builtin_msa_dpadd_s_d(v2i64, v4i32, v4i32);
-#define __msa_dpadd_s_d __builtin_msa_dpadd_s_d
 extern v8u16 __builtin_msa_dpadd_u_h(v8u16, v16u8, v16u8);
-#define __msa_dpadd_u_h __builtin_msa_dpadd_u_h
 extern v4u32 __builtin_msa_dpadd_u_w(v4u32, v8u16, v8u16);
-#define __msa_dpadd_u_w __builtin_msa_dpadd_u_w
 extern v2u64 __builtin_msa_dpadd_u_d(v2u64, v4u32, v4u32);
-#define __msa_dpadd_u_d __builtin_msa_dpadd_u_d
 extern v8i16 __builtin_msa_dpsub_s_h(v8i16, v16i8, v16i8);
-#define __msa_dpsub_s_h __builtin_msa_dpsub_s_h
 extern v4i32 __builtin_msa_dpsub_s_w(v4i32, v8i16, v8i16);
-#define __msa_dpsub_s_w __builtin_msa_dpsub_s_w
 extern v2i64 __builtin_msa_dpsub_s_d(v2i64, v4i32, v4i32);
-#define __msa_dpsub_s_d __builtin_msa_dpsub_s_d
 extern v8i16 __builtin_msa_dpsub_u_h(v8i16, v16u8, v16u8);
-#define __msa_dpsub_u_h __builtin_msa_dpsub_u_h
 extern v4i32 __builtin_msa_dpsub_u_w(v4i32, v8u16, v8u16);
-#define __msa_dpsub_u_w __builtin_msa_dpsub_u_w
 extern v2i64 __builtin_msa_dpsub_u_d(v2i64, v4u32, v4u32);
-#define __msa_dpsub_u_d __builtin_msa_dpsub_u_d
 extern v16i8 __builtin_msa_sld_b(v16i8, v16i8, int);
-#define __msa_sld_b __builtin_msa_sld_b
 extern v8i16 __builtin_msa_sld_h(v8i16, v8i16, int);
-#define __msa_sld_h __builtin_msa_sld_h
 extern v4i32 __builtin_msa_sld_w(v4i32, v4i32, int);
-#define __msa_sld_w __builtin_msa_sld_w
 extern v2i64 __builtin_msa_sld_d(v2i64, v2i64, int);
-#define __msa_sld_d __builtin_msa_sld_d
 extern v16i8 __builtin_msa_sldi_b(v16i8, v16i8, unsigned char);
-#define __msa_sldi_b __builtin_msa_sldi_b
 extern v8i16 __builtin_msa_sldi_h(v8i16, v8i16, unsigned char);
-#define __msa_sldi_h __builtin_msa_sldi_h
 extern v4i32 __builtin_msa_sldi_w(v4i32, v4i32, unsigned char);
-#define __msa_sldi_w __builtin_msa_sldi_w
 extern v2i64 __builtin_msa_sldi_d(v2i64, v2i64, unsigned char);
-#define __msa_sldi_d __builtin_msa_sldi_d
 extern v16i8 __builtin_msa_splat_b(v16i8, int);
-#define __msa_splat_b __builtin_msa_splat_b
 extern v8i16 __builtin_msa_splat_h(v8i16, int);
-#define __msa_splat_h __builtin_msa_splat_h
 extern v4i32 __builtin_msa_splat_w(v4i32, int);
-#define __msa_splat_w __builtin_msa_splat_w
 extern v2i64 __builtin_msa_splat_d(v2i64, int);
-#define __msa_splat_d __builtin_msa_splat_d
 extern v16i8 __builtin_msa_splati_b(v16i8, unsigned char);
-#define __msa_splati_b __builtin_msa_splati_b
 extern v8i16 __builtin_msa_splati_h(v8i16, unsigned char);
-#define __msa_splati_h __builtin_msa_splati_h
 extern v4i32 __builtin_msa_splati_w(v4i32, unsigned char);
-#define __msa_splati_w __builtin_msa_splati_w
 extern v2i64 __builtin_msa_splati_d(v2i64, unsigned char);
-#define __msa_splati_d __builtin_msa_splati_d
 extern v16i8 __builtin_msa_pckev_b(v16i8, v16i8);
-#define __msa_pckev_b __builtin_msa_pckev_b
 extern v8i16 __builtin_msa_pckev_h(v8i16, v8i16);
-#define __msa_pckev_h __builtin_msa_pckev_h
 extern v4i32 __builtin_msa_pckev_w(v4i32, v4i32);
-#define __msa_pckev_w __builtin_msa_pckev_w
 extern v2i64 __builtin_msa_pckev_d(v2i64, v2i64);
-#define __msa_pckev_d __builtin_msa_pckev_d
 extern v16i8 __builtin_msa_pckod_b(v16i8, v16i8);
-#define __msa_pckod_b __builtin_msa_pckod_b
 extern v8i16 __builtin_msa_pckod_h(v8i16, v8i16);
-#define __msa_pckod_h __builtin_msa_pckod_h
 extern v4i32 __builtin_msa_pckod_w(v4i32, v4i32);
-#define __msa_pckod_w __builtin_msa_pckod_w
 extern v2i64 __builtin_msa_pckod_d(v2i64, v2i64);
-#define __msa_pckod_d __builtin_msa_pckod_d
 extern v16i8 __builtin_msa_ilvl_b(v16i8, v16i8);
-#define __msa_ilvl_b __builtin_msa_ilvl_b
 extern v8i16 __builtin_msa_ilvl_h(v8i16, v8i16);
-#define __msa_ilvl_h __builtin_msa_ilvl_h
 extern v4i32 __builtin_msa_ilvl_w(v4i32, v4i32);
-#define __msa_ilvl_w __builtin_msa_ilvl_w
 extern v2i64 __builtin_msa_ilvl_d(v2i64, v2i64);
-#define __msa_ilvl_d __builtin_msa_ilvl_d
 extern v16i8 __builtin_msa_ilvr_b(v16i8, v16i8);
-#define __msa_ilvr_b __builtin_msa_ilvr_b
 extern v8i16 __builtin_msa_ilvr_h(v8i16, v8i16);
-#define __msa_ilvr_h __builtin_msa_ilvr_h
 extern v4i32 __builtin_msa_ilvr_w(v4i32, v4i32);
-#define __msa_ilvr_w __builtin_msa_ilvr_w
 extern v2i64 __builtin_msa_ilvr_d(v2i64, v2i64);
-#define __msa_ilvr_d __builtin_msa_ilvr_d
 extern v16i8 __builtin_msa_ilvev_b(v16i8, v16i8);
-#define __msa_ilvev_b __builtin_msa_ilvev_b
 extern v8i16 __builtin_msa_ilvev_h(v8i16, v8i16);
-#define __msa_ilvev_h __builtin_msa_ilvev_h
 extern v4i32 __builtin_msa_ilvev_w(v4i32, v4i32);
-#define __msa_ilvev_w __builtin_msa_ilvev_w
 extern v2i64 __builtin_msa_ilvev_d(v2i64, v2i64);
-#define __msa_ilvev_d __builtin_msa_ilvev_d
 extern v16i8 __builtin_msa_ilvod_b(v16i8, v16i8);
-#define __msa_ilvod_b __builtin_msa_ilvod_b
 extern v8i16 __builtin_msa_ilvod_h(v8i16, v8i16);
-#define __msa_ilvod_h __builtin_msa_ilvod_h
 extern v4i32 __builtin_msa_ilvod_w(v4i32, v4i32);
-#define __msa_ilvod_w __builtin_msa_ilvod_w
 extern v2i64 __builtin_msa_ilvod_d(v2i64, v2i64);
-#define __msa_ilvod_d __builtin_msa_ilvod_d
 extern v16i8 __builtin_msa_vshf_b(v16i8, v16i8, v16i8);
-#define __msa_vshf_b __builtin_msa_vshf_b
 extern v8i16 __builtin_msa_vshf_h(v8i16, v8i16, v8i16);
-#define __msa_vshf_h __builtin_msa_vshf_h
 extern v4i32 __builtin_msa_vshf_w(v4i32, v4i32, v4i32);
-#define __msa_vshf_w __builtin_msa_vshf_w
 extern v2i64 __builtin_msa_vshf_d(v2i64, v2i64, v2i64);
-#define __msa_vshf_d __builtin_msa_vshf_d
 extern v16u8 __builtin_msa_and_v(v16u8, v16u8);
-#define __msa_and_v __builtin_msa_and_v
 extern v16u8 __builtin_msa_andi_b(v16u8, unsigned char);
-#define __msa_andi_b __builtin_msa_andi_b
 extern v16u8 __builtin_msa_or_v(v16u8, v16u8);
-#define __msa_or_v __builtin_msa_or_v
 extern v16u8 __builtin_msa_ori_b(v16u8, unsigned char);
-#define __msa_ori_b __builtin_msa_ori_b
 extern v16u8 __builtin_msa_nor_v(v16u8, v16u8);
-#define __msa_nor_v __builtin_msa_nor_v
 extern v16u8 __builtin_msa_nori_b(v16u8, unsigned char);
-#define __msa_nori_b __builtin_msa_nori_b
 extern v16u8 __builtin_msa_xor_v(v16u8, v16u8);
-#define __msa_xor_v __builtin_msa_xor_v
 extern v16u8 __builtin_msa_xori_b(v16u8, unsigned char);
-#define __msa_xori_b __builtin_msa_xori_b
 extern v16u8 __builtin_msa_bmnz_v(v16u8, v16u8, v16u8);
-#define __msa_bmnz_v __builtin_msa_bmnz_v
 extern v16u8 __builtin_msa_bmnzi_b(v16u8, v16u8, unsigned char);
-#define __msa_bmnzi_b __builtin_msa_bmnzi_b
 extern v16u8 __builtin_msa_bmz_v(v16u8, v16u8, v16u8);
-#define __msa_bmz_v __builtin_msa_bmz_v
 extern v16u8 __builtin_msa_bmzi_b(v16u8, v16u8, unsigned char);
-#define __msa_bmzi_b __builtin_msa_bmzi_b
 extern v16u8 __builtin_msa_bsel_v(v16u8, v16u8, v16u8);
-#define __msa_bsel_v __builtin_msa_bsel_v
 extern v16u8 __builtin_msa_bseli_b(v16u8, v16u8, unsigned char);
-#define __msa_bseli_b __builtin_msa_bseli_b
 extern v16i8 __builtin_msa_shf_b(v16i8, unsigned char);
-#define __msa_shf_b __builtin_msa_shf_b
 extern v8i16 __builtin_msa_shf_h(v8i16, unsigned char);
-#define __msa_shf_h __builtin_msa_shf_h
 extern v4i32 __builtin_msa_shf_w(v4i32, unsigned char);
-#define __msa_shf_w __builtin_msa_shf_w
 extern int __builtin_msa_bnz_v(v16u8);
-#define __msa_test_bnz_v __builtin_msa_bnz_v
 extern int __builtin_msa_bz_v(v16u8);
-#define __msa_test_bz_v __builtin_msa_bz_v
 extern v16i8 __builtin_msa_fill_b(int);
-#define __msa_fill_b __builtin_msa_fill_b
 extern v8i16 __builtin_msa_fill_h(int);
-#define __msa_fill_h __builtin_msa_fill_h
 extern v4i32 __builtin_msa_fill_w(int);
-#define __msa_fill_w __builtin_msa_fill_w
 extern v2i64 __builtin_msa_fill_d(long long);
-#define __msa_fill_d __builtin_msa_fill_d
 extern v16i8 __builtin_msa_pcnt_b(v16i8);
-#define __msa_pcnt_b __builtin_msa_pcnt_b
 extern v8i16 __builtin_msa_pcnt_h(v8i16);
-#define __msa_pcnt_h __builtin_msa_pcnt_h
 extern v4i32 __builtin_msa_pcnt_w(v4i32);
-#define __msa_pcnt_w __builtin_msa_pcnt_w
 extern v2i64 __builtin_msa_pcnt_d(v2i64);
-#define __msa_pcnt_d __builtin_msa_pcnt_d
 extern v16i8 __builtin_msa_nloc_b(v16i8);
-#define __msa_nloc_b __builtin_msa_nloc_b
 extern v8i16 __builtin_msa_nloc_h(v8i16);
-#define __msa_nloc_h __builtin_msa_nloc_h
 extern v4i32 __builtin_msa_nloc_w(v4i32);
-#define __msa_nloc_w __builtin_msa_nloc_w
 extern v2i64 __builtin_msa_nloc_d(v2i64);
-#define __msa_nloc_d __builtin_msa_nloc_d
 extern v16i8 __builtin_msa_nlzc_b(v16i8);
-#define __msa_nlzc_b __builtin_msa_nlzc_b
 extern v8i16 __builtin_msa_nlzc_h(v8i16);
-#define __msa_nlzc_h __builtin_msa_nlzc_h
 extern v4i32 __builtin_msa_nlzc_w(v4i32);
-#define __msa_nlzc_w __builtin_msa_nlzc_w
 extern v2i64 __builtin_msa_nlzc_d(v2i64);
-#define __msa_nlzc_d __builtin_msa_nlzc_d
 extern int __builtin_msa_copy_s_b(v16i8, unsigned char);
-#define __msa_copy_s_b __builtin_msa_copy_s_b
 extern int __builtin_msa_copy_s_h(v8i16, unsigned char);
-#define __msa_copy_s_h __builtin_msa_copy_s_h
 extern int __builtin_msa_copy_s_w(v4i32, unsigned char);
-#define __msa_copy_s_w __builtin_msa_copy_s_w
 extern long long __builtin_msa_copy_s_d(v2i64, unsigned char);
-#define __msa_copy_s_d __builtin_msa_copy_s_d
 extern int __builtin_msa_copy_u_b(v16i8, unsigned char);
-#define __msa_copy_u_b __builtin_msa_copy_u_b
 extern int __builtin_msa_copy_u_h(v8i16, unsigned char);
-#define __msa_copy_u_h __builtin_msa_copy_u_h
 extern int __builtin_msa_copy_u_w(v4i32, unsigned char);
-#define __msa_copy_u_w __builtin_msa_copy_u_w
 extern long long __builtin_msa_copy_u_d(v2i64, unsigned char);
-#define __msa_copy_u_d __builtin_msa_copy_u_d
 extern v16i8 __builtin_msa_insert_b(v16i8, unsigned char, int);
-#define __msa_insert_b __builtin_msa_insert_b
 extern v8i16 __builtin_msa_insert_h(v8i16, unsigned char, int);
-#define __msa_insert_h __builtin_msa_insert_h
 extern v4i32 __builtin_msa_insert_w(v4i32, unsigned char, int);
-#define __msa_insert_w __builtin_msa_insert_w
 extern v2i64 __builtin_msa_insert_d(v2i64, unsigned char, long long);
-#define __msa_insert_d __builtin_msa_insert_d
 extern v16i8 __builtin_msa_insve_b(v16i8, unsigned char, v16i8);
-#define __msa_insve_b __builtin_msa_insve_b
 extern v8i16 __builtin_msa_insve_h(v8i16, unsigned char, v8i16);
-#define __msa_insve_h __builtin_msa_insve_h
 extern v4i32 __builtin_msa_insve_w(v4i32, unsigned char, v4i32);
-#define __msa_insve_w __builtin_msa_insve_w
 extern v2i64 __builtin_msa_insve_d(v2i64, unsigned char, v2i64);
-#define __msa_insve_d __builtin_msa_insve_d
 extern int __builtin_msa_bnz_b(v16u8);
-#define __msa_test_bnz_b __builtin_msa_bnz_b
 extern int __builtin_msa_bnz_h(v8u16);
-#define __msa_test_bnz_h __builtin_msa_bnz_h
 extern int __builtin_msa_bnz_w(v4u32);
-#define __msa_test_bnz_w __builtin_msa_bnz_w
 extern int __builtin_msa_bnz_d(v2u64);
-#define __msa_test_bnz_d __builtin_msa_bnz_d
 extern int __builtin_msa_bz_b(v16u8);
-#define __msa_test_bz_b __builtin_msa_bz_b
 extern int __builtin_msa_bz_h(v8u16);
-#define __msa_test_bz_h __builtin_msa_bz_h
 extern int __builtin_msa_bz_w(v4u32);
-#define __msa_test_bz_w __builtin_msa_bz_w
 extern int __builtin_msa_bz_d(v2u64);
-#define __msa_test_bz_d __builtin_msa_bz_d
 extern v16i8 __builtin_msa_ldi_b(short);
-#define __msa_ldi_b __builtin_msa_ldi_b
 extern v8i16 __builtin_msa_ldi_h(short);
-#define __msa_ldi_h __builtin_msa_ldi_h
 extern v4i32 __builtin_msa_ldi_w(short);
-#define __msa_ldi_w __builtin_msa_ldi_w
 extern v2i64 __builtin_msa_ldi_d(short);
-#define __msa_ldi_d __builtin_msa_ldi_d
 extern v4i32 __builtin_msa_fcaf_w(v4f32, v4f32);
-#define __msa_fcaf_w __builtin_msa_fcaf_w
 extern v2i64 __builtin_msa_fcaf_d(v2f64, v2f64);
-#define __msa_fcaf_d __builtin_msa_fcaf_d
 extern v4i32 __builtin_msa_fcor_w(v4f32, v4f32);
-#define __msa_fcor_w __builtin_msa_fcor_w
 extern v2i64 __builtin_msa_fcor_d(v2f64, v2f64);
-#define __msa_fcor_d __builtin_msa_fcor_d
 extern v4i32 __builtin_msa_fcun_w(v4f32, v4f32);
-#define __msa_fcun_w __builtin_msa_fcun_w
 extern v2i64 __builtin_msa_fcun_d(v2f64, v2f64);
-#define __msa_fcun_d __builtin_msa_fcun_d
 extern v4i32 __builtin_msa_fcune_w(v4f32, v4f32);
-#define __msa_fcune_w __builtin_msa_fcune_w
 extern v2i64 __builtin_msa_fcune_d(v2f64, v2f64);
-#define __msa_fcune_d __builtin_msa_fcune_d
 extern v4i32 __builtin_msa_fcueq_w(v4f32, v4f32);
-#define __msa_fcueq_w __builtin_msa_fcueq_w
 extern v2i64 __builtin_msa_fcueq_d(v2f64, v2f64);
-#define __msa_fcueq_d __builtin_msa_fcueq_d
 extern v4i32 __builtin_msa_fceq_w(v4f32, v4f32);
-#define __msa_fceq_w __builtin_msa_fceq_w
 extern v2i64 __builtin_msa_fceq_d(v2f64, v2f64);
-#define __msa_fceq_d __builtin_msa_fceq_d
 extern v4i32 __builtin_msa_fcne_w(v4f32, v4f32);
-#define __msa_fcne_w __builtin_msa_fcne_w
 extern v2i64 __builtin_msa_fcne_d(v2f64, v2f64);
-#define __msa_fcne_d __builtin_msa_fcne_d
 extern v4i32 __builtin_msa_fclt_w(v4f32, v4f32);
-#define __msa_fclt_w __builtin_msa_fclt_w
 extern v2i64 __builtin_msa_fclt_d(v2f64, v2f64);
-#define __msa_fclt_d __builtin_msa_fclt_d
 extern v4i32 __builtin_msa_fcult_w(v4f32, v4f32);
-#define __msa_fcult_w __builtin_msa_fcult_w
 extern v2i64 __builtin_msa_fcult_d(v2f64, v2f64);
-#define __msa_fcult_d __builtin_msa_fcult_d
 extern v4i32 __builtin_msa_fcle_w(v4f32, v4f32);
-#define __msa_fcle_w __builtin_msa_fcle_w
 extern v2i64 __builtin_msa_fcle_d(v2f64, v2f64);
-#define __msa_fcle_d __builtin_msa_fcle_d
 extern v4i32 __builtin_msa_fcule_w(v4f32, v4f32);
-#define __msa_fcule_w __builtin_msa_fcule_w
 extern v2i64 __builtin_msa_fcule_d(v2f64, v2f64);
-#define __msa_fcule_d __builtin_msa_fcule_d
 extern v4i32 __builtin_msa_fsaf_w(v4f32, v4f32);
-#define __msa_fsaf_w __builtin_msa_fsaf_w
 extern v2i64 __builtin_msa_fsaf_d(v2f64, v2f64);
-#define __msa_fsaf_d __builtin_msa_fsaf_d
 extern v4i32 __builtin_msa_fsor_w(v4f32, v4f32);
-#define __msa_fsor_w __builtin_msa_fsor_w
 extern v2i64 __builtin_msa_fsor_d(v2f64, v2f64);
-#define __msa_fsor_d __builtin_msa_fsor_d
 extern v4i32 __builtin_msa_fsun_w(v4f32, v4f32);
-#define __msa_fsun_w __builtin_msa_fsun_w
 extern v2i64 __builtin_msa_fsun_d(v2f64, v2f64);
-#define __msa_fsun_d __builtin_msa_fsun_d
 extern v4i32 __builtin_msa_fsune_w(v4f32, v4f32);
-#define __msa_fsune_w __builtin_msa_fsune_w
 extern v2i64 __builtin_msa_fsune_d(v2f64, v2f64);
-#define __msa_fsune_d __builtin_msa_fsune_d
 extern v4i32 __builtin_msa_fsueq_w(v4f32, v4f32);
-#define __msa_fsueq_w __builtin_msa_fsueq_w
 extern v2i64 __builtin_msa_fsueq_d(v2f64, v2f64);
-#define __msa_fsueq_d __builtin_msa_fsueq_d
 extern v4i32 __builtin_msa_fseq_w(v4f32, v4f32);
-#define __msa_fseq_w __builtin_msa_fseq_w
 extern v2i64 __builtin_msa_fseq_d(v2f64, v2f64);
-#define __msa_fseq_d __builtin_msa_fseq_d
 extern v4i32 __builtin_msa_fsne_w(v4f32, v4f32);
-#define __msa_fsne_w __builtin_msa_fsne_w
 extern v2i64 __builtin_msa_fsne_d(v2f64, v2f64);
-#define __msa_fsne_d __builtin_msa_fsne_d
 extern v4i32 __builtin_msa_fslt_w(v4f32, v4f32);
-#define __msa_fslt_w __builtin_msa_fslt_w
 extern v2i64 __builtin_msa_fslt_d(v2f64, v2f64);
-#define __msa_fslt_d __builtin_msa_fslt_d
 extern v4i32 __builtin_msa_fsult_w(v4f32, v4f32);
-#define __msa_fsult_w __builtin_msa_fsult_w
 extern v2i64 __builtin_msa_fsult_d(v2f64, v2f64);
-#define __msa_fsult_d __builtin_msa_fsult_d
 extern v4i32 __builtin_msa_fsle_w(v4f32, v4f32);
-#define __msa_fsle_w __builtin_msa_fsle_w
 extern v2i64 __builtin_msa_fsle_d(v2f64, v2f64);
-#define __msa_fsle_d __builtin_msa_fsle_d
 extern v4i32 __builtin_msa_fsule_w(v4f32, v4f32);
-#define __msa_fsule_w __builtin_msa_fsule_w
 extern v2i64 __builtin_msa_fsule_d(v2f64, v2f64);
-#define __msa_fsule_d __builtin_msa_fsule_d
 extern v4f32 __builtin_msa_fadd_w(v4f32, v4f32);
-#define __msa_fadd_w __builtin_msa_fadd_w
 extern v2f64 __builtin_msa_fadd_d(v2f64, v2f64);
-#define __msa_fadd_d __builtin_msa_fadd_d
 extern v4f32 __builtin_msa_fsub_w(v4f32, v4f32);
-#define __msa_fsub_w __builtin_msa_fsub_w
 extern v2f64 __builtin_msa_fsub_d(v2f64, v2f64);
-#define __msa_fsub_d __builtin_msa_fsub_d
 extern v4f32 __builtin_msa_fmul_w(v4f32, v4f32);
-#define __msa_fmul_w __builtin_msa_fmul_w
 extern v2f64 __builtin_msa_fmul_d(v2f64, v2f64);
-#define __msa_fmul_d __builtin_msa_fmul_d
 extern v4f32 __builtin_msa_fdiv_w(v4f32, v4f32);
-#define __msa_fdiv_w __builtin_msa_fdiv_w
 extern v2f64 __builtin_msa_fdiv_d(v2f64, v2f64);
-#define __msa_fdiv_d __builtin_msa_fdiv_d
 extern v4f32 __builtin_msa_fmadd_w(v4f32, v4f32, v4f32);
-#define __msa_fmadd_w __builtin_msa_fmadd_w
 extern v2f64 __builtin_msa_fmadd_d(v2f64, v2f64, v2f64);
-#define __msa_fmadd_d __builtin_msa_fmadd_d
 extern v4f32 __builtin_msa_fmsub_w(v4f32, v4f32, v4f32);
-#define __msa_fmsub_w __builtin_msa_fmsub_w
 extern v2f64 __builtin_msa_fmsub_d(v2f64, v2f64, v2f64);
-#define __msa_fmsub_d __builtin_msa_fmsub_d
 extern v4f32 __builtin_msa_fexp2_w(v4f32, v4i32);
-#define __msa_fexp2_w __builtin_msa_fexp2_w
 extern v2f64 __builtin_msa_fexp2_d(v2f64, v2i64);
-#define __msa_fexp2_d __builtin_msa_fexp2_d
 extern v8i16 __builtin_msa_fexdo_h(v4f32, v4f32);
-#define __msa_fexdo_h __builtin_msa_fexdo_h
 extern v4f32 __builtin_msa_fexdo_w(v2f64, v2f64);
-#define __msa_fexdo_w __builtin_msa_fexdo_w
 extern v8i16 __builtin_msa_ftq_h(v4f32, v4f32);
-#define __msa_ftq_h __builtin_msa_ftq_h
 extern v4i32 __builtin_msa_ftq_w(v2f64, v2f64);
-#define __msa_ftq_w __builtin_msa_ftq_w
 extern v4f32 __builtin_msa_fmin_w(v4f32, v4f32);
-#define __msa_fmin_w __builtin_msa_fmin_w
 extern v2f64 __builtin_msa_fmin_d(v2f64, v2f64);
-#define __msa_fmin_d __builtin_msa_fmin_d
 extern v4f32 __builtin_msa_fmin_a_w(v4f32, v4f32);
-#define __msa_fmin_a_w __builtin_msa_fmin_a_w
 extern v2f64 __builtin_msa_fmin_a_d(v2f64, v2f64);
-#define __msa_fmin_a_d __builtin_msa_fmin_a_d
 extern v4f32 __builtin_msa_fmax_w(v4f32, v4f32);
-#define __msa_fmax_w __builtin_msa_fmax_w
 extern v2f64 __builtin_msa_fmax_d(v2f64, v2f64);
-#define __msa_fmax_d __builtin_msa_fmax_d
 extern v4f32 __builtin_msa_fmax_a_w(v4f32, v4f32);
-#define __msa_fmax_a_w __builtin_msa_fmax_a_w
 extern v2f64 __builtin_msa_fmax_a_d(v2f64, v2f64);
-#define __msa_fmax_a_d __builtin_msa_fmax_a_d
 extern v8i16 __builtin_msa_mul_q_h(v8i16, v8i16);
-#define __msa_mul_q_h __builtin_msa_mul_q_h
 extern v4i32 __builtin_msa_mul_q_w(v4i32, v4i32);
-#define __msa_mul_q_w __builtin_msa_mul_q_w
 extern v8i16 __builtin_msa_mulr_q_h(v8i16, v8i16);
-#define __msa_mulr_q_h __builtin_msa_mulr_q_h
 extern v4i32 __builtin_msa_mulr_q_w(v4i32, v4i32);
-#define __msa_mulr_q_w __builtin_msa_mulr_q_w
 extern v8i16 __builtin_msa_madd_q_h(v8i16, v8i16, v8i16);
-#define __msa_madd_q_h __builtin_msa_madd_q_h
 extern v4i32 __builtin_msa_madd_q_w(v4i32, v4i32, v4i32);
-#define __msa_madd_q_w __builtin_msa_madd_q_w
 extern v8i16 __builtin_msa_maddr_q_h(v8i16, v8i16, v8i16);
-#define __msa_maddr_q_h __builtin_msa_maddr_q_h
 extern v4i32 __builtin_msa_maddr_q_w(v4i32, v4i32, v4i32);
-#define __msa_maddr_q_w __builtin_msa_maddr_q_w
 extern v8i16 __builtin_msa_msub_q_h(v8i16, v8i16, v8i16);
-#define __msa_msub_q_h __builtin_msa_msub_q_h
 extern v4i32 __builtin_msa_msub_q_w(v4i32, v4i32, v4i32);
-#define __msa_msub_q_w __builtin_msa_msub_q_w
 extern v8i16 __builtin_msa_msubr_q_h(v8i16, v8i16, v8i16);
-#define __msa_msubr_q_h __builtin_msa_msubr_q_h
 extern v4i32 __builtin_msa_msubr_q_w(v4i32, v4i32, v4i32);
-#define __msa_msubr_q_w __builtin_msa_msubr_q_w
 extern v4i32 __builtin_msa_fclass_w(v4f32);
-#define __msa_fclass_w __builtin_msa_fclass_w
 extern v2i64 __builtin_msa_fclass_d(v2f64);
-#define __msa_fclass_d __builtin_msa_fclass_d
 extern v4f32 __builtin_msa_fsqrt_w(v4f32);
-#define __msa_fsqrt_w __builtin_msa_fsqrt_w
 extern v2f64 __builtin_msa_fsqrt_d(v2f64);
-#define __msa_fsqrt_d __builtin_msa_fsqrt_d
 extern v4f32 __builtin_msa_frcp_w(v4f32);
-#define __msa_frcp_w __builtin_msa_frcp_w
 extern v2f64 __builtin_msa_frcp_d(v2f64);
-#define __msa_frcp_d __builtin_msa_frcp_d
 extern v4f32 __builtin_msa_frint_w(v4f32);
-#define __msa_frint_w __builtin_msa_frint_w
 extern v2f64 __builtin_msa_frint_d(v2f64);
-#define __msa_frint_d __builtin_msa_frint_d
 extern v4f32 __builtin_msa_frsqrt_w(v4f32);
-#define __msa_frsqrt_w __builtin_msa_frsqrt_w
 extern v2f64 __builtin_msa_frsqrt_d(v2f64);
-#define __msa_frsqrt_d __builtin_msa_frsqrt_d
 extern v4f32 __builtin_msa_flog2_w(v4f32);
-#define __msa_flog2_w __builtin_msa_flog2_w
 extern v2f64 __builtin_msa_flog2_d(v2f64);
-#define __msa_flog2_d __builtin_msa_flog2_d
 extern v4f32 __builtin_msa_fexupl_w(v8i16);
-#define __msa_fexupl_w __builtin_msa_fexupl_w
 extern v2f64 __builtin_msa_fexupl_d(v4f32);
-#define __msa_fexupl_d __builtin_msa_fexupl_d
 extern v4f32 __builtin_msa_fexupr_w(v8i16);
-#define __msa_fexupr_w __builtin_msa_fexupr_w
 extern v2f64 __builtin_msa_fexupr_d(v4f32);
-#define __msa_fexupr_d __builtin_msa_fexupr_d
 extern v4f32 __builtin_msa_ffql_w(v8i16);
-#define __msa_ffql_w __builtin_msa_ffql_w
 extern v2f64 __builtin_msa_ffql_d(v4i32);
-#define __msa_ffql_d __builtin_msa_ffql_d
 extern v4f32 __builtin_msa_ffqr_w(v8i16);
-#define __msa_ffqr_w __builtin_msa_ffqr_w
 extern v2f64 __builtin_msa_ffqr_d(v4i32);
-#define __msa_ffqr_d __builtin_msa_ffqr_d
 extern v4i32 __builtin_msa_ftint_s_w(v4f32);
-#define __msa_ftint_s_w __builtin_msa_ftint_s_w
 extern v2i64 __builtin_msa_ftint_s_d(v2f64);
-#define __msa_ftint_s_d __builtin_msa_ftint_s_d
 extern v4u32 __builtin_msa_ftint_u_w(v4f32);
-#define __msa_ftint_u_w __builtin_msa_ftint_u_w
 extern v2u64 __builtin_msa_ftint_u_d(v2f64);
-#define __msa_ftint_u_d __builtin_msa_ftint_u_d
 extern v4i32 __builtin_msa_ftrunc_s_w(v4f32);
-#define __msa_ftrunc_s_w __builtin_msa_ftrunc_s_w
 extern v2i64 __builtin_msa_ftrunc_s_d(v2f64);
-#define __msa_ftrunc_s_d __builtin_msa_ftrunc_s_d
 extern v4u32 __builtin_msa_ftrunc_u_w(v4f32);
-#define __msa_ftrunc_u_w __builtin_msa_ftrunc_u_w
 extern v2u64 __builtin_msa_ftrunc_u_d(v2f64);
-#define __msa_ftrunc_u_d __builtin_msa_ftrunc_u_d
 extern v4f32 __builtin_msa_ffint_s_w(v4i32);
-#define __msa_ffint_s_w __builtin_msa_ffint_s_w
 extern v2f64 __builtin_msa_ffint_s_d(v2i64);
-#define __msa_ffint_s_d __builtin_msa_ffint_s_d
 extern v4f32 __builtin_msa_ffint_u_w(v4u32);
-#define __msa_ffint_u_w __builtin_msa_ffint_u_w
 extern v2f64 __builtin_msa_ffint_u_d(v2u64);
-#define __msa_ffint_u_d __builtin_msa_ffint_u_d
 extern int __builtin_msa_cfcmsa(unsigned char);
-#define __msa_cfcmsa __builtin_msa_cfcmsa
 extern v16i8 __builtin_msa_move_v(v16i8);
-#define __msa_move_v __builtin_msa_move_v
 extern v4f32 __builtin_msa_cast_to_vector_float(float);
-#define __msa_cast_to_vector_float __builtin_msa_cast_to_vector_float
 extern v2f64 __builtin_msa_cast_to_vector_double(double);
-#define __msa_cast_to_vector_double __builtin_msa_cast_to_vector_double
 extern float __builtin_msa_cast_to_scalar_float(v4f32);
-#define __msa_cast_to_scalar_float __builtin_msa_cast_to_scalar_float
 extern double __builtin_msa_cast_to_scalar_double(v2f64);
-#define __msa_cast_to_scalar_double __builtin_msa_cast_to_scalar_double
 #endif /* __clang__ */
+#define __msa_sll_b __builtin_msa_sll_b
+#define __msa_sll_h __builtin_msa_sll_h
+#define __msa_sll_w __builtin_msa_sll_w
+#define __msa_sll_d __builtin_msa_sll_d
+#define __msa_slli_b __builtin_msa_slli_b
+#define __msa_slli_h __builtin_msa_slli_h
+#define __msa_slli_w __builtin_msa_slli_w
+#define __msa_slli_d __builtin_msa_slli_d
+#define __msa_sra_b __builtin_msa_sra_b
+#define __msa_sra_h __builtin_msa_sra_h
+#define __msa_sra_w __builtin_msa_sra_w
+#define __msa_sra_d __builtin_msa_sra_d
+#define __msa_srai_b __builtin_msa_srai_b
+#define __msa_srai_h __builtin_msa_srai_h
+#define __msa_srai_w __builtin_msa_srai_w
+#define __msa_srai_d __builtin_msa_srai_d
+#define __msa_srar_b __builtin_msa_srar_b
+#define __msa_srar_h __builtin_msa_srar_h
+#define __msa_srar_w __builtin_msa_srar_w
+#define __msa_srar_d __builtin_msa_srar_d
+#define __msa_srari_b __builtin_msa_srari_b
+#define __msa_srari_h __builtin_msa_srari_h
+#define __msa_srari_w __builtin_msa_srari_w
+#define __msa_srari_d __builtin_msa_srari_d
+#define __msa_srl_b __builtin_msa_srl_b
+#define __msa_srl_h __builtin_msa_srl_h
+#define __msa_srl_w __builtin_msa_srl_w
+#define __msa_srl_d __builtin_msa_srl_d
+#define __msa_srli_b __builtin_msa_srli_b
+#define __msa_srli_h __builtin_msa_srli_h
+#define __msa_srli_w __builtin_msa_srli_w
+#define __msa_srli_d __builtin_msa_srli_d
+#define __msa_srlr_b __builtin_msa_srlr_b
+#define __msa_srlr_h __builtin_msa_srlr_h
+#define __msa_srlr_w __builtin_msa_srlr_w
+#define __msa_srlr_d __builtin_msa_srlr_d
+#define __msa_srlri_b __builtin_msa_srlri_b
+#define __msa_srlri_h __builtin_msa_srlri_h
+#define __msa_srlri_w __builtin_msa_srlri_w
+#define __msa_srlri_d __builtin_msa_srlri_d
+#define __msa_bclr_b __builtin_msa_bclr_b
+#define __msa_bclr_h __builtin_msa_bclr_h
+#define __msa_bclr_w __builtin_msa_bclr_w
+#define __msa_bclr_d __builtin_msa_bclr_d
+#define __msa_bclri_b __builtin_msa_bclri_b
+#define __msa_bclri_h __builtin_msa_bclri_h
+#define __msa_bclri_w __builtin_msa_bclri_w
+#define __msa_bclri_d __builtin_msa_bclri_d
+#define __msa_bset_b __builtin_msa_bset_b
+#define __msa_bset_h __builtin_msa_bset_h
+#define __msa_bset_w __builtin_msa_bset_w
+#define __msa_bset_d __builtin_msa_bset_d
+#define __msa_bseti_b __builtin_msa_bseti_b
+#define __msa_bseti_h __builtin_msa_bseti_h
+#define __msa_bseti_w __builtin_msa_bseti_w
+#define __msa_bseti_d __builtin_msa_bseti_d
+#define __msa_bneg_b __builtin_msa_bneg_b
+#define __msa_bneg_h __builtin_msa_bneg_h
+#define __msa_bneg_w __builtin_msa_bneg_w
+#define __msa_bneg_d __builtin_msa_bneg_d
+#define __msa_bnegi_b __builtin_msa_bnegi_b
+#define __msa_bnegi_h __builtin_msa_bnegi_h
+#define __msa_bnegi_w __builtin_msa_bnegi_w
+#define __msa_bnegi_d __builtin_msa_bnegi_d
+#define __msa_binsl_b __builtin_msa_binsl_b
+#define __msa_binsl_h __builtin_msa_binsl_h
+#define __msa_binsl_w __builtin_msa_binsl_w
+#define __msa_binsl_d __builtin_msa_binsl_d
+#define __msa_binsli_b __builtin_msa_binsli_b
+#define __msa_binsli_h __builtin_msa_binsli_h
+#define __msa_binsli_w __builtin_msa_binsli_w
+#define __msa_binsli_d __builtin_msa_binsli_d
+#define __msa_binsr_b __builtin_msa_binsr_b
+#define __msa_binsr_h __builtin_msa_binsr_h
+#define __msa_binsr_w __builtin_msa_binsr_w
+#define __msa_binsr_d __builtin_msa_binsr_d
+#define __msa_binsri_b __builtin_msa_binsri_b
+#define __msa_binsri_h __builtin_msa_binsri_h
+#define __msa_binsri_w __builtin_msa_binsri_w
+#define __msa_binsri_d __builtin_msa_binsri_d
+#define __msa_addv_b __builtin_msa_addv_b
+#define __msa_addv_h __builtin_msa_addv_h
+#define __msa_addv_w __builtin_msa_addv_w
+#define __msa_addv_d __builtin_msa_addv_d
+#define __msa_addvi_b __builtin_msa_addvi_b
+#define __msa_addvi_h __builtin_msa_addvi_h
+#define __msa_addvi_w __builtin_msa_addvi_w
+#define __msa_addvi_d __builtin_msa_addvi_d
+#define __msa_subv_b __builtin_msa_subv_b
+#define __msa_subv_h __builtin_msa_subv_h
+#define __msa_subv_w __builtin_msa_subv_w
+#define __msa_subv_d __builtin_msa_subv_d
+#define __msa_subvi_b __builtin_msa_subvi_b
+#define __msa_subvi_h __builtin_msa_subvi_h
+#define __msa_subvi_w __builtin_msa_subvi_w
+#define __msa_subvi_d __builtin_msa_subvi_d
+#define __msa_max_s_b __builtin_msa_max_s_b
+#define __msa_max_s_h __builtin_msa_max_s_h
+#define __msa_max_s_w __builtin_msa_max_s_w
+#define __msa_max_s_d __builtin_msa_max_s_d
+#define __msa_maxi_s_b __builtin_msa_maxi_s_b
+#define __msa_maxi_s_h __builtin_msa_maxi_s_h
+#define __msa_maxi_s_w __builtin_msa_maxi_s_w
+#define __msa_maxi_s_d __builtin_msa_maxi_s_d
+#define __msa_max_u_b __builtin_msa_max_u_b
+#define __msa_max_u_h __builtin_msa_max_u_h
+#define __msa_max_u_w __builtin_msa_max_u_w
+#define __msa_max_u_d __builtin_msa_max_u_d
+#define __msa_maxi_u_b __builtin_msa_maxi_u_b
+#define __msa_maxi_u_h __builtin_msa_maxi_u_h
+#define __msa_maxi_u_w __builtin_msa_maxi_u_w
+#define __msa_maxi_u_d __builtin_msa_maxi_u_d
+#define __msa_min_s_b __builtin_msa_min_s_b
+#define __msa_min_s_h __builtin_msa_min_s_h
+#define __msa_min_s_w __builtin_msa_min_s_w
+#define __msa_min_s_d __builtin_msa_min_s_d
+#define __msa_mini_s_b __builtin_msa_mini_s_b
+#define __msa_mini_s_h __builtin_msa_mini_s_h
+#define __msa_mini_s_w __builtin_msa_mini_s_w
+#define __msa_mini_s_d __builtin_msa_mini_s_d
+#define __msa_min_u_b __builtin_msa_min_u_b
+#define __msa_min_u_h __builtin_msa_min_u_h
+#define __msa_min_u_w __builtin_msa_min_u_w
+#define __msa_min_u_d __builtin_msa_min_u_d
+#define __msa_mini_u_b __builtin_msa_mini_u_b
+#define __msa_mini_u_h __builtin_msa_mini_u_h
+#define __msa_mini_u_w __builtin_msa_mini_u_w
+#define __msa_mini_u_d __builtin_msa_mini_u_d
+#define __msa_max_a_b __builtin_msa_max_a_b
+#define __msa_max_a_h __builtin_msa_max_a_h
+#define __msa_max_a_w __builtin_msa_max_a_w
+#define __msa_max_a_d __builtin_msa_max_a_d
+#define __msa_min_a_b __builtin_msa_min_a_b
+#define __msa_min_a_h __builtin_msa_min_a_h
+#define __msa_min_a_w __builtin_msa_min_a_w
+#define __msa_min_a_d __builtin_msa_min_a_d
+#define __msa_ceq_b __builtin_msa_ceq_b
+#define __msa_ceq_h __builtin_msa_ceq_h
+#define __msa_ceq_w __builtin_msa_ceq_w
+#define __msa_ceq_d __builtin_msa_ceq_d
+#define __msa_ceqi_b __builtin_msa_ceqi_b
+#define __msa_ceqi_h __builtin_msa_ceqi_h
+#define __msa_ceqi_w __builtin_msa_ceqi_w
+#define __msa_ceqi_d __builtin_msa_ceqi_d
+#define __msa_clt_s_b __builtin_msa_clt_s_b
+#define __msa_clt_s_h __builtin_msa_clt_s_h
+#define __msa_clt_s_w __builtin_msa_clt_s_w
+#define __msa_clt_s_d __builtin_msa_clt_s_d
+#define __msa_clti_s_b __builtin_msa_clti_s_b
+#define __msa_clti_s_h __builtin_msa_clti_s_h
+#define __msa_clti_s_w __builtin_msa_clti_s_w
+#define __msa_clti_s_d __builtin_msa_clti_s_d
+#define __msa_clt_u_b __builtin_msa_clt_u_b
+#define __msa_clt_u_h __builtin_msa_clt_u_h
+#define __msa_clt_u_w __builtin_msa_clt_u_w
+#define __msa_clt_u_d __builtin_msa_clt_u_d
+#define __msa_clti_u_b __builtin_msa_clti_u_b
+#define __msa_clti_u_h __builtin_msa_clti_u_h
+#define __msa_clti_u_w __builtin_msa_clti_u_w
+#define __msa_clti_u_d __builtin_msa_clti_u_d
+#define __msa_cle_s_b __builtin_msa_cle_s_b
+#define __msa_cle_s_h __builtin_msa_cle_s_h
+#define __msa_cle_s_w __builtin_msa_cle_s_w
+#define __msa_cle_s_d __builtin_msa_cle_s_d
+#define __msa_clei_s_b __builtin_msa_clei_s_b
+#define __msa_clei_s_h __builtin_msa_clei_s_h
+#define __msa_clei_s_w __builtin_msa_clei_s_w
+#define __msa_clei_s_d __builtin_msa_clei_s_d
+#define __msa_cle_u_b __builtin_msa_cle_u_b
+#define __msa_cle_u_h __builtin_msa_cle_u_h
+#define __msa_cle_u_w __builtin_msa_cle_u_w
+#define __msa_cle_u_d __builtin_msa_cle_u_d
+#define __msa_clei_u_b __builtin_msa_clei_u_b
+#define __msa_clei_u_h __builtin_msa_clei_u_h
+#define __msa_clei_u_w __builtin_msa_clei_u_w
+#define __msa_clei_u_d __builtin_msa_clei_u_d
+#define __msa_ld_b __builtin_msa_ld_b
+#define __msa_ld_h __builtin_msa_ld_h
+#define __msa_ld_w __builtin_msa_ld_w
+#define __msa_ld_d __builtin_msa_ld_d
+#define __msa_st_b __builtin_msa_st_b
+#define __msa_st_h __builtin_msa_st_h
+#define __msa_st_w __builtin_msa_st_w
+#define __msa_st_d __builtin_msa_st_d
+#define __msa_sat_s_b __builtin_msa_sat_s_b
+#define __msa_sat_s_h __builtin_msa_sat_s_h
+#define __msa_sat_s_w __builtin_msa_sat_s_w
+#define __msa_sat_s_d __builtin_msa_sat_s_d
+#define __msa_sat_u_b __builtin_msa_sat_u_b
+#define __msa_sat_u_h __builtin_msa_sat_u_h
+#define __msa_sat_u_w __builtin_msa_sat_u_w
+#define __msa_sat_u_d __builtin_msa_sat_u_d
+#define __msa_add_a_b __builtin_msa_add_a_b
+#define __msa_add_a_h __builtin_msa_add_a_h
+#define __msa_add_a_w __builtin_msa_add_a_w
+#define __msa_add_a_d __builtin_msa_add_a_d
+#define __msa_adds_a_b __builtin_msa_adds_a_b
+#define __msa_adds_a_h __builtin_msa_adds_a_h
+#define __msa_adds_a_w __builtin_msa_adds_a_w
+#define __msa_adds_a_d __builtin_msa_adds_a_d
+#define __msa_adds_s_b __builtin_msa_adds_s_b
+#define __msa_adds_s_h __builtin_msa_adds_s_h
+#define __msa_adds_s_w __builtin_msa_adds_s_w
+#define __msa_adds_s_d __builtin_msa_adds_s_d
+#define __msa_adds_u_b __builtin_msa_adds_u_b
+#define __msa_adds_u_h __builtin_msa_adds_u_h
+#define __msa_adds_u_w __builtin_msa_adds_u_w
+#define __msa_adds_u_d __builtin_msa_adds_u_d
+#define __msa_ave_s_b __builtin_msa_ave_s_b
+#define __msa_ave_s_h __builtin_msa_ave_s_h
+#define __msa_ave_s_w __builtin_msa_ave_s_w
+#define __msa_ave_s_d __builtin_msa_ave_s_d
+#define __msa_ave_u_b __builtin_msa_ave_u_b
+#define __msa_ave_u_h __builtin_msa_ave_u_h
+#define __msa_ave_u_w __builtin_msa_ave_u_w
+#define __msa_ave_u_d __builtin_msa_ave_u_d
+#define __msa_aver_s_b __builtin_msa_aver_s_b
+#define __msa_aver_s_h __builtin_msa_aver_s_h
+#define __msa_aver_s_w __builtin_msa_aver_s_w
+#define __msa_aver_s_d __builtin_msa_aver_s_d
+#define __msa_aver_u_b __builtin_msa_aver_u_b
+#define __msa_aver_u_h __builtin_msa_aver_u_h
+#define __msa_aver_u_w __builtin_msa_aver_u_w
+#define __msa_aver_u_d __builtin_msa_aver_u_d
+#define __msa_subs_s_b __builtin_msa_subs_s_b
+#define __msa_subs_s_h __builtin_msa_subs_s_h
+#define __msa_subs_s_w __builtin_msa_subs_s_w
+#define __msa_subs_s_d __builtin_msa_subs_s_d
+#define __msa_subs_u_b __builtin_msa_subs_u_b
+#define __msa_subs_u_h __builtin_msa_subs_u_h
+#define __msa_subs_u_w __builtin_msa_subs_u_w
+#define __msa_subs_u_d __builtin_msa_subs_u_d
+#define __msa_subsuu_s_b __builtin_msa_subsuu_s_b
+#define __msa_subsuu_s_h __builtin_msa_subsuu_s_h
+#define __msa_subsuu_s_w __builtin_msa_subsuu_s_w
+#define __msa_subsuu_s_d __builtin_msa_subsuu_s_d
+#define __msa_subsus_u_b __builtin_msa_subsus_u_b
+#define __msa_subsus_u_h __builtin_msa_subsus_u_h
+#define __msa_subsus_u_w __builtin_msa_subsus_u_w
+#define __msa_subsus_u_d __builtin_msa_subsus_u_d
+#define __msa_asub_s_b __builtin_msa_asub_s_b
+#define __msa_asub_s_h __builtin_msa_asub_s_h
+#define __msa_asub_s_w __builtin_msa_asub_s_w
+#define __msa_asub_s_d __builtin_msa_asub_s_d
+#define __msa_asub_u_b __builtin_msa_asub_u_b
+#define __msa_asub_u_h __builtin_msa_asub_u_h
+#define __msa_asub_u_w __builtin_msa_asub_u_w
+#define __msa_asub_u_d __builtin_msa_asub_u_d
+#define __msa_mulv_b __builtin_msa_mulv_b
+#define __msa_mulv_h __builtin_msa_mulv_h
+#define __msa_mulv_w __builtin_msa_mulv_w
+#define __msa_mulv_d __builtin_msa_mulv_d
+#define __msa_maddv_b __builtin_msa_maddv_b
+#define __msa_maddv_h __builtin_msa_maddv_h
+#define __msa_maddv_w __builtin_msa_maddv_w
+#define __msa_maddv_d __builtin_msa_maddv_d
+#define __msa_msubv_b __builtin_msa_msubv_b
+#define __msa_msubv_h __builtin_msa_msubv_h
+#define __msa_msubv_w __builtin_msa_msubv_w
+#define __msa_msubv_d __builtin_msa_msubv_d
+#define __msa_div_s_b __builtin_msa_div_s_b
+#define __msa_div_s_h __builtin_msa_div_s_h
+#define __msa_div_s_w __builtin_msa_div_s_w
+#define __msa_div_s_d __builtin_msa_div_s_d
+#define __msa_div_u_b __builtin_msa_div_u_b
+#define __msa_div_u_h __builtin_msa_div_u_h
+#define __msa_div_u_w __builtin_msa_div_u_w
+#define __msa_div_u_d __builtin_msa_div_u_d
+#define __msa_hadd_s_h __builtin_msa_hadd_s_h
+#define __msa_hadd_s_w __builtin_msa_hadd_s_w
+#define __msa_hadd_s_d __builtin_msa_hadd_s_d
+#define __msa_hadd_u_h __builtin_msa_hadd_u_h
+#define __msa_hadd_u_w __builtin_msa_hadd_u_w
+#define __msa_hadd_u_d __builtin_msa_hadd_u_d
+#define __msa_hsub_s_h __builtin_msa_hsub_s_h
+#define __msa_hsub_s_w __builtin_msa_hsub_s_w
+#define __msa_hsub_s_d __builtin_msa_hsub_s_d
+#define __msa_hsub_u_h __builtin_msa_hsub_u_h
+#define __msa_hsub_u_w __builtin_msa_hsub_u_w
+#define __msa_hsub_u_d __builtin_msa_hsub_u_d
+#define __msa_mod_s_b __builtin_msa_mod_s_b
+#define __msa_mod_s_h __builtin_msa_mod_s_h
+#define __msa_mod_s_w __builtin_msa_mod_s_w
+#define __msa_mod_s_d __builtin_msa_mod_s_d
+#define __msa_mod_u_b __builtin_msa_mod_u_b
+#define __msa_mod_u_h __builtin_msa_mod_u_h
+#define __msa_mod_u_w __builtin_msa_mod_u_w
+#define __msa_mod_u_d __builtin_msa_mod_u_d
+#define __msa_dotp_s_h __builtin_msa_dotp_s_h
+#define __msa_dotp_s_w __builtin_msa_dotp_s_w
+#define __msa_dotp_s_d __builtin_msa_dotp_s_d
+#define __msa_dotp_u_h __builtin_msa_dotp_u_h
+#define __msa_dotp_u_w __builtin_msa_dotp_u_w
+#define __msa_dotp_u_d __builtin_msa_dotp_u_d
+#define __msa_dpadd_s_h __builtin_msa_dpadd_s_h
+#define __msa_dpadd_s_w __builtin_msa_dpadd_s_w
+#define __msa_dpadd_s_d __builtin_msa_dpadd_s_d
+#define __msa_dpadd_u_h __builtin_msa_dpadd_u_h
+#define __msa_dpadd_u_w __builtin_msa_dpadd_u_w
+#define __msa_dpadd_u_d __builtin_msa_dpadd_u_d
+#define __msa_dpsub_s_h __builtin_msa_dpsub_s_h
+#define __msa_dpsub_s_w __builtin_msa_dpsub_s_w
+#define __msa_dpsub_s_d __builtin_msa_dpsub_s_d
+#define __msa_dpsub_u_h __builtin_msa_dpsub_u_h
+#define __msa_dpsub_u_w __builtin_msa_dpsub_u_w
+#define __msa_dpsub_u_d __builtin_msa_dpsub_u_d
+#define __msa_sld_b __builtin_msa_sld_b
+#define __msa_sld_h __builtin_msa_sld_h
+#define __msa_sld_w __builtin_msa_sld_w
+#define __msa_sld_d __builtin_msa_sld_d
+#define __msa_sldi_b __builtin_msa_sldi_b
+#define __msa_sldi_h __builtin_msa_sldi_h
+#define __msa_sldi_w __builtin_msa_sldi_w
+#define __msa_sldi_d __builtin_msa_sldi_d
+#define __msa_splat_b __builtin_msa_splat_b
+#define __msa_splat_h __builtin_msa_splat_h
+#define __msa_splat_w __builtin_msa_splat_w
+#define __msa_splat_d __builtin_msa_splat_d
+#define __msa_splati_b __builtin_msa_splati_b
+#define __msa_splati_h __builtin_msa_splati_h
+#define __msa_splati_w __builtin_msa_splati_w
+#define __msa_splati_d __builtin_msa_splati_d
+#define __msa_pckev_b __builtin_msa_pckev_b
+#define __msa_pckev_h __builtin_msa_pckev_h
+#define __msa_pckev_w __builtin_msa_pckev_w
+#define __msa_pckev_d __builtin_msa_pckev_d
+#define __msa_pckod_b __builtin_msa_pckod_b
+#define __msa_pckod_h __builtin_msa_pckod_h
+#define __msa_pckod_w __builtin_msa_pckod_w
+#define __msa_pckod_d __builtin_msa_pckod_d
+#define __msa_ilvl_b __builtin_msa_ilvl_b
+#define __msa_ilvl_h __builtin_msa_ilvl_h
+#define __msa_ilvl_w __builtin_msa_ilvl_w
+#define __msa_ilvl_d __builtin_msa_ilvl_d
+#define __msa_ilvr_b __builtin_msa_ilvr_b
+#define __msa_ilvr_h __builtin_msa_ilvr_h
+#define __msa_ilvr_w __builtin_msa_ilvr_w
+#define __msa_ilvr_d __builtin_msa_ilvr_d
+#define __msa_ilvev_b __builtin_msa_ilvev_b
+#define __msa_ilvev_h __builtin_msa_ilvev_h
+#define __msa_ilvev_w __builtin_msa_ilvev_w
+#define __msa_ilvev_d __builtin_msa_ilvev_d
+#define __msa_ilvod_b __builtin_msa_ilvod_b
+#define __msa_ilvod_h __builtin_msa_ilvod_h
+#define __msa_ilvod_w __builtin_msa_ilvod_w
+#define __msa_ilvod_d __builtin_msa_ilvod_d
+#define __msa_vshf_b __builtin_msa_vshf_b
+#define __msa_vshf_h __builtin_msa_vshf_h
+#define __msa_vshf_w __builtin_msa_vshf_w
+#define __msa_vshf_d __builtin_msa_vshf_d
+#define __msa_and_v __builtin_msa_and_v
+#define __msa_andi_b __builtin_msa_andi_b
+#define __msa_or_v __builtin_msa_or_v
+#define __msa_ori_b __builtin_msa_ori_b
+#define __msa_nor_v __builtin_msa_nor_v
+#define __msa_nori_b __builtin_msa_nori_b
+#define __msa_xor_v __builtin_msa_xor_v
+#define __msa_xori_b __builtin_msa_xori_b
+#define __msa_bmnz_v __builtin_msa_bmnz_v
+#define __msa_bmnzi_b __builtin_msa_bmnzi_b
+#define __msa_bmz_v __builtin_msa_bmz_v
+#define __msa_bmzi_b __builtin_msa_bmzi_b
+#define __msa_bsel_v __builtin_msa_bsel_v
+#define __msa_bseli_b __builtin_msa_bseli_b
+#define __msa_shf_b __builtin_msa_shf_b
+#define __msa_shf_h __builtin_msa_shf_h
+#define __msa_shf_w __builtin_msa_shf_w
+#define __msa_test_bnz_v __builtin_msa_bnz_v
+#define __msa_test_bz_v __builtin_msa_bz_v
+#define __msa_fill_b __builtin_msa_fill_b
+#define __msa_fill_h __builtin_msa_fill_h
+#define __msa_fill_w __builtin_msa_fill_w
+#define __msa_fill_d __builtin_msa_fill_d
+#define __msa_pcnt_b __builtin_msa_pcnt_b
+#define __msa_pcnt_h __builtin_msa_pcnt_h
+#define __msa_pcnt_w __builtin_msa_pcnt_w
+#define __msa_pcnt_d __builtin_msa_pcnt_d
+#define __msa_nloc_b __builtin_msa_nloc_b
+#define __msa_nloc_h __builtin_msa_nloc_h
+#define __msa_nloc_w __builtin_msa_nloc_w
+#define __msa_nloc_d __builtin_msa_nloc_d
+#define __msa_nlzc_b __builtin_msa_nlzc_b
+#define __msa_nlzc_h __builtin_msa_nlzc_h
+#define __msa_nlzc_w __builtin_msa_nlzc_w
+#define __msa_nlzc_d __builtin_msa_nlzc_d
+#define __msa_copy_s_b __builtin_msa_copy_s_b
+#define __msa_copy_s_h __builtin_msa_copy_s_h
+#define __msa_copy_s_w __builtin_msa_copy_s_w
+#define __msa_copy_s_d __builtin_msa_copy_s_d
+#define __msa_copy_u_b __builtin_msa_copy_u_b
+#define __msa_copy_u_h __builtin_msa_copy_u_h
+#define __msa_copy_u_w __builtin_msa_copy_u_w
+#define __msa_copy_u_d __builtin_msa_copy_u_d
+#define __msa_insert_b __builtin_msa_insert_b
+#define __msa_insert_h __builtin_msa_insert_h
+#define __msa_insert_w __builtin_msa_insert_w
+#define __msa_insert_d __builtin_msa_insert_d
+#define __msa_insve_b __builtin_msa_insve_b
+#define __msa_insve_h __builtin_msa_insve_h
+#define __msa_insve_w __builtin_msa_insve_w
+#define __msa_insve_d __builtin_msa_insve_d
+#define __msa_test_bnz_b __builtin_msa_bnz_b
+#define __msa_test_bnz_h __builtin_msa_bnz_h
+#define __msa_test_bnz_w __builtin_msa_bnz_w
+#define __msa_test_bnz_d __builtin_msa_bnz_d
+#define __msa_test_bz_b __builtin_msa_bz_b
+#define __msa_test_bz_h __builtin_msa_bz_h
+#define __msa_test_bz_w __builtin_msa_bz_w
+#define __msa_test_bz_d __builtin_msa_bz_d
+#define __msa_ldi_b __builtin_msa_ldi_b
+#define __msa_ldi_h __builtin_msa_ldi_h
+#define __msa_ldi_w __builtin_msa_ldi_w
+#define __msa_ldi_d __builtin_msa_ldi_d
+#define __msa_fcaf_w __builtin_msa_fcaf_w
+#define __msa_fcaf_d __builtin_msa_fcaf_d
+#define __msa_fcor_w __builtin_msa_fcor_w
+#define __msa_fcor_d __builtin_msa_fcor_d
+#define __msa_fcun_w __builtin_msa_fcun_w
+#define __msa_fcun_d __builtin_msa_fcun_d
+#define __msa_fcune_w __builtin_msa_fcune_w
+#define __msa_fcune_d __builtin_msa_fcune_d
+#define __msa_fcueq_w __builtin_msa_fcueq_w
+#define __msa_fcueq_d __builtin_msa_fcueq_d
+#define __msa_fceq_w __builtin_msa_fceq_w
+#define __msa_fceq_d __builtin_msa_fceq_d
+#define __msa_fcne_w __builtin_msa_fcne_w
+#define __msa_fcne_d __builtin_msa_fcne_d
+#define __msa_fclt_w __builtin_msa_fclt_w
+#define __msa_fclt_d __builtin_msa_fclt_d
+#define __msa_fcult_w __builtin_msa_fcult_w
+#define __msa_fcult_d __builtin_msa_fcult_d
+#define __msa_fcle_w __builtin_msa_fcle_w
+#define __msa_fcle_d __builtin_msa_fcle_d
+#define __msa_fcule_w __builtin_msa_fcule_w
+#define __msa_fcule_d __builtin_msa_fcule_d
+#define __msa_fsaf_w __builtin_msa_fsaf_w
+#define __msa_fsaf_d __builtin_msa_fsaf_d
+#define __msa_fsor_w __builtin_msa_fsor_w
+#define __msa_fsor_d __builtin_msa_fsor_d
+#define __msa_fsun_w __builtin_msa_fsun_w
+#define __msa_fsun_d __builtin_msa_fsun_d
+#define __msa_fsune_w __builtin_msa_fsune_w
+#define __msa_fsune_d __builtin_msa_fsune_d
+#define __msa_fsueq_w __builtin_msa_fsueq_w
+#define __msa_fsueq_d __builtin_msa_fsueq_d
+#define __msa_fseq_w __builtin_msa_fseq_w
+#define __msa_fseq_d __builtin_msa_fseq_d
+#define __msa_fsne_w __builtin_msa_fsne_w
+#define __msa_fsne_d __builtin_msa_fsne_d
+#define __msa_fslt_w __builtin_msa_fslt_w
+#define __msa_fslt_d __builtin_msa_fslt_d
+#define __msa_fsult_w __builtin_msa_fsult_w
+#define __msa_fsult_d __builtin_msa_fsult_d
+#define __msa_fsle_w __builtin_msa_fsle_w
+#define __msa_fsle_d __builtin_msa_fsle_d
+#define __msa_fsule_w __builtin_msa_fsule_w
+#define __msa_fsule_d __builtin_msa_fsule_d
+#define __msa_fadd_w __builtin_msa_fadd_w
+#define __msa_fadd_d __builtin_msa_fadd_d
+#define __msa_fsub_w __builtin_msa_fsub_w
+#define __msa_fsub_d __builtin_msa_fsub_d
+#define __msa_fmul_w __builtin_msa_fmul_w
+#define __msa_fmul_d __builtin_msa_fmul_d
+#define __msa_fdiv_w __builtin_msa_fdiv_w
+#define __msa_fdiv_d __builtin_msa_fdiv_d
+#define __msa_fmadd_w __builtin_msa_fmadd_w
+#define __msa_fmadd_d __builtin_msa_fmadd_d
+#define __msa_fmsub_w __builtin_msa_fmsub_w
+#define __msa_fmsub_d __builtin_msa_fmsub_d
+#define __msa_fexp2_w __builtin_msa_fexp2_w
+#define __msa_fexp2_d __builtin_msa_fexp2_d
+#define __msa_fexdo_h __builtin_msa_fexdo_h
+#define __msa_fexdo_w __builtin_msa_fexdo_w
+#define __msa_ftq_h __builtin_msa_ftq_h
+#define __msa_ftq_w __builtin_msa_ftq_w
+#define __msa_fmin_w __builtin_msa_fmin_w
+#define __msa_fmin_d __builtin_msa_fmin_d
+#define __msa_fmin_a_w __builtin_msa_fmin_a_w
+#define __msa_fmin_a_d __builtin_msa_fmin_a_d
+#define __msa_fmax_w __builtin_msa_fmax_w
+#define __msa_fmax_d __builtin_msa_fmax_d
+#define __msa_fmax_a_w __builtin_msa_fmax_a_w
+#define __msa_fmax_a_d __builtin_msa_fmax_a_d
+#define __msa_mul_q_h __builtin_msa_mul_q_h
+#define __msa_mul_q_w __builtin_msa_mul_q_w
+#define __msa_mulr_q_h __builtin_msa_mulr_q_h
+#define __msa_mulr_q_w __builtin_msa_mulr_q_w
+#define __msa_madd_q_h __builtin_msa_madd_q_h
+#define __msa_madd_q_w __builtin_msa_madd_q_w
+#define __msa_maddr_q_h __builtin_msa_maddr_q_h
+#define __msa_maddr_q_w __builtin_msa_maddr_q_w
+#define __msa_msub_q_h __builtin_msa_msub_q_h
+#define __msa_msub_q_w __builtin_msa_msub_q_w
+#define __msa_msubr_q_h __builtin_msa_msubr_q_h
+#define __msa_msubr_q_w __builtin_msa_msubr_q_w
+#define __msa_fclass_w __builtin_msa_fclass_w
+#define __msa_fclass_d __builtin_msa_fclass_d
+#define __msa_fsqrt_w __builtin_msa_fsqrt_w
+#define __msa_fsqrt_d __builtin_msa_fsqrt_d
+#define __msa_frcp_w __builtin_msa_frcp_w
+#define __msa_frcp_d __builtin_msa_frcp_d
+#define __msa_frint_w __builtin_msa_frint_w
+#define __msa_frint_d __builtin_msa_frint_d
+#define __msa_frsqrt_w __builtin_msa_frsqrt_w
+#define __msa_frsqrt_d __builtin_msa_frsqrt_d
+#define __msa_flog2_w __builtin_msa_flog2_w
+#define __msa_flog2_d __builtin_msa_flog2_d
+#define __msa_fexupl_w __builtin_msa_fexupl_w
+#define __msa_fexupl_d __builtin_msa_fexupl_d
+#define __msa_fexupr_w __builtin_msa_fexupr_w
+#define __msa_fexupr_d __builtin_msa_fexupr_d
+#define __msa_ffql_w __builtin_msa_ffql_w
+#define __msa_ffql_d __builtin_msa_ffql_d
+#define __msa_ffqr_w __builtin_msa_ffqr_w
+#define __msa_ffqr_d __builtin_msa_ffqr_d
+#define __msa_ftint_s_w __builtin_msa_ftint_s_w
+#define __msa_ftint_s_d __builtin_msa_ftint_s_d
+#define __msa_ftint_u_w __builtin_msa_ftint_u_w
+#define __msa_ftint_u_d __builtin_msa_ftint_u_d
+#define __msa_ftrunc_s_w __builtin_msa_ftrunc_s_w
+#define __msa_ftrunc_s_d __builtin_msa_ftrunc_s_d
+#define __msa_ftrunc_u_w __builtin_msa_ftrunc_u_w
+#define __msa_ftrunc_u_d __builtin_msa_ftrunc_u_d
+#define __msa_ffint_s_w __builtin_msa_ffint_s_w
+#define __msa_ffint_s_d __builtin_msa_ffint_s_d
+#define __msa_ffint_u_w __builtin_msa_ffint_u_w
+#define __msa_ffint_u_d __builtin_msa_ffint_u_d
+#define __msa_cfcmsa __builtin_msa_cfcmsa
+#define __msa_move_v __builtin_msa_move_v
+#define __msa_cast_to_vector_float __builtin_msa_cast_to_vector_float
+#define __msa_cast_to_vector_double __builtin_msa_cast_to_vector_double
+#define __msa_cast_to_scalar_float __builtin_msa_cast_to_scalar_float
+#define __msa_cast_to_scalar_double __builtin_msa_cast_to_scalar_double
 #endif /* defined(__mips_msa) */
 #endif /* _MSA_H */
diff --git a/lib/gcc/mips64el-linux-android/4.9/libgcc.a b/lib/gcc/mips64el-linux-android/4.9/libgcc.a
index bc0b3f6..9edc908 100644
--- a/lib/gcc/mips64el-linux-android/4.9/libgcc.a
+++ b/lib/gcc/mips64el-linux-android/4.9/libgcc.a
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/libgcov.a b/lib/gcc/mips64el-linux-android/4.9/libgcov.a
index 9b5f041..d303b23 100644
--- a/lib/gcc/mips64el-linux-android/4.9/libgcov.a
+++ b/lib/gcc/mips64el-linux-android/4.9/libgcov.a
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbegin.o b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbegin.o
index ebc0041..9903e47 100644
--- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbegin.o
+++ b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbegin.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginS.o b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginS.o
index 3a87973..5cbd675 100644
--- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginS.o
+++ b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginS.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginT.o b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginT.o
index ebc0041..9903e47 100644
--- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginT.o
+++ b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginT.o
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcc.a b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcc.a
index d19f0ae..8ce690f 100644
--- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcc.a
+++ b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcc.a
Binary files differ
diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcov.a b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcov.a
index fb88baa..58d9f56 100644
--- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcov.a
+++ b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcov.a
Binary files differ
diff --git a/lib/libmips64el-unknown-linux-android-sim.a b/lib/libmips64el-unknown-linux-android-sim.a
index 02ad617..6750510 100644
--- a/lib/libmips64el-unknown-linux-android-sim.a
+++ b/lib/libmips64el-unknown-linux-android-sim.a
Binary files differ
diff --git a/libexec/gcc/mips64el-linux-android/4.9/cc1 b/libexec/gcc/mips64el-linux-android/4.9/cc1
index fc91382..f0d7317 100755
--- a/libexec/gcc/mips64el-linux-android/4.9/cc1
+++ b/libexec/gcc/mips64el-linux-android/4.9/cc1
Binary files differ
diff --git a/libexec/gcc/mips64el-linux-android/4.9/cc1plus b/libexec/gcc/mips64el-linux-android/4.9/cc1plus
index eddc4a6..bebb16c 100755
--- a/libexec/gcc/mips64el-linux-android/4.9/cc1plus
+++ b/libexec/gcc/mips64el-linux-android/4.9/cc1plus
Binary files differ
diff --git a/libexec/gcc/mips64el-linux-android/4.9/lto-wrapper b/libexec/gcc/mips64el-linux-android/4.9/lto-wrapper
index a1864fd..27c205f 100755
--- a/libexec/gcc/mips64el-linux-android/4.9/lto-wrapper
+++ b/libexec/gcc/mips64el-linux-android/4.9/lto-wrapper
Binary files differ
diff --git a/libexec/gcc/mips64el-linux-android/4.9/lto1 b/libexec/gcc/mips64el-linux-android/4.9/lto1
index 50c7b07..bbabd62 100755
--- a/libexec/gcc/mips64el-linux-android/4.9/lto1
+++ b/libexec/gcc/mips64el-linux-android/4.9/lto1
Binary files differ
diff --git a/mips64el-linux-android/lib/libatomic.a b/mips64el-linux-android/lib/libatomic.a
index d25a9e7..63e3c90 100644
--- a/mips64el-linux-android/lib/libatomic.a
+++ b/mips64el-linux-android/lib/libatomic.a
Binary files differ
diff --git a/mips64el-linux-android/lib/libgomp.a b/mips64el-linux-android/lib/libgomp.a
index 91011f7..04a3c11 100644
--- a/mips64el-linux-android/lib/libgomp.a
+++ b/mips64el-linux-android/lib/libgomp.a
Binary files differ
diff --git a/mips64el-linux-android/lib64/libatomic.a b/mips64el-linux-android/lib64/libatomic.a
index 1507906..3620b82 100644
--- a/mips64el-linux-android/lib64/libatomic.a
+++ b/mips64el-linux-android/lib64/libatomic.a
Binary files differ
diff --git a/mips64el-linux-android/lib64/libgomp.a b/mips64el-linux-android/lib64/libgomp.a
index 13d547a..5694dc4 100644
--- a/mips64el-linux-android/lib64/libgomp.a
+++ b/mips64el-linux-android/lib64/libgomp.a
Binary files differ
diff --git a/mips64el-linux-android/lib64r2/libatomic.a b/mips64el-linux-android/lib64r2/libatomic.a
index e732239..ac458a9 100644
--- a/mips64el-linux-android/lib64r2/libatomic.a
+++ b/mips64el-linux-android/lib64r2/libatomic.a
Binary files differ
diff --git a/mips64el-linux-android/lib64r2/libgomp.a b/mips64el-linux-android/lib64r2/libgomp.a
index 199d8ae..cf8ea4c 100644
--- a/mips64el-linux-android/lib64r2/libgomp.a
+++ b/mips64el-linux-android/lib64r2/libgomp.a
Binary files differ
diff --git a/mips64el-linux-android/libr2/libatomic.a b/mips64el-linux-android/libr2/libatomic.a
index 3dd1d37..1c5c1d1 100644
--- a/mips64el-linux-android/libr2/libatomic.a
+++ b/mips64el-linux-android/libr2/libatomic.a
Binary files differ
diff --git a/mips64el-linux-android/libr2/libgomp.a b/mips64el-linux-android/libr2/libgomp.a
index 1b9a283..5b21129 100644
--- a/mips64el-linux-android/libr2/libgomp.a
+++ b/mips64el-linux-android/libr2/libgomp.a
Binary files differ
diff --git a/mips64el-linux-android/libr6/libatomic.a b/mips64el-linux-android/libr6/libatomic.a
index 973c82e..570164e 100644
--- a/mips64el-linux-android/libr6/libatomic.a
+++ b/mips64el-linux-android/libr6/libatomic.a
Binary files differ
diff --git a/mips64el-linux-android/libr6/libgomp.a b/mips64el-linux-android/libr6/libgomp.a
index ac6a6ea..1c25c8f 100644
--- a/mips64el-linux-android/libr6/libgomp.a
+++ b/mips64el-linux-android/libr6/libgomp.a
Binary files differ
