Related articles |
---|
GCC 3.2.2 mmx compiler issue and question imiranda@not_unwanted_crap.spectel.ie (Nacmir) (2003-08-23) |
From: | "Nacmir" <imiranda@not_unwanted_crap.spectel.ie> |
Newsgroups: | comp.compilers |
Date: | 23 Aug 2003 23:18:57 -0400 |
Organization: | Compilers Central |
Keywords: | GCC, code, question |
Posted-Date: | 23 Aug 2003 23:18:57 EDT |
Hi,
I am using the intrinsic instructions on gcc 3.2.2 to use the MMX
registers and instructions, I seem to have an issue when compiling here isa
simple bit of code I did to test this:
__m64 a,b,c;
a = _mm_set_pi16(1, -1, 5, -20);
b = _mm_set_pi16(5, 8, 5, -20);
c = _mm_add_pi16 (a,b);
Everything untill here is fine to move 4 shorts into a 64bit mmx
register or vector. and the add seems to compile fine, but my problem is to
get those back onto 4 short variables again.
I try to use the intrinsic static "__inline int _mm_cvtsi64_si32 (__m64
__i)"
To get the lower 32 bits into an integer variable, but it seems to crash
the compiler, here is the error.
[root@embedded0002 dtmfData]# make
g++ -O3 -mmmx -c -o dtmf_detect.o dtmf_detect.cpp
dtmf_detect.cpp: In constructor `dtmfDetect::dtmfDetect()':
dtmf_detect.cpp:202: Internal compiler error in find_reloads_toplev, at
reload.c:4439
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://bugzilla.redhat.com/bugzilla/> for instructions.
make: *** [dtmf_detect.o] Error 1
[root@embedded0002 dtmfData]#
Would anyone be able to help on how to get the 4 short variables on the
mmx register c back to 4
variables as efficiently as possible?.
Thanks in advance.
Nacmir
Return to the
comp.compilers page.
Search the
comp.compilers archives again.