public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/63870] New: [Aarch64] [ARM] Errors in use of NEON instrinsics are reported incorrectly
@ 2014-11-14 13:52 cbaylis at gcc dot gnu.org
  2014-11-18 16:21 ` [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics " alan.lawrence at arm dot com
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: cbaylis at gcc dot gnu.org @ 2014-11-14 13:52 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63870

            Bug ID: 63870
           Summary: [Aarch64] [ARM] Errors in use of NEON instrinsics are
                    reported incorrectly
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: cbaylis at gcc dot gnu.org
          Reporter: cbaylis at gcc dot gnu.org
                CC: alan.lawrence at arm dot com
            Target: arm-unknown-linux-gnueabi, aarch64-linux-gnu

Created attachment 33972
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33972&action=edit
Example tests

Several NEON intrinsics have arguments which must be a constant integer in a
fixed range. At present, these constraints are enforced for most intrinsics
during assembly output, or, in some cases, not checked at all.

This can be fixed by using the %K format specifier to the error message. See 
https://gcc.gnu.org/ml/gcc-patches/2014-11/msg01248.html for a proposed patch
and explanation.

Once that patch is applied, it is necessary to rework the expansion of the
builtins so that the constraints are checked during expansion. Some of this
work has been started for Aarch64
(https://gcc.gnu.org/ml/gcc-patches/2014-11/msg00421.html)


Example demonstration of incorrect error messages using attached test cases on
an ARM target. Note that the error message is reported at the end of each
function, rather than the line where the error occurs.

$ arm-unknown-linux-gnueabihf-gcc -c neon_const_range_tests/* -mfpu=neon
neon_const_range_tests/vld1.c: In function ‘f_vld1_lane’:
neon_const_range_tests/vld1.c:10:1: error: lane out of range
 }
 ^
neon_const_range_tests/vld4.c: In function ‘f_vld4_lane’:
neon_const_range_tests/vld4.c:10:1: error: lane out of range
 }
 ^
neon_const_range_tests/vmul_lane.c: In function ‘f_vmul_lane’:
neon_const_range_tests/vmul_lane.c:10:1: error: lane out of range
 }
 ^
neon_const_range_tests/vshl.c: In function ‘f_vshl’:
neon_const_range_tests/vshl.c:10:1: error: constant out of range
 }
 ^
neon_const_range_tests/vshrn_n.c: In function ‘f_vshrn_n’:
neon_const_range_tests/vshrn_n.c:10:1: error: constant out of range
 }
 ^
neon_const_range_tests/vst1.c: In function ‘f_vst1_lane’:
neon_const_range_tests/vst1.c:9:1: error: lane out of range
 }
 ^
neon_const_range_tests/vst4.c: In function ‘f_vst4_lane’:
neon_const_range_tests/vst4.c:9:1: error: lane out of range
 }
 ^
>From gcc-bugs-return-466765-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Nov 14 13:56:36 2014
Return-Path: <gcc-bugs-return-466765-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 8282 invoked by alias); 14 Nov 2014 13:56:36 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 8242 invoked by uid 48); 14 Nov 2014 13:56:32 -0000
From: "redi at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug go/63816] internal compiler error: in expand_expr_addr_expr_1 on gcc version 5.0.0 20141109 (experimental)
Date: Fri, 14 Nov 2014 13:56:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: go
X-Bugzilla-Version: unknown
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: redi at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: ian at airs dot com
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: bug_status cf_reconfirmed_on everconfirmed
Message-ID: <bug-63816-4-2ipOKC7fr5@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-63816-4@http.gcc.gnu.org/bugzilla/>
References: <bug-63816-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-11/txt/msg01237.txt.bz2
Content-length: 527

https://gcc.gnu.org/bugzilla/show_bug.cgi?idc816

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-11-14
     Ever confirmed|0                           |1

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I'm seeing the same ICE on ppc64 with a modified libstdc++


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly
  2014-11-14 13:52 [Bug target/63870] New: [Aarch64] [ARM] Errors in use of NEON instrinsics are reported incorrectly cbaylis at gcc dot gnu.org
@ 2014-11-18 16:21 ` alan.lawrence at arm dot com
  2014-11-20 16:27 ` cbaylis at gcc dot gnu.org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: alan.lawrence at arm dot com @ 2014-11-18 16:21 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63870

--- Comment #1 from Alan Lawrence <alan.lawrence at arm dot com> ---
Same problem on AArch64, although the error messages are a little different
(and varied) - this is following r217440 which provides some improvement in
some cases:

$ /work/alalaw01/sbuild/install/bin/aarch64-none-elf-gcc -c -O2
neon_const_range_tests/*       
In file included from neon_const_range_tests/vld1.c:2:0:
/work/alalaw01/sbuild/install/lib/gcc/aarch64-none-elf/5.0.0/include/arm_neon.h:
In function 'f_vld1_lane':
/work/alalaw01/sbuild/install/lib/gcc/aarch64-none-elf/5.0.0/include/arm_neon.h:658:10:
error: lane -1 out of range 0 - 7
   return __aarch64_vset_lane_any (__vec, __index, __elem, 8);
          ^
In file included from neon_const_range_tests/vld4.c:2:0:
/work/alalaw01/sbuild/install/lib/gcc/aarch64-none-elf/5.0.0/include/arm_neon.h:
In function 'f_vld4_lane':
/work/alalaw01/sbuild/install/lib/gcc/aarch64-none-elf/5.0.0/include/arm_neon.h:18111:1:
error: lane -1 out of range 0 - 15
 __LD4_LANE_FUNC (int8x8x4_t, int8x8_t, int8x16x4_t, int8_t, v16qi, qi, s8,
 ^
/tmp/ccKedD22.s: Assembler messages:
/tmp/ccKedD22.s:9: Error: register element index out of range 0 to 7 at operand
3 -- `mul v0.8h,v0.8h,v1.h[-1]'
/tmp/ccKedD22.s: Assembler messages:
/tmp/ccKedD22.s:10: Error: immediate value out of range 1 to 8 at operand 3 --
`shrn v0.8b,v0.8h,9'


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly
  2014-11-14 13:52 [Bug target/63870] New: [Aarch64] [ARM] Errors in use of NEON instrinsics are reported incorrectly cbaylis at gcc dot gnu.org
  2014-11-18 16:21 ` [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics " alan.lawrence at arm dot com
@ 2014-11-20 16:27 ` cbaylis at gcc dot gnu.org
  2014-11-27 21:06 ` ramana at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: cbaylis at gcc dot gnu.org @ 2014-11-20 16:27 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63870

--- Comment #2 from cbaylis at gcc dot gnu.org ---
Author: cbaylis
Date: Thu Nov 20 16:26:54 2014
New Revision: 217885

URL: https://gcc.gnu.org/viewcvs?rev=217885&root=gcc&view=rev
Log:
        PR target/63870
        * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
        expression to aarch64_simd_lane_bounds.
        * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
        prototype.
        * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
        call to aarch64_simd_lane_bounds.
        (aarch64_get_lanedi): Likewise.
        (aarch64_ld2_lane<mode>): Likewise.
        (aarch64_ld3_lane<mode>): Likewise.
        (aarch64_ld4_lane<mode>): Likewise.
        (aarch64_im_lane_boundsi): Likewise.
        * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
        parameter. Report calling function in error message if exp is non-NULL.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/aarch64/aarch64-builtins.c
    trunk/gcc/config/aarch64/aarch64-protos.h
    trunk/gcc/config/aarch64/aarch64-simd.md
    trunk/gcc/config/aarch64/aarch64.c


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly
  2014-11-14 13:52 [Bug target/63870] New: [Aarch64] [ARM] Errors in use of NEON instrinsics are reported incorrectly cbaylis at gcc dot gnu.org
  2014-11-18 16:21 ` [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics " alan.lawrence at arm dot com
  2014-11-20 16:27 ` cbaylis at gcc dot gnu.org
@ 2014-11-27 21:06 ` ramana at gcc dot gnu.org
  2014-12-09 20:24 ` alalaw01 at gcc dot gnu.org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: ramana at gcc dot gnu.org @ 2014-11-27 21:06 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63870

Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |diagnostic
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-11-27
     Ever confirmed|0                           |1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly
  2014-11-14 13:52 [Bug target/63870] New: [Aarch64] [ARM] Errors in use of NEON instrinsics are reported incorrectly cbaylis at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2014-11-27 21:06 ` ramana at gcc dot gnu.org
@ 2014-12-09 20:24 ` alalaw01 at gcc dot gnu.org
  2014-12-10 11:21 ` alalaw01 at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: alalaw01 at gcc dot gnu.org @ 2014-12-09 20:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63870

--- Comment #3 from alalaw01 at gcc dot gnu.org ---
Author: alalaw01
Date: Tue Dec  9 20:23:36 2014
New Revision: 218536

URL: https://gcc.gnu.org/viewcvs?rev=218536&root=gcc&view=rev
Log:
[AArch64]Remove be_checked_get_lane, check bounds with
__builtin_aarch64_im_lane_boundsi.

gcc/:

    PR target/63870
    * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane):
    Delete.
    * config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>):
    Delete.
    * config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC
    vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi.
    (__aarch64_vget_lane_f32, __aarch64_vget_lane_f64,
    __aarch64_vget_lane_p8, __aarch64_vget_lane_p16,
    __aarch64_vget_lane_s8, __aarch64_vget_lane_s16,
    __aarch64_vget_lane_s32, __aarch64_vget_lane_s64,
    __aarch64_vget_lane_u8, __aarch64_vget_lane_u16,
    __aarch64_vget_lane_u32, __aarch64_vget_lane_u64,
    __aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64,
    __aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16,
    __aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16,
    __aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64,
    __aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16,
    __aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete.
    (__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove
    'q2' argument.
    (__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64,
    __aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16,
    __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16,
    __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64,
    __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16,
    __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64,
    __aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64,
    __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16,
    __aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16,
    __aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64,
    __aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16,
    __aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument
    to __aarch64_vdup_lane_any.
    (vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16,
    vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64,
    vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64,
    vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16,
    vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64,
    vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64,
    vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16,
    vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32,
    vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8,
    vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32,
    vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64,
    vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64,
    vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64,
    vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
    vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
    vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32,
    vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32,
    vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
    vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32,
    vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16,
    vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
    vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32,
    vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16,
    vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32,
    vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64,
    vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64,
    vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32,
    vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16,
    vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16,
    vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use
    __aarch64_vget_lane_any.

gcc/testsuite/:

    * gcc.target/aarch64/simd/vget_lane_f32_indices_1.c: New test.
    * gcc.target/aarch64/simd/vget_lane_f64_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vget_lane_p16_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vget_lane_p8_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vget_lane_s16_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vget_lane_s32_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vget_lane_s64_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vget_lane_s8_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vget_lane_u16_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vget_lane_u32_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vget_lane_u64_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vget_lane_u8_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vgetq_lane_f32_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vgetq_lane_f64_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vgetq_lane_p16_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vgetq_lane_p8_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vgetq_lane_s16_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vgetq_lane_s32_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vgetq_lane_s64_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vgetq_lane_s8_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vgetq_lane_u16_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vgetq_lane_u32_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vgetq_lane_u64_indices_1.c: Likewise.
    * gcc.target/aarch64/simd/vgetq_lane_u8_indices_1.c: Likewise.


Added:
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_f32_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_f64_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_p16_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_p8_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s16_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s32_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s64_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s8_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u16_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u32_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u64_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u8_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_f32_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_f64_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_p16_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_p8_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s16_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s32_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s64_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s8_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u16_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u32_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u64_indices_1.c
    trunk/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u8_indices_1.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/aarch64/aarch64-simd-builtins.def
    trunk/gcc/config/aarch64/aarch64-simd.md
    trunk/gcc/config/aarch64/arm_neon.h
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly
  2014-11-14 13:52 [Bug target/63870] New: [Aarch64] [ARM] Errors in use of NEON instrinsics are reported incorrectly cbaylis at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2014-12-09 20:24 ` alalaw01 at gcc dot gnu.org
@ 2014-12-10 11:21 ` alalaw01 at gcc dot gnu.org
  2015-01-14 15:48 ` ktkachov at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: alalaw01 at gcc dot gnu.org @ 2014-12-10 11:21 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63870

alalaw01 at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |alalaw01 at gcc dot gnu.org

--- Comment #4 from alalaw01 at gcc dot gnu.org ---
(Apologies for out-of-orderness, I missed PRs from logs so adding by hand)

Author: alalaw01
Date: Tue Dec  9 19:52:22 2014
Revision: 218532

https://gcc.gnu.org/viewcvs?rev=218532&root=gcc&view=rev
Log:
[AArch64] Fix ICE on non-constant indices to __builtin_aarch64_im_lane_boundsi

gcc/:

        * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
        TYPES_BINOPV): Delete.
        (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and
        AARCH64_SIMD_PATTERN_START.
        (aarch64_init_simd_builtins): Register
        __builtin_aarch64_im_lane_boundsi; use  AARCH64_SIMD_PATTERN_START.
        (aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use
        AARCH64_SIMD_PATTERN_START.

        * config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete.
        * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete.

        * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New.
        (__aarch64_vget_lane_f64, __aarch64_vget_lane_s64,
        __aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64,
        vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16,
        vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
        vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
        vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
        vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK.

gcc/testsuite/:

        * gcc.target/aarch64/simd/vset_lane_s16_const_1.c: New test.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly
  2014-11-14 13:52 [Bug target/63870] New: [Aarch64] [ARM] Errors in use of NEON instrinsics are reported incorrectly cbaylis at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2014-12-10 11:21 ` alalaw01 at gcc dot gnu.org
@ 2015-01-14 15:48 ` ktkachov at gcc dot gnu.org
  2015-01-14 16:29 ` cbaylis at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2015-01-14 15:48 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63870

ktkachov at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ktkachov at gcc dot gnu.org

--- Comment #5 from ktkachov at gcc dot gnu.org ---
Can this be closed now?


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly
  2014-11-14 13:52 [Bug target/63870] New: [Aarch64] [ARM] Errors in use of NEON instrinsics are reported incorrectly cbaylis at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2015-01-14 15:48 ` ktkachov at gcc dot gnu.org
@ 2015-01-14 16:29 ` cbaylis at gcc dot gnu.org
  2015-01-15 18:36 ` alalaw01 at gcc dot gnu.org
  2015-09-08 19:44 ` alalaw01 at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: cbaylis at gcc dot gnu.org @ 2015-01-14 16:29 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63870

--- Comment #6 from cbaylis at gcc dot gnu.org ---
There is still a lot to do. I have patches in progress for Aarch64 loads and
stores. Aarch64 shifts still need doing, and everything for ARM.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly
  2014-11-14 13:52 [Bug target/63870] New: [Aarch64] [ARM] Errors in use of NEON instrinsics are reported incorrectly cbaylis at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2015-01-14 16:29 ` cbaylis at gcc dot gnu.org
@ 2015-01-15 18:36 ` alalaw01 at gcc dot gnu.org
  2015-09-08 19:44 ` alalaw01 at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: alalaw01 at gcc dot gnu.org @ 2015-01-15 18:36 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63870

--- Comment #7 from alalaw01 at gcc dot gnu.org ---
I'm doing some of the ARM work atm, but not sure how far I'll get before stage
4 starts.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly
  2014-11-14 13:52 [Bug target/63870] New: [Aarch64] [ARM] Errors in use of NEON instrinsics are reported incorrectly cbaylis at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2015-01-15 18:36 ` alalaw01 at gcc dot gnu.org
@ 2015-09-08 19:44 ` alalaw01 at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: alalaw01 at gcc dot gnu.org @ 2015-09-08 19:44 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63870

--- Comment #10 from alalaw01 at gcc dot gnu.org ---
Author: alalaw01
Date: Tue Sep  8 19:43:39 2015
New Revision: 227557

URL: https://gcc.gnu.org/viewcvs?rev=227557&root=gcc&view=rev
Log:
ARM/AArch64 Testsuite] Add float16 lane_f16_indices tests

        PR target/63870
        * gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c: New.
        * gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f16_indices_1.c:
New.
        * gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f16_indices_1.c: New.
        * gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f16_indices_1.c:
New.
        * gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f16_indices_1.c: New.
        * gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f16_indices_1.c:
New.
        * gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c: New.
        * gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f16_indices_1.c:
New.
        * gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f16_indices_1.c: New.
        * gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f16_indices_1.c:
New.
        * gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f16_indices_1.c: New.
        * gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f16_indices_1.c:
New.

Added:
   
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c
   
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f16_indices_1.c
   
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f16_indices_1.c
   
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f16_indices_1.c
   
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f16_indices_1.c
   
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f16_indices_1.c
   
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c
   
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f16_indices_1.c
   
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f16_indices_1.c
   
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f16_indices_1.c
   
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f16_indices_1.c
   
trunk/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f16_indices_1.c
Modified:
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-09-08 19:44 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-14 13:52 [Bug target/63870] New: [Aarch64] [ARM] Errors in use of NEON instrinsics are reported incorrectly cbaylis at gcc dot gnu.org
2014-11-18 16:21 ` [Bug target/63870] [Aarch64] [ARM] Errors in use of NEON intrinsics " alan.lawrence at arm dot com
2014-11-20 16:27 ` cbaylis at gcc dot gnu.org
2014-11-27 21:06 ` ramana at gcc dot gnu.org
2014-12-09 20:24 ` alalaw01 at gcc dot gnu.org
2014-12-10 11:21 ` alalaw01 at gcc dot gnu.org
2015-01-14 15:48 ` ktkachov at gcc dot gnu.org
2015-01-14 16:29 ` cbaylis at gcc dot gnu.org
2015-01-15 18:36 ` alalaw01 at gcc dot gnu.org
2015-09-08 19:44 ` alalaw01 at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).