This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/41196] New: The use of ARM NEON vshll_n_u8 intrinsic results in compile error on valid code
- From: "siarhei dot siamashka at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 31 Aug 2009 12:14:07 -0000
- Subject: [Bug c/41196] New: The use of ARM NEON vshll_n_u8 intrinsic results in compile error on valid code
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
When using vshll_n_u8 intrinsic, gcc 4.4.1 incorrectly rejects shift operand
having value >= 8, claiming that it is out of range.
When using the following test code
/*************/
#include <arm_neon.h>
uint16x8_t test_vshll_n_u8 (uint8x8_t a)
{
return vshll_n_u8(a, 8);
}
/*************/
Test with gcc 4.4.1:
# gcc -c -O2 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fomit-frame-pointer
test.c
test.c: In function ?test_vshll_n_u8?:
test.c:6: error: constant out of range
It used to work fine with cs2007q3:
# gcc -c -O2 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fomit-frame-pointer
test.c
# objdump -d test.o
test.o: file format elf32-littlearm
Disassembly of section .text:
00000000 <test_vshll_n_u8>:
0: ec410b17 vmov d7, r0, r1
4: f3b26307 vshll.i8 q3, d7, #8
8: ec510b16 vmov r0, r1, d6
c: ec532b17 vmov r2, r3, d7
10: e12fff1e bx lr
--
Summary: The use of ARM NEON vshll_n_u8 intrinsic results in
compile error on valid code
Product: gcc
Version: 4.4.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: siarhei dot siamashka at gmail dot com
GCC build triplet: armv4tl-softfloat-linux-gnueabi
GCC host triplet: armv4tl-softfloat-linux-gnueabi
GCC target triplet: armv4tl-softfloat-linux-gnueabi
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41196