Hi, I think this is the most relevant group to post this question to,
appologies if I'm wrong and it's OT here though.

I've been banging my head against the wall with the most basic of
problems trying to make my first code using SSE intrinsics compile today.

Using g++ (GCC) 3.3.5 (Debian 1:3.3.5-13) on a P4 with the following
relevant flags showing up in /proc/cpuinfo "sse sse2".

My first thought was that I had some how done something wrong with the
alignment - I'm using template specialization to facilitate this, so I
added the following asserts just before the offending code:

assert(__alignof__(__m128) == __alignof__(this->data[0]));
assert(__alignof__(__m128) == __alignof__(o.data[0]));

It's still giving me segfaults here though, so I've attached the output
of gdb here:

Program received signal SIGSEGV, Segmentation fault.
0x0804a661 in arflib::Array<float>::add (this=0x804f4ac, [EMAIL PROTECTED])
    at arflib_sse2_functions.h:8
8              _mm_add_ps(this->data[i], o.data[i]);
(gdb) print o.data[i]
$1 = {435, 32, 235, 1}
(gdb) print this->data[i]
$2 = {435, 32, 235, 1}
(gdb) print this->data
$3 = (__m128 *) 0x8050978
(gdb) print o.data
$4 = (__m128 *) 0x80509b0

By the way this dump doesn't show it, but i is 0 here, so it exactly
corresponds to the assert statements previously.

Can anyone shed some light on my (presumably very daft) mistake here?

Thanks for any help,
Alan
_______________________________________________
help-gplusplus mailing list
help-gplusplus@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to