Patchwork [AArch64] Fix name of macros called in the vdup_lane Neon intrinsics

login
register
mail settings
Submitter James Greenhalgh
Date Aug. 12, 2013, 12:58 p.m.
Message ID <1376312314-9812-1-git-send-email-james.greenhalgh@arm.com>
Download mbox | patch
Permalink /patch/266521/
State New
Headers show

Comments

James Greenhalgh - Aug. 12, 2013, 12:58 p.m.
Ugh. Typos in arm_neon.h macro names mean that scalar intrinsics end
up calling macros which don't exist.

So wherever I have written vget_laneq I should have written
vgetq_lane.

This gets fixed by:
http://gcc.gnu.org/ml/gcc-patches/2013-08/msg00535.html
which I was testing at the same time.

But, yuck that shouldn't have happened.

Tested on aarch64-none-elf with no regressions.

OK?

Thanks,
James

---
gcc/

	* config/aarch64/arm_none.h
	(vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
James Greenhalgh - Aug. 12, 2013, 4 p.m.
On Mon, Aug 12, 2013 at 01:58:34PM +0100, James Greenhalgh wrote:
> 
> Ugh. Typos in arm_neon.h macro names mean that scalar intrinsics end
> up calling macros which don't exist.
> 
> So wherever I have written vget_laneq I should have written
> vgetq_lane.

As this patch is obvious, fixes a silly bug, and there were no
objections I've committed it as revision 201666.

Thanks,
James

> ---
> gcc/
> 
> 	* config/aarch64/arm_none.h
> 	(vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.

> diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h
> index 73a5400..4a480fb 100644
> --- a/gcc/config/aarch64/arm_neon.h
> +++ b/gcc/config/aarch64/arm_neon.h
> @@ -19780,49 +19780,49 @@ vcvtpq_u64_f64 (float64x2_t __a)
>  __extension__ static __inline int8x1_t __attribute__ ((__always_inline__))
>  vdupb_lane_s8 (int8x16_t a, int const b)
>  {
> -  return __aarch64_vget_laneq_s8 (a, b);
> +  return __aarch64_vgetq_lane_s8 (a, b);
>  }
>  
>  __extension__ static __inline uint8x1_t __attribute__ ((__always_inline__))
>  vdupb_lane_u8 (uint8x16_t a, int const b)
>  {
> -  return __aarch64_vget_laneq_u8 (a, b);
> +  return __aarch64_vgetq_lane_u8 (a, b);
>  }
>  
>  __extension__ static __inline int16x1_t __attribute__ ((__always_inline__))
>  vduph_lane_s16 (int16x8_t a, int const b)
>  {
> -  return __aarch64_vget_laneq_s16 (a, b);
> +  return __aarch64_vgetq_lane_s16 (a, b);
>  }
>  
>  __extension__ static __inline uint16x1_t __attribute__ ((__always_inline__))
>  vduph_lane_u16 (uint16x8_t a, int const b)
>  {
> -  return __aarch64_vget_laneq_u16 (a, b);
> +  return __aarch64_vgetq_lane_u16 (a, b);
>  }
>  
>  __extension__ static __inline int32x1_t __attribute__ ((__always_inline__))
>  vdups_lane_s32 (int32x4_t a, int const b)
>  {
> -  return __aarch64_vget_laneq_s32 (a, b);
> +  return __aarch64_vgetq_lane_s32 (a, b);
>  }
>  
>  __extension__ static __inline uint32x1_t __attribute__ ((__always_inline__))
>  vdups_lane_u32 (uint32x4_t a, int const b)
>  {
> -  return __aarch64_vget_laneq_u32 (a, b);
> +  return __aarch64_vgetq_lane_u32 (a, b);
>  }
>  
>  __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
>  vdupd_lane_s64 (int64x2_t a, int const b)
>  {
> -  return __aarch64_vget_laneq_s64 (a, b);
> +  return __aarch64_vgetq_lane_s64 (a, b);
>  }
>  
>  __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
>  vdupd_lane_u64 (uint64x2_t a, int const b)
>  {
> -  return __aarch64_vget_laneq_s64 (a, b);
> +  return __aarch64_vgetq_lane_u64 (a, b);
>  }
>  
>  /* vld1 */

Patch

diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h
index 73a5400..4a480fb 100644
--- a/gcc/config/aarch64/arm_neon.h
+++ b/gcc/config/aarch64/arm_neon.h
@@ -19780,49 +19780,49 @@  vcvtpq_u64_f64 (float64x2_t __a)
 __extension__ static __inline int8x1_t __attribute__ ((__always_inline__))
 vdupb_lane_s8 (int8x16_t a, int const b)
 {
-  return __aarch64_vget_laneq_s8 (a, b);
+  return __aarch64_vgetq_lane_s8 (a, b);
 }
 
 __extension__ static __inline uint8x1_t __attribute__ ((__always_inline__))
 vdupb_lane_u8 (uint8x16_t a, int const b)
 {
-  return __aarch64_vget_laneq_u8 (a, b);
+  return __aarch64_vgetq_lane_u8 (a, b);
 }
 
 __extension__ static __inline int16x1_t __attribute__ ((__always_inline__))
 vduph_lane_s16 (int16x8_t a, int const b)
 {
-  return __aarch64_vget_laneq_s16 (a, b);
+  return __aarch64_vgetq_lane_s16 (a, b);
 }
 
 __extension__ static __inline uint16x1_t __attribute__ ((__always_inline__))
 vduph_lane_u16 (uint16x8_t a, int const b)
 {
-  return __aarch64_vget_laneq_u16 (a, b);
+  return __aarch64_vgetq_lane_u16 (a, b);
 }
 
 __extension__ static __inline int32x1_t __attribute__ ((__always_inline__))
 vdups_lane_s32 (int32x4_t a, int const b)
 {
-  return __aarch64_vget_laneq_s32 (a, b);
+  return __aarch64_vgetq_lane_s32 (a, b);
 }
 
 __extension__ static __inline uint32x1_t __attribute__ ((__always_inline__))
 vdups_lane_u32 (uint32x4_t a, int const b)
 {
-  return __aarch64_vget_laneq_u32 (a, b);
+  return __aarch64_vgetq_lane_u32 (a, b);
 }
 
 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
 vdupd_lane_s64 (int64x2_t a, int const b)
 {
-  return __aarch64_vget_laneq_s64 (a, b);
+  return __aarch64_vgetq_lane_s64 (a, b);
 }
 
 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
 vdupd_lane_u64 (uint64x2_t a, int const b)
 {
-  return __aarch64_vget_laneq_s64 (a, b);
+  return __aarch64_vgetq_lane_u64 (a, b);
 }
 
 /* vld1 */