sse min/max argument re-ordering post i386 sse pattern audit
tbp
tbptbp@gmail.com
Fri Jan 14 00:13:00 GMT 2005
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?
More information about the Gcc
mailing list