genopinit.c (optabs): Change lfloor_optab and lceil_optab to conversion optabs.
authorRichard Guenther <rguenther@suse.de>
Sun, 29 Oct 2006 15:18:24 +0000 (15:18 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Sun, 29 Oct 2006 15:18:24 +0000 (15:18 +0000)
commitc3a4177fe14190fda53e6a31236dcb8e23cf28f8
tree600dc261e4509a381886cd337eccdaf4e4fccd41
parent98c58757e67b0d47104439184673d3d468fde83c
genopinit.c (optabs): Change lfloor_optab and lceil_optab to conversion optabs.

2006-10-29  Richard Guenther  <rguenther@suse.de>

* genopinit.c (optabs): Change lfloor_optab and lceil_optab
to conversion optabs.
* optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
as conversion optab.
* optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
(enum convert_optab_index): Add COI_lfloor and COI_lceil.
(lfloor_optab, lceil_optab): Adjust defines.
* builtins.c (expand_builtin_int_roundingfn): Adjust for
lfloor and lceil optabs now being conversion optabs.
* config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
* config/i386/i386.c (ix86_expand_sse_compare_and_jump):
New static helper function.
(ix86_expand_lfloorceil): New function to expand lfloor and
lceil inline.
* config/i386/i386.md (lfloor<mode>2): Split into ...
(lfloorxf<mode>2): ... x87 variant
(lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
using ix86_expand_lfloorceil.
(lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
Likewise.
* doc/md.texi (lfloorMN, lceilMN): Document.

* gcc.target/i386/math-torture/lfloor.c: New testcase.
* gcc.target/i386/math-torture/lceil.c: Likewise.

From-SVN: r118143
12 files changed:
gcc/ChangeLog
gcc/builtins.c
gcc/config/i386/i386-protos.h
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/doc/md.texi
gcc/genopinit.c
gcc/optabs.c
gcc/optabs.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/math-torture/lceil.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/math-torture/lfloor.c [new file with mode: 0644]