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: Vector Comparison patch


Here is a cleaned-up patch without the hook. Mostly it works in a way
we discussed.

So I think it is a right time to do something about vcond patterns,
which would allow me to get rid of conversions that I need to put all
over the code.

Also at the moment the patch breaks lto frontend with a simple example:
#define vector(elcount, type)  \
__attribute__((vector_size((elcount)*sizeof(type)))) type

int main (int argc, char *argv[]) {
    vector (4, float) f0;
    vector (4, float) f1;

    f0 =  f1 != f0
          ? (vector (4, float)){-1,-1,-1,-1} : (vector (4, float)){0,0,0,0};

    return (int)f0[argc];
}

test-lto.c:8:14: internal compiler error: in convert, at lto/lto-lang.c:1244

I looked into the file, the conversion function is defined as
gcc_unreachable (). I am not very familiar with lto, so I don't really
know what is the right way to treat the conversions.

And I seriously need help with backend patterns.


Thanks,
Artem.

Attachment: vector-compare-vcond-6.diff
Description: Text document


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