watery01 / libyuv

Automatically exported from code.google.com/p/libyuv
0 stars 0 forks source link

Compile failed under Android NDK with neon optimization #183

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Compile libyuv with neon optimization for armeabi-v7a
2. Both NDKr7c and NDKr8d
3.

What is the expected output? What do you see instead?

Compile failed
Compile++ thumb  : yuv_static <= row_neon.cc
/tmp/ccfgKsTY.s: Assembler messages:
/tmp/ccfgKsTY.s:4624: Error: bad type in Neon instruction -- `vqshrun.u16 
d0,q0,#8'
/tmp/ccfgKsTY.s:4625: Error: bad type in Neon instruction -- `vqshrun.u16 
d1,q1,#8'
/tmp/ccfgKsTY.s:4626: Error: bad type in Neon instruction -- `vqshrun.u16 
d2,q2,#8'
/tmp/ccfgKsTY.s:4627: Error: bad type in Neon instruction -- `vqshrun.u16 
d3,q3,#8'
make: *** [obj/local/armeabi-v7a/objs/yuv_static/source/row_neon.o] Error 1

What version of the product are you using? On what operating system?

r559
Ubuntu 12.10

Please provide any additional information below.

r394 is fine

Original issue reported on code.google.com by TimonLio on 6 Feb 2013 at 4:09

GoogleCodeExporter commented 9 years ago
a few things changed between r394 and r559 :-)

r560 has this function disabled for now.

Original comment by fbarch...@chromium.org on 6 Feb 2013 at 5:48

GoogleCodeExporter commented 9 years ago
r584 fixes the function using separate shift and narrow.

Original comment by fbarch...@chromium.org on 27 Feb 2013 at 2:25

GoogleCodeExporter commented 9 years ago
Current r627 has a work around - shift and then narrow.
The original code that broke was wrong
vqshrun.u16 d0,q0,#8
'u' means unsigned quantize for a signed source.  But u16 was passed as source, 
not s16, and it is already unsigned.
This should work: vqshrn.u16  d0, q0, #8
'r' for rounding is nice
vqrshrn.u16 d20, q10, #8
'q' is not needed.
vrshrn.u16 d0, q0, #8

Original comment by fbarch...@google.com on 1 Apr 2013 at 8:01

GoogleCodeExporter commented 9 years ago
Fixed in r628

Original comment by fbarch...@google.com on 1 Apr 2013 at 8:05