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]

TImode ?inhibited? in main 3.1 branch


hi folks,
sure I'm missing something, but I'm wondering why gcc/gcc/c-common.c has
this kind of conditionals:

#if HOST_BITS_PER_WIDE_INT >= 64
  if (mode == TYPE_MODE (intTI_type_node))
    return unsignedp ? unsigned_intTI_type_node : intTI_type_node;
#endif

it ends up being excluded in my build on PIII, so that I can't use

typedef int __m128 __attribute__ ((mode (TI)));
...
  register __v4sf a,b,c;
  register __v4si d;
  __m128 e,f,g;
...
  g = __builtin_ia32_andps((__m128)d,(__m128)a);
...

bacause bitwise SSE stuff is marked with TImode args:

(define_insn "*sse_andti3_sf_1"
  [(set (subreg:TI (match_operand:SF 0 "register_operand" "=x") 0)
        (and:TI (subreg:TI (match_operand:SF 1 "register_operand" "%0") 0)
		(subreg:TI (match_operand:SF 2 "register_operand" "x")
0)))]
  "TARGET_SSE"
  "andps\t{%2, %0|%0, %2}"
  [(set_attr "type" "sse")])


so the point is, PIII is somewhat exceptional in having this 128 bit
stuff even being 32bit, but ... as it is, SSE support seems (very
cautious :) partly unusable..

ciao

-- 
______/ Rossetti Davide   INFN - Roma I - APE group \______________
 pho +390649914412     web: http://apegate.roma1.infn.it/~rossetti
 fax +390649914423   email: davide.rossetti@roma1.infn.it


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