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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
            Summary|The vcopyq_laneq_u64        |[14/15/16 Regression]
                   |intrinsic unexpectedly      |vcopyq_laneq_u64
                   |modifies the value of its   |miscompiled due to
                   |second argument(Aarch64).   |incorrect conversion of
                   |                            |BFR/BI for big-endian since
                   |                            |r14-3381
     Ever confirmed|0                           |1
   Target Milestone|---                         |14.4
          Component|target                      |tree-optimization
   Last reconfirmed|                            |2026-02-03
             Target|aarch64                     |aarch64_be

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
testcase:
```
#include "arm_neon.h"

#define BUILD_TEST(TYPE1, TYPE2, Q1, Q2, SUFFIX, INDEX1, INDEX2)        \
TYPE1 __attribute__((noinline,noclone))                                 \
test_copy##Q1##_lane##Q2##_##SUFFIX (TYPE1 a, TYPE2 b)                  \
{                                                                       \
  return vcopy##Q1##_lane##Q2##_##SUFFIX (a, INDEX1, b, INDEX2);        \
}


BUILD_TEST (float64x2_t, float64x2_t, q, q, f64, 1, 1)
BUILD_TEST (int64x2_t,   int64x2_t,   q,  q, s64, 1, 1)
BUILD_TEST (uint64x2_t,  uint64x2_t,  q, q, u64, 1, 1)
/* { dg-final { scan-assembler-times "ins\\tv0.d\\\[1\\\], v1.d\\\[1\\\]" 3 } }
*/

```

r14-3381-g27de9aa152141e .
The issue is BFR indecies are "swapped".

Reply via email to