This is the mail archive of the gcc-patches@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]

Re: broken arithmetic operations on vectors (c and c++)


On Mon, Jun 13, 2005 at 10:40:50AM -0700, Richard Henderson wrote:
> On Mon, Jun 13, 2005 at 09:25:14AM -0400, Aldy Hernandez wrote:
> > In keeping with the C front end, I think we should allow arithmetic
> > between same type vectors with different signs.  I tried to use comptypes,
> > and a few other functions to no avail.  The easiest thing I could think
> > of was using the mode.  Is this correct?
> 
> No.  If a type isn't supported in hw, it'll be an integer or BLKmode.

This code

	  if (TYPE_MODE (TREE_TYPE (type0)) != TYPE_MODE (TREE_TYPE (type1)))

is looking at the sub-units, so it is irregardless of what type the
FE turned it into.

In my example, if the type isn't supported in HW, at this point we have:

<vector_type 0xf7d9a4b0
    type <integer_type 0xf7cf5528 int public SI
        size <integer_cst 0xf7cee4a0 constant invariant 32>
        unit size <integer_cst 0xf7cee160 constant invariant 4>
        align 32 symtab 0 alias set -1 precision 32 min ......
        pointer_to_this <pointer_type 0xf7d08000>>
    TI

TImode, but I'm looking at the integer_type.

Am I missing something?

Aldy


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