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-addr2line b/bin/mips64el-linux-android-addr2line
index 9a6a132..2289141 100755
--- a/bin/mips64el-linux-android-addr2line
+++ b/bin/mips64el-linux-android-addr2line
Binary files differ
diff --git a/bin/mips64el-linux-android-ar b/bin/mips64el-linux-android-ar
index 0d4b354..33c07b8 100755
--- a/bin/mips64el-linux-android-ar
+++ b/bin/mips64el-linux-android-ar
Binary files differ
diff --git a/bin/mips64el-linux-android-as b/bin/mips64el-linux-android-as
index 0d9da36..c456639 100755
--- a/bin/mips64el-linux-android-as
+++ b/bin/mips64el-linux-android-as
Binary files differ
diff --git a/bin/mips64el-linux-android-c++filt b/bin/mips64el-linux-android-c++filt
index afb854c..638c05d 100755
--- a/bin/mips64el-linux-android-c++filt
+++ b/bin/mips64el-linux-android-c++filt
Binary files differ
diff --git a/bin/mips64el-linux-android-cpp b/bin/mips64el-linux-android-cpp
index 134aa5d..7ed92f5 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 29cf491..ee5335a 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 de89017..07ad9e5 100755
--- a/bin/mips64el-linux-android-gcc
+++ b/bin/mips64el-linux-android-gcc
Binary files differ
diff --git a/bin/mips64el-linux-android-gcov b/bin/mips64el-linux-android-gcov
index 9068e14..349e4ee 100755
--- a/bin/mips64el-linux-android-gcov
+++ b/bin/mips64el-linux-android-gcov
Binary files differ
diff --git a/bin/mips64el-linux-android-gcov-tool b/bin/mips64el-linux-android-gcov-tool
index 41491ac..30b3940 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 9d18db4..307b41b 100755
--- a/bin/mips64el-linux-android-gdb
+++ b/bin/mips64el-linux-android-gdb
Binary files differ
diff --git a/bin/mips64el-linux-android-gprof b/bin/mips64el-linux-android-gprof
index 6d68a0f..99342de 100755
--- a/bin/mips64el-linux-android-gprof
+++ b/bin/mips64el-linux-android-gprof
Binary files differ
diff --git a/bin/mips64el-linux-android-ld.bfd b/bin/mips64el-linux-android-ld.bfd
index 7f10ae6..0a5a989 100755
--- a/bin/mips64el-linux-android-ld.bfd
+++ b/bin/mips64el-linux-android-ld.bfd
Binary files differ
diff --git a/bin/mips64el-linux-android-nm b/bin/mips64el-linux-android-nm
index afc56f4..d8a3cc6 100755
--- a/bin/mips64el-linux-android-nm
+++ b/bin/mips64el-linux-android-nm
Binary files differ
diff --git a/bin/mips64el-linux-android-objcopy b/bin/mips64el-linux-android-objcopy
index bf52895..3a979b3 100755
--- a/bin/mips64el-linux-android-objcopy
+++ b/bin/mips64el-linux-android-objcopy
Binary files differ
diff --git a/bin/mips64el-linux-android-objdump b/bin/mips64el-linux-android-objdump
index e07752f..2c358d2 100755
--- a/bin/mips64el-linux-android-objdump
+++ b/bin/mips64el-linux-android-objdump
Binary files differ
diff --git a/bin/mips64el-linux-android-ranlib b/bin/mips64el-linux-android-ranlib
index c5378d4..974bbd4 100755
--- a/bin/mips64el-linux-android-ranlib
+++ b/bin/mips64el-linux-android-ranlib
Binary files differ
diff --git a/bin/mips64el-linux-android-readelf b/bin/mips64el-linux-android-readelf
index 4199442..27d4b2f 100755
--- a/bin/mips64el-linux-android-readelf
+++ b/bin/mips64el-linux-android-readelf
Binary files differ
diff --git a/bin/mips64el-linux-android-size b/bin/mips64el-linux-android-size
index bd9ca82..ae6ae23 100755
--- a/bin/mips64el-linux-android-size
+++ b/bin/mips64el-linux-android-size
Binary files differ
diff --git a/bin/mips64el-linux-android-strings b/bin/mips64el-linux-android-strings
index 484f570..450d9bf 100755
--- a/bin/mips64el-linux-android-strings
+++ b/bin/mips64el-linux-android-strings
Binary files differ
diff --git a/bin/mips64el-linux-android-strip b/bin/mips64el-linux-android-strip
index 34be8af..2232691 100755
--- a/bin/mips64el-linux-android-strip
+++ b/bin/mips64el-linux-android-strip
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 2d2e403..1204e56 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 ea33270..8769a98 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 a14f434..8ce7799 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 319a1e4..35f1ae1 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 60a145e..7e7312e 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 b314894..bfe2269 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 5b9abd0..9457a0b 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 6bda7fc..856db57 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 49645cb..abef105 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 66e2075..ed310dc 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 3661692..1c6c94f 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 abdbf39..7e841ff 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 85f0f0e..f421870 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/collect2 b/libexec/gcc/mips64el-linux-android/4.9/collect2
index d5570d7..3010f58 100755
--- a/libexec/gcc/mips64el-linux-android/4.9/collect2
+++ b/libexec/gcc/mips64el-linux-android/4.9/collect2
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 e03705f..6248e17 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 940f73a..9b8af59 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/libexec/gcc/mips64el-linux-android/4.9/plugin/gengtype b/libexec/gcc/mips64el-linux-android/4.9/plugin/gengtype
index b1b6eff..eed1dcb 100755
--- a/libexec/gcc/mips64el-linux-android/4.9/plugin/gengtype
+++ b/libexec/gcc/mips64el-linux-android/4.9/plugin/gengtype
Binary files differ
diff --git a/mips64el-linux-android/lib/libatomic.a b/mips64el-linux-android/lib/libatomic.a
index 8905039..318e7ce 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 51f2e64..f5bd33a 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 5a0f7e3..59aeec6 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 43fa955..3d17e04 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 29df411..9c3ac6c 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 9595472..b00ed1e 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 2b77ce1..6fcf3c9 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 5f7d108..8b00e80 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 58e7063..79ab53c 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 ae6314c..3588e2d 100644
--- a/mips64el-linux-android/libr6/libgomp.a
+++ b/mips64el-linux-android/libr6/libgomp.a
Binary files differ
