Hey guys, The documentation states that the return types on the x86 __builtin_ia32_cmp*s builtins are integer vectors. This is inconsistent with the source. These builtins actually return floating point vectors. Here is a small patch to update the documentation.
-Cameron
Index: doc/extend.texi =================================================================== --- doc/extend.texi (revision 200083) +++ doc/extend.texi (working copy) @@ -9948,26 +9948,26 @@ v4sf __builtin_ia32_subss (v4sf, v4sf) v4sf __builtin_ia32_mulss (v4sf, v4sf) v4sf __builtin_ia32_divss (v4sf, v4sf) -v4si __builtin_ia32_cmpeqps (v4sf, v4sf) -v4si __builtin_ia32_cmpltps (v4sf, v4sf) -v4si __builtin_ia32_cmpleps (v4sf, v4sf) -v4si __builtin_ia32_cmpgtps (v4sf, v4sf) -v4si __builtin_ia32_cmpgeps (v4sf, v4sf) -v4si __builtin_ia32_cmpunordps (v4sf, v4sf) -v4si __builtin_ia32_cmpneqps (v4sf, v4sf) -v4si __builtin_ia32_cmpnltps (v4sf, v4sf) -v4si __builtin_ia32_cmpnleps (v4sf, v4sf) -v4si __builtin_ia32_cmpngtps (v4sf, v4sf) -v4si __builtin_ia32_cmpngeps (v4sf, v4sf) -v4si __builtin_ia32_cmpordps (v4sf, v4sf) -v4si __builtin_ia32_cmpeqss (v4sf, v4sf) -v4si __builtin_ia32_cmpltss (v4sf, v4sf) -v4si __builtin_ia32_cmpless (v4sf, v4sf) -v4si __builtin_ia32_cmpunordss (v4sf, v4sf) -v4si __builtin_ia32_cmpneqss (v4sf, v4sf) -v4si __builtin_ia32_cmpnlts (v4sf, v4sf) -v4si __builtin_ia32_cmpnless (v4sf, v4sf) -v4si __builtin_ia32_cmpordss (v4sf, v4sf) +v4sf __builtin_ia32_cmpeqps (v4sf, v4sf) +v4sf __builtin_ia32_cmpltps (v4sf, v4sf) +v4sf __builtin_ia32_cmpleps (v4sf, v4sf) +v4sf __builtin_ia32_cmpgtps (v4sf, v4sf) +v4sf __builtin_ia32_cmpgeps (v4sf, v4sf) +v4sf __builtin_ia32_cmpunordps (v4sf, v4sf) +v4sf __builtin_ia32_cmpneqps (v4sf, v4sf) +v4sf __builtin_ia32_cmpnltps (v4sf, v4sf) +v4sf __builtin_ia32_cmpnleps (v4sf, v4sf) +v4sf __builtin_ia32_cmpngtps (v4sf, v4sf) +v4sf __builtin_ia32_cmpngeps (v4sf, v4sf) +v4sf __builtin_ia32_cmpordps (v4sf, v4sf) +v4sf __builtin_ia32_cmpeqss (v4sf, v4sf) +v4sf __builtin_ia32_cmpltss (v4sf, v4sf) +v4sf __builtin_ia32_cmpless (v4sf, v4sf) +v4sf __builtin_ia32_cmpunordss (v4sf, v4sf) +v4sf __builtin_ia32_cmpneqss (v4sf, v4sf) +v4sf __builtin_ia32_cmpnlts (v4sf, v4sf) +v4sf __builtin_ia32_cmpnless (v4sf, v4sf) +v4sf __builtin_ia32_cmpordss (v4sf, v4sf) v4sf __builtin_ia32_maxps (v4sf, v4sf) v4sf __builtin_ia32_maxss (v4sf, v4sf) v4sf __builtin_ia32_minps (v4sf, v4sf)