re PR target/17390 (missing floating point compare optimization)
authorUros Bizjak <ubizjak@gmail.com>
Thu, 23 Aug 2007 14:23:40 +0000 (16:23 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Thu, 23 Aug 2007 14:23:40 +0000 (16:23 +0200)
commit1406ee9086b171a7189fe0c9758727ca5c8c5fe4
tree9f9f17da59f58dce8b45052dae9dfe07e200a1c8
parent9f7b7ba4c4087874da78ad591eaf13fa99ee1c31
re PR target/17390 (missing floating point compare optimization)

PR target/17390
* config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
fake fcomi i387 instruction for !TARGET_CMOVE.
(ix86_expand_branch): Expand natural sequence with one jump for
all targets, not only TARGET_CMOVE.
* config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
pattern to implement fake fcomi sequence.  Split instruction after
reload to correct compare sequences.
(*cmpfp_xf_cc): Ditto.
(*cmpfp_<mode>_cc): Ditto.
(*cmpfp_u_cc): Ditto.
(*cmpfp_<mode>_cc): Ditto.

testsuite/ChangeLog:

PR target/17390
* gcc.target/i386/pr17390.c: New test.

From-SVN: r127742
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr17390.c [new file with mode: 0644]