diff options
| author | Roger Sayle <sayle@gcc.gnu.org> | 2004-10-09 19:27:55 +0000 |
|---|---|---|
| committer | Roger Sayle <sayle@gcc.gnu.org> | 2004-10-09 19:27:55 +0000 |
| commit | fc7ca5fd397370a7c606e631b399e43b22397ef9 (patch) | |
| tree | 96aa90127b4a4b4bb4eebac21fbf671df91a35bb /gcc/doc | |
| parent | 35ed0a936a8269de89d1bc62ff63fb725a919b16 (diff) | |
| download | gcc-fc7ca5fd397370a7c606e631b399e43b22397ef9.zip gcc-fc7ca5fd397370a7c606e631b399e43b22397ef9.tar.gz gcc-fc7ca5fd397370a7c606e631b399e43b22397ef9.tar.bz2 | |
[multiple changes]
2004-10-09 Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/17853
* simplify-rtx.c (simplify_relational_operation): Correct comment.
Reorganize handling of comparison operations with floating point
results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
Likewise, introduce support for comparison operations with vector
result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
* doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
* doc/tm.texi: Likewise.
2004-10-09 Stuart Hastings <stuart@apple.com>
Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/17853
* gcc.dg/i386-mmx-5.c: New testcase.
From-SVN: r88826
Diffstat (limited to 'gcc/doc')
| -rw-r--r-- | gcc/doc/rtl.texi | 7 | ||||
| -rw-r--r-- | gcc/doc/tm.texi | 14 |
2 files changed, 18 insertions, 3 deletions
diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi index 113dc147..3a72c16 100644 --- a/gcc/doc/rtl.texi +++ b/gcc/doc/rtl.texi @@ -2028,10 +2028,13 @@ Comparison operators test a relation on two operands and are considered to represent a machine-dependent nonzero value described by, but not necessarily equal to, @code{STORE_FLAG_VALUE} (@pxref{Misc}) if the relation holds, or zero if it does not, for comparison operators -whose results have a `MODE_INT' mode, and +whose results have a `MODE_INT' mode, @code{FLOAT_STORE_FLAG_VALUE} (@pxref{Misc}) if the relation holds, or zero if it does not, for comparison operators that return floating-point -values. The mode of the comparison operation is independent of the mode +values, and a vector of either @code{VECTOR_STORE_FLAG_VALUE} (@pxref{Misc}) +if the relation holds, or of zeros if it does not, for comparison operators +that return vector results. +The mode of the comparison operation is independent of the mode of the data being compared. If the comparison operation is being tested (e.g., the first operand of an @code{if_then_else}), the mode must be @code{VOIDmode}. diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 71c72c8..69f60c1 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -8920,11 +8920,23 @@ instructions, or if the value generated by these instructions is 1. @defmac FLOAT_STORE_FLAG_VALUE (@var{mode}) A C expression that gives a nonzero @code{REAL_VALUE_TYPE} value that is returned when comparison operators with floating-point results are true. -Define this macro on machine that have comparison operations that return +Define this macro on machines that have comparison operations that return floating-point values. If there are no such operations, do not define this macro. @end defmac +@defmac VECTOR_STORE_FLAG_VALUE (@var{mode}) +A C expression that gives a rtx representing the non-zero true element +for vector comparisons. The returned rtx should be valid for the inner +mode of @var{mode} which is guaranteed to be a vector mode. Define +this macro on machines that have vector comparison operations that +return a vector result. If there are no such operations, do not define +this macro. Typically, this macro is defined as @code{const1_rtx} or +@code{constm1_rtx}. This macro may return @code{NULL_RTX} to prevent +the compiler optimizing such vector comparison operations for the +given mode. +@end defmac + @defmac CLZ_DEFINED_VALUE_AT_ZERO (@var{mode}, @var{value}) @defmacx CTZ_DEFINED_VALUE_AT_ZERO (@var{mode}, @var{value}) A C expression that evaluates to true if the architecture defines a value |
