--- Comment #6 from gmcgrath at yahoo dot com 2010-03-15 22:11 ---
It seems to work in 4.4.0. The code:
register int16x8_t a asm ("q7");
asm (
"vadd.i32 %q0, %q1, %q2 \n\t"
: "=w" (a)
: "w" (b), "w" (c)
);
yields an expected:
vadd.i32 q7, q8, q7
--- Comment #5 from siarhei dot siamashka at gmail dot com 2010-03-14
12:23 ---
Do you want to force data into specific neon registers because of the
restriction on the neon registers which can be used as scalar operand for
multiplication?
It works for me.
/**/
--- Comment #4 from gmcgrath at yahoo dot com 2010-03-11 21:48 ---
Bug 37188 answers half the problem. It still does not answer why:
register int16x8_t val asm ("q0");
compiles without warning yet does not put "val" into the "q0" NEON register.
--
gmcgrath at yahoo dot com cha
--- Comment #3 from pinskia at gcc dot gnu dot org 2010-03-11 20:32 ---
(In reply to comment #2)
> When documentation is missing the needed bits information, these can be
> typically extracted from the source code.
>
> The only problem is that these constraints can be changed any time w
--- Comment #2 from siarhei dot siamashka at gmail dot com 2010-03-11
20:29 ---
When documentation is missing the needed bits information, these can be
typically extracted from the source code.
The only problem is that these constraints can be changed any time without
notice unless pro
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-10-01 22:21 ---
"r" is a constraint for a general register, you need to use a proper constraint
here. Refer to the architecture specific constraint documentaiton.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41538