This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, Here is the updated patch. H.J. --- 2008-05-05 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.md (sat_plusminus): New. (plusminus_insn): Likewise. (plusminus_mnemonic): Likewise. (addsub): Removed. (*<addsub><mode>3_cc_overflow): Renamed to ... (*<plusminus_insn><mode>3_cc_overflow): This. (*<addsub>si3_zext_cc_overflow): Renamed to ... (*<plusminus_insn>si3_zext_cc_overflow): This. * gcc/config/i386/sse.md (<addsub><mode>3): Renamed to ... (<plusminus_insn><mode>3): This. (*<addsub><mode>3): Renamed to ... (*<plusminus_insn><mode>3): This. (<sse>_vm<addsub><mode>3): Renamed to ... (<sse>_vm<plusminus_insn><mode>3): This. (sse3_h<addsub>v4sf3): Renamed to ... (sse3_h<plusminus_insn>v4sf3): This. (sse3_h<addsub>v2df3): Renamed to ... (sse3_h<plusminus_insn>v2df3): This. (<plusminus_insn><mode>3): New. (*<plusminus_insn><mode>3): Likewise. (sse2_<plusminus_insn><mode>3): Likewise. (add<mode>): Removed. (*add<mode>3): Likewise. (sse2_ssadd<mode>3): Likewise. (sse2_usadd<mode>3): Likewise. (sub<mode>3): Likewise. (*sub<mode>3): Likewise. (sse2_sssub<mode>3): Likewise. (sse2_ussub<mode>3): Likewise. On Mon, May 5, 2008 at 12:12 PM, Uros Bizjak <ubizjak@gmail.com> wrote: > H.J. Lu wrote: > > > Hi, > > > > This patch macroizes SSE add/sub patterns. I am testing it > > on Linux/ia32 and Linux/Intel64. Ok for trunk if there are > > no regressions? > > > > > > Please see comments through the code. I think that we should extend > existing code attributes to cover introduced sse_plusminus code iterator. > Also, since this iterator can be used in mmx.md we should (IMO) add this > iterator to i386.md, perhaps named sat_plusminus for "saturating" (sp?) > operation. > > > > > > Thanks. > > > > > > H.J. > > --- > > 2008-05-05 H.J. Lu <hongjiu.lu@intel.com> > > > > * gcc/config/i386/sse.md (sse_plusminus): New. > > (sse_plusminus_insn): Likewise. > > (sse_plusminus_mnemonic): Likewise. > > (sse_comm): Likewise. > > (<addsub><mode>3): Likewise. > > (*<addsub><mode>3): Likewise. > > (sse2_<sse_plusminus_insn><mode>3): Likewise. > > (add<mode>): Removed. > > (*add<mode>3): Likewise. > > (sse2_ssadd<mode>3): Likewise. > > (sse2_usadd<mode>3): Likewise. > > (sub<mode>3): Likewise. > > (*sub<mode>3): Likewise. > > (sse2_sssub<mode>3): Likewise. > > (sse2_ussub<mode>3): Likewise. > > ------------------------------------------------------------------------ > > > > Index: gcc/config/i386/sse.md > > =================================================================== > > --- gcc/config/i386/sse.md (revision 2431) > > +++ gcc/config/i386/sse.md (working copy) > > @@ -18,6 +18,21 @@ > > ;; along with GCC; see the file COPYING3. If not see > > ;; <http://www.gnu.org/licenses/>. > > +(define_code_iterator sse_plusminus [ss_plus us_plus ss_minus us_minus]) > > + > > +;; Base name for define_insn. > > +(define_code_attr sse_plusminus_insn > > + [(ss_plus "ssadd") (us_plus "usadd") > > + (ss_minus "sssub") (us_minus "ussub")]) > > > > > > We can perhaps rename expander names to fit extended addsub code attribute > (see below). > > > > + > > +;; Base name for insn mnemonic. > > +(define_code_attr sse_plusminus_mnemonic > > + [(ss_plus "adds") (us_plus "addus") > > + (ss_minus "subs") (us_minus "subus")]) > > > > > > The attribute above can be merged with existing addsub code attribute in > i386.md. > > > + > > +;; Mark SSE commutative operators as such in constraints. > > +(define_code_attr sse_comm [(ss_plus "%") (us_plus "%") > > + (ss_minus "") (us_minus "")]) > > > > > > This one can be merged with existing comm code attribute in i386.md (please > note, that there is no need for code attribute to cover exactly the range of > relevant code iterator. In the case above, one code iterator "comm" can > cover plusminunus as well as sse_plusminus code iterators. The same goes for > extended addsub. > > Thanks, > Uros. >
Attachment:
add.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |