This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

sse min/max argument re-ordering post i386 sse pattern audit


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?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]