From afba982585384a264d7a4c2cfe51855103e12533 Mon Sep 17 00:00:00 2001 From: stuart Date: Fri, 7 Apr 2006 17:12:45 +0000 Subject: Radar 4499627 * gcc/config/i386/i386.md (gen_fix_trunc_i386_fisttp): Remove 4209085 peephole. * gcc.apple/4499627.c: New. * gcc.apple/4209085.c: Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@112756 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog.apple-ppc | 6 ++++++ gcc/config/i386/i386.md | 22 --------------------- gcc/testsuite/ChangeLog.apple-ppc | 6 ++++++ gcc/testsuite/gcc.apple/4209085.c | 9 --------- gcc/testsuite/gcc.apple/4499627.c | 40 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 52 insertions(+), 31 deletions(-) delete mode 100644 gcc/testsuite/gcc.apple/4209085.c create mode 100644 gcc/testsuite/gcc.apple/4499627.c diff --git a/gcc/ChangeLog.apple-ppc b/gcc/ChangeLog.apple-ppc index d8dd4b4ee70..e2e45760cdd 100644 --- a/gcc/ChangeLog.apple-ppc +++ b/gcc/ChangeLog.apple-ppc @@ -1,3 +1,9 @@ +2006-04-06 Stuart Hastings + + Radar 4499627 + * gcc/config/i386/i386.md (gen_fix_trunc_i386_fisttp): + Remove 4209085 peephole. + 2006-03-30 Geoffrey Keating Radar 4493694 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index ddedbbc375e..652e91a4c33 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -4314,28 +4314,6 @@ [(set_attr "type" "fisttp") (set_attr "mode" "")]) -;; APPLE LOCAL begin mainline 2005-10-25 4209085 -(define_peephole2 - [(set (match_operand:SSEMODEF 0 "memory_operand" "") - (match_operand:SSEMODEF 1 "register_operand" "")) - (set (match_operand:X87MODEI12 2 "register_operand" "") - (fix:X87MODEI12 (match_dup 0)))] - "TARGET_FISTTP - && peep2_reg_dead_p (1, operands[1]) - && STACK_TOP_P (operands[1])" - [(const_int 0)] -{ - rtx pat; - - operands[0] = adjust_address (operands[0], mode, 0); - pat = gen_fix_trunc_i387_fisttp (operands[0], operands[1]); - XCEXP (XVECEXP (pat, 0, 1), 0, 0) = gen_rtx_REG (XFmode, FIRST_STACK_REG); - emit_insn (pat); - emit_move_insn (operands[2], operands[0]); - DONE; -}) -;; APPLE LOCAL end mainline 2005-10-25 4209085 - (define_split [(set (match_operand:X87MODEI 0 "register_operand" "") (fix:X87MODEI (match_operand 1 "register_operand" ""))) diff --git a/gcc/testsuite/ChangeLog.apple-ppc b/gcc/testsuite/ChangeLog.apple-ppc index 10b9229a330..272a3a85603 100644 --- a/gcc/testsuite/ChangeLog.apple-ppc +++ b/gcc/testsuite/ChangeLog.apple-ppc @@ -1,3 +1,9 @@ +2006-04-06 Stuart Hastings + + Radar 4499627 + * gcc.apple/4499627.c: New. + * gcc.apple/4209085.c: Remove. + 2006-03-28 Mike Stump * asm-array-ref.C, asm-block-1.C: Move from g++.dg to g++.apple. diff --git a/gcc/testsuite/gcc.apple/4209085.c b/gcc/testsuite/gcc.apple/4209085.c deleted file mode 100644 index 89463fe8613..00000000000 --- a/gcc/testsuite/gcc.apple/4209085.c +++ /dev/null @@ -1,9 +0,0 @@ -/* APPLE LOCAL file 4209085 */ -/* Generate fisttp if SSE3 is enabled */ -/* { dg-do compile { target i?86-*-darwin* } } */ -/* { dg-options "-O2 -msse3" } */ -double cos(double); -int main(void) { - return cos(1); -} -/* { dg-final { scan-assembler "fisttp" } } */ diff --git a/gcc/testsuite/gcc.apple/4499627.c b/gcc/testsuite/gcc.apple/4499627.c new file mode 100644 index 00000000000..a04a95de6bb --- /dev/null +++ b/gcc/testsuite/gcc.apple/4499627.c @@ -0,0 +1,40 @@ +/* APPLE LOCAL file 4499627 */ +/* { dg-do run { target i?86-*-darwin* } } */ +/* { dg-options "-Os -msse3" } */ +#include +#include +int __attribute__ ((__noinline__)) +bar (int i) +{ + return i; +} + +void __attribute__ ((__noinline__)) +baz (int i) +{ + if (i != 4) + abort (); +} + +void __attribute__ ((__noinline__)) +foo (float ptm, float sw, float w, float h) { + int tbw, tbh; + float dx, dy, tx; + if (sw == 0.0f) /*label:*/ if (bar(sw) != -13 && (sw == 0.0f)) return ; + dx = (w < 1.0f) ? 1.0f : roundf(w); + dy = (h < 1.0f) ? 1.0f : roundf(h); + tx = dx + w; + tbw = dx; + tbh = dy; + if (tbw > 1 || tbh > 1) + baz (tx); + ptm *= dy; + bar(ptm); +} + +int +main () +{ + foo (0.0, -13.0, 2.0, 2.0); + return 0; +} -- cgit v1.2.3