diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-29 15:18:24 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-29 15:18:24 +0000 |
commit | 9c42dd286eb8af0872f07596312c4f3c6ef6af03 (patch) | |
tree | 600dc261e4509a381886cd337eccdaf4e4fccd41 /gcc/doc | |
parent | 630e568cbe4352038bdf71de79bece6068d10929 (diff) | |
download | gcc-9c42dd286eb8af0872f07596312c4f3c6ef6af03.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118143 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/md.texi | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 7b55db73c5e..e5f12c4b0bc 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -3714,6 +3714,18 @@ Convert operand 1 (valid for floating point mode @var{m}) to fixed point mode @var{n} as a signed number rounding to nearest and away from zero and store in operand 0 (which has mode @var{n}). +@cindex @code{lfloor@var{m}@var{n}2} +@item @samp{lfloor@var{m}2} +Convert operand 1 (valid for floating point mode @var{m}) to fixed +point mode @var{n} as a signed number rounding down and store in +operand 0 (which has mode @var{n}). + +@cindex @code{lceil@var{m}@var{n}2} +@item @samp{lceil@var{m}2} +Convert operand 1 (valid for floating point mode @var{m}) to fixed +point mode @var{n} as a signed number rounding up and store in +operand 0 (which has mode @var{n}). + @cindex @code{copysign@var{m}3} instruction pattern @item @samp{copysign@var{m}3} Store a value with the magnitude of operand 1 and the sign of operand |