This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
sse min/max argument re-ordering post i386 sse pattern audit
- From: tbp <tbptbp at gmail dot com>
- To: gcc at gcc dot gnu dot org
- Date: Fri, 14 Jan 2005 00:51:02 +0100
- Subject: sse min/max argument re-ordering post i386 sse pattern audit
- Reply-to: tbp <tbptbp at gmail dot com>
Hello again,
Gave the cvs version a try to see if the dust has settled and was
delighted by various improvements in the SSE code gen (even if the
final binary is a tad slower, it works :).
On the other hand i have a NaN filtering sequence,
const __m128
filtered_l1a = _mm_min_ps(l1, plus_inf),
filtered_l2a = _mm_min_ps(l2, plus_inf),
filtered_l1b = _mm_max_ps(l1, minus_inf),
filtered_l2b = _mm_max_ps(l2, minus_inf);
that got miscompiled into (+/- inf in xmm3/xmm2):
4016b4: minps %xmm3,%xmm1
4016b7: minps %xmm7,%xmm3
...
4016c0: maxps %xmm2,%xmm7
4016c3: maxps %xmm2,%xmm6
To my best knowledge it didn't happen before.
Is that a known defect, should i wait a bit more to use the cvs
version? Bug report?