re PR target/30315 (optimize unsigned-add overflow test on x86 to use cpu flags from...
authorRask Ingemann Lambertsen <rask@sygehus.dk>
Tue, 14 Aug 2007 14:39:24 +0000 (16:39 +0200)
committerRask Ingemann Lambertsen <rask@gcc.gnu.org>
Tue, 14 Aug 2007 14:39:24 +0000 (14:39 +0000)
commitd39d658dbe7c5682da000db60d4ea6209ce6ab66
tree22db592c1799b6343afa09bfa8ece2e1faa8d6d9
parent9a251aa11803ceed2c52286f2b649b4d53a05dba
re PR target/30315 (optimize unsigned-add overflow test on x86 to use cpu flags from addl)

PR target/30315
* config/i386/i386.h (CANONICALIZE_COMPARISON): New.
* config/i386/i386.md (plusminus)(addsub)(SWI): New.
(*<addsub><mode>3_cc_overflow): New.
(*add<mode>3_cconly_overflow): New.
(*sub<mode>3_cconly_overflow): New.
(*<addsub>si3_zext_cc_overflow): New.
* config/i386/predicates.md (fcmov_comparison_operator): Accept
CCCmode for LTU, GTU, LEU and GEU.
(ix86_comparison_operator): Likewise.
(ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
* gcc/config/i386/i386.c (put_condition_code): Support CCCmode.
(ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
or MINUS expressions.

testsuite/
PR target/30315
* gcc.target/i386/pr30315.c: New.

From-SVN: r127481
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.md
gcc/config/i386/predicates.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr30315.c [new file with mode: 0644]