mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-24 12:41:09 +08:00
neon.ml (vectype): Add T_floatSF.
2009-11-03 Paul Brook <paul@codesourcery.com> gcc/ * config/arm/neon.ml (vectype): Add T_floatSF. (string_of_vectype): Ditto. * config/arm/neon-gen.ml (signed_ctype): Add T_floatSF. (deftypes): Use float for float32_t. * config/arm/arm_neon.h: Regenerate. From-SVN: r153858
This commit is contained in:
parent
60d21717a2
commit
156e423608
gcc
@ -1,3 +1,11 @@
|
||||
2009-11-03 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* config/arm/neon.ml (vectype): Add T_floatSF.
|
||||
(string_of_vectype): Ditto.
|
||||
* config/arm/neon-gen.ml (signed_ctype): Add T_floatSF.
|
||||
(deftypes): Use float for float32_t.
|
||||
* config/arm/arm_neon.h: Regenerate.
|
||||
|
||||
2009-11-03 Nick Clifton <nickc@redhat.com>
|
||||
Kevin Buettner <kevinb@redhat.com>
|
||||
|
||||
|
@ -61,7 +61,7 @@ typedef __builtin_neon_uhi uint16x8_t __attribute__ ((__vector_size__ (16)));
|
||||
typedef __builtin_neon_usi uint32x4_t __attribute__ ((__vector_size__ (16)));
|
||||
typedef __builtin_neon_udi uint64x2_t __attribute__ ((__vector_size__ (16)));
|
||||
|
||||
typedef __builtin_neon_sf float32_t;
|
||||
typedef float float32_t;
|
||||
typedef __builtin_neon_poly8 poly8_t;
|
||||
typedef __builtin_neon_poly16 poly16_t;
|
||||
|
||||
@ -5085,7 +5085,7 @@ vset_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
|
||||
__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
|
||||
vset_lane_f32 (float32_t __a, float32x2_t __b, const int __c)
|
||||
{
|
||||
return (float32x2_t)__builtin_neon_vset_lanev2sf (__a, __b, __c);
|
||||
return (float32x2_t)__builtin_neon_vset_lanev2sf ((__builtin_neon_sf) __a, __b, __c);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
|
||||
@ -5151,7 +5151,7 @@ vsetq_lane_s32 (int32_t __a, int32x4_t __b, const int __c)
|
||||
__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
|
||||
vsetq_lane_f32 (float32_t __a, float32x4_t __b, const int __c)
|
||||
{
|
||||
return (float32x4_t)__builtin_neon_vset_lanev4sf (__a, __b, __c);
|
||||
return (float32x4_t)__builtin_neon_vset_lanev4sf ((__builtin_neon_sf) __a, __b, __c);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
|
||||
@ -5283,7 +5283,7 @@ vdup_n_s32 (int32_t __a)
|
||||
__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
|
||||
vdup_n_f32 (float32_t __a)
|
||||
{
|
||||
return (float32x2_t)__builtin_neon_vdup_nv2sf (__a);
|
||||
return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
|
||||
@ -5349,7 +5349,7 @@ vdupq_n_s32 (int32_t __a)
|
||||
__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
|
||||
vdupq_n_f32 (float32_t __a)
|
||||
{
|
||||
return (float32x4_t)__builtin_neon_vdup_nv4sf (__a);
|
||||
return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
|
||||
@ -5415,7 +5415,7 @@ vmov_n_s32 (int32_t __a)
|
||||
__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
|
||||
vmov_n_f32 (float32_t __a)
|
||||
{
|
||||
return (float32x2_t)__builtin_neon_vdup_nv2sf (__a);
|
||||
return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
|
||||
@ -5481,7 +5481,7 @@ vmovq_n_s32 (int32_t __a)
|
||||
__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
|
||||
vmovq_n_f32 (float32_t __a)
|
||||
{
|
||||
return (float32x4_t)__builtin_neon_vdup_nv4sf (__a);
|
||||
return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
|
||||
@ -6591,7 +6591,7 @@ vmul_n_s32 (int32x2_t __a, int32_t __b)
|
||||
__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
|
||||
vmul_n_f32 (float32x2_t __a, float32_t __b)
|
||||
{
|
||||
return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, __b, 3);
|
||||
return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, (__builtin_neon_sf) __b, 3);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
|
||||
@ -6621,7 +6621,7 @@ vmulq_n_s32 (int32x4_t __a, int32_t __b)
|
||||
__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
|
||||
vmulq_n_f32 (float32x4_t __a, float32_t __b)
|
||||
{
|
||||
return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, __b, 3);
|
||||
return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, (__builtin_neon_sf) __b, 3);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
|
||||
@ -6735,7 +6735,7 @@ vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
|
||||
__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
|
||||
vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
|
||||
{
|
||||
return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, __c, 3);
|
||||
return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, (__builtin_neon_sf) __c, 3);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
|
||||
@ -6765,7 +6765,7 @@ vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
|
||||
__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
|
||||
vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
|
||||
{
|
||||
return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, __c, 3);
|
||||
return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, (__builtin_neon_sf) __c, 3);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
|
||||
@ -6831,7 +6831,7 @@ vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
|
||||
__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
|
||||
vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
|
||||
{
|
||||
return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, __c, 3);
|
||||
return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, (__builtin_neon_sf) __c, 3);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
|
||||
@ -6861,7 +6861,7 @@ vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
|
||||
__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
|
||||
vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
|
||||
{
|
||||
return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, __c, 3);
|
||||
return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, (__builtin_neon_sf) __c, 3);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
|
||||
@ -7851,7 +7851,7 @@ vld1_s64 (const int64_t * __a)
|
||||
__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
|
||||
vld1_f32 (const float32_t * __a)
|
||||
{
|
||||
return (float32x2_t)__builtin_neon_vld1v2sf (__a);
|
||||
return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
|
||||
@ -7917,7 +7917,7 @@ vld1q_s64 (const int64_t * __a)
|
||||
__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
|
||||
vld1q_f32 (const float32_t * __a)
|
||||
{
|
||||
return (float32x4_t)__builtin_neon_vld1v4sf (__a);
|
||||
return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
|
||||
@ -7977,7 +7977,7 @@ vld1_lane_s32 (const int32_t * __a, int32x2_t __b, const int __c)
|
||||
__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
|
||||
vld1_lane_f32 (const float32_t * __a, float32x2_t __b, const int __c)
|
||||
{
|
||||
return (float32x2_t)__builtin_neon_vld1_lanev2sf (__a, __b, __c);
|
||||
return (float32x2_t)__builtin_neon_vld1_lanev2sf ((const __builtin_neon_sf *) __a, __b, __c);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
|
||||
@ -8043,7 +8043,7 @@ vld1q_lane_s32 (const int32_t * __a, int32x4_t __b, const int __c)
|
||||
__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
|
||||
vld1q_lane_f32 (const float32_t * __a, float32x4_t __b, const int __c)
|
||||
{
|
||||
return (float32x4_t)__builtin_neon_vld1_lanev4sf (__a, __b, __c);
|
||||
return (float32x4_t)__builtin_neon_vld1_lanev4sf ((const __builtin_neon_sf *) __a, __b, __c);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
|
||||
@ -8109,7 +8109,7 @@ vld1_dup_s32 (const int32_t * __a)
|
||||
__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
|
||||
vld1_dup_f32 (const float32_t * __a)
|
||||
{
|
||||
return (float32x2_t)__builtin_neon_vld1_dupv2sf (__a);
|
||||
return (float32x2_t)__builtin_neon_vld1_dupv2sf ((const __builtin_neon_sf *) __a);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
|
||||
@ -8175,7 +8175,7 @@ vld1q_dup_s32 (const int32_t * __a)
|
||||
__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
|
||||
vld1q_dup_f32 (const float32_t * __a)
|
||||
{
|
||||
return (float32x4_t)__builtin_neon_vld1_dupv4sf (__a);
|
||||
return (float32x4_t)__builtin_neon_vld1_dupv4sf ((const __builtin_neon_sf *) __a);
|
||||
}
|
||||
|
||||
__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
|
||||
@ -8247,7 +8247,7 @@ vst1_s64 (int64_t * __a, int64x1_t __b)
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst1_f32 (float32_t * __a, float32x2_t __b)
|
||||
{
|
||||
__builtin_neon_vst1v2sf (__a, __b);
|
||||
__builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -8313,7 +8313,7 @@ vst1q_s64 (int64_t * __a, int64x2_t __b)
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst1q_f32 (float32_t * __a, float32x4_t __b)
|
||||
{
|
||||
__builtin_neon_vst1v4sf (__a, __b);
|
||||
__builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -8373,7 +8373,7 @@ vst1_lane_s32 (int32_t * __a, int32x2_t __b, const int __c)
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst1_lane_f32 (float32_t * __a, float32x2_t __b, const int __c)
|
||||
{
|
||||
__builtin_neon_vst1_lanev2sf (__a, __b, __c);
|
||||
__builtin_neon_vst1_lanev2sf ((__builtin_neon_sf *) __a, __b, __c);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -8439,7 +8439,7 @@ vst1q_lane_s32 (int32_t * __a, int32x4_t __b, const int __c)
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst1q_lane_f32 (float32_t * __a, float32x4_t __b, const int __c)
|
||||
{
|
||||
__builtin_neon_vst1_lanev4sf (__a, __b, __c);
|
||||
__builtin_neon_vst1_lanev4sf ((__builtin_neon_sf *) __a, __b, __c);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -8512,7 +8512,7 @@ __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
|
||||
vld2_f32 (const float32_t * __a)
|
||||
{
|
||||
union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld2v2sf (__a);
|
||||
__rv.__o = __builtin_neon_vld2v2sf ((const __builtin_neon_sf *) __a);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -8600,7 +8600,7 @@ __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__))
|
||||
vld2q_f32 (const float32_t * __a)
|
||||
{
|
||||
union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld2v4sf (__a);
|
||||
__rv.__o = __builtin_neon_vld2v4sf ((const __builtin_neon_sf *) __a);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -8676,7 +8676,7 @@ vld2_lane_f32 (const float32_t * __a, float32x2x2_t __b, const int __c)
|
||||
{
|
||||
union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
|
||||
union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld2_lanev2sf (__a, __bu.__o, __c);
|
||||
__rv.__o = __builtin_neon_vld2_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -8748,7 +8748,7 @@ vld2q_lane_f32 (const float32_t * __a, float32x4x2_t __b, const int __c)
|
||||
{
|
||||
union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
|
||||
union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld2_lanev4sf (__a, __bu.__o, __c);
|
||||
__rv.__o = __builtin_neon_vld2_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -8807,7 +8807,7 @@ __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__))
|
||||
vld2_dup_f32 (const float32_t * __a)
|
||||
{
|
||||
union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld2_dupv2sf (__a);
|
||||
__rv.__o = __builtin_neon_vld2_dupv2sf ((const __builtin_neon_sf *) __a);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -8892,7 +8892,7 @@ __extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst2_f32 (float32_t * __a, float32x2x2_t __b)
|
||||
{
|
||||
union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
|
||||
__builtin_neon_vst2v2sf (__a, __bu.__o);
|
||||
__builtin_neon_vst2v2sf ((__builtin_neon_sf *) __a, __bu.__o);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -8969,7 +8969,7 @@ __extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst2q_f32 (float32_t * __a, float32x4x2_t __b)
|
||||
{
|
||||
union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
|
||||
__builtin_neon_vst2v4sf (__a, __bu.__o);
|
||||
__builtin_neon_vst2v4sf ((__builtin_neon_sf *) __a, __bu.__o);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -9032,7 +9032,7 @@ __extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst2_lane_f32 (float32_t * __a, float32x2x2_t __b, const int __c)
|
||||
{
|
||||
union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
|
||||
__builtin_neon_vst2_lanev2sf (__a, __bu.__o, __c);
|
||||
__builtin_neon_vst2_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -9088,7 +9088,7 @@ __extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst2q_lane_f32 (float32_t * __a, float32x4x2_t __b, const int __c)
|
||||
{
|
||||
union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
|
||||
__builtin_neon_vst2_lanev4sf (__a, __bu.__o, __c);
|
||||
__builtin_neon_vst2_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -9140,7 +9140,7 @@ __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
|
||||
vld3_f32 (const float32_t * __a)
|
||||
{
|
||||
union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld3v2sf (__a);
|
||||
__rv.__o = __builtin_neon_vld3v2sf ((const __builtin_neon_sf *) __a);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -9228,7 +9228,7 @@ __extension__ static __inline float32x4x3_t __attribute__ ((__always_inline__))
|
||||
vld3q_f32 (const float32_t * __a)
|
||||
{
|
||||
union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld3v4sf (__a);
|
||||
__rv.__o = __builtin_neon_vld3v4sf ((const __builtin_neon_sf *) __a);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -9304,7 +9304,7 @@ vld3_lane_f32 (const float32_t * __a, float32x2x3_t __b, const int __c)
|
||||
{
|
||||
union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
|
||||
union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld3_lanev2sf (__a, __bu.__o, __c);
|
||||
__rv.__o = __builtin_neon_vld3_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -9376,7 +9376,7 @@ vld3q_lane_f32 (const float32_t * __a, float32x4x3_t __b, const int __c)
|
||||
{
|
||||
union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
|
||||
union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld3_lanev4sf (__a, __bu.__o, __c);
|
||||
__rv.__o = __builtin_neon_vld3_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -9435,7 +9435,7 @@ __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__))
|
||||
vld3_dup_f32 (const float32_t * __a)
|
||||
{
|
||||
union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld3_dupv2sf (__a);
|
||||
__rv.__o = __builtin_neon_vld3_dupv2sf ((const __builtin_neon_sf *) __a);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -9520,7 +9520,7 @@ __extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst3_f32 (float32_t * __a, float32x2x3_t __b)
|
||||
{
|
||||
union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
|
||||
__builtin_neon_vst3v2sf (__a, __bu.__o);
|
||||
__builtin_neon_vst3v2sf ((__builtin_neon_sf *) __a, __bu.__o);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -9597,7 +9597,7 @@ __extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst3q_f32 (float32_t * __a, float32x4x3_t __b)
|
||||
{
|
||||
union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
|
||||
__builtin_neon_vst3v4sf (__a, __bu.__o);
|
||||
__builtin_neon_vst3v4sf ((__builtin_neon_sf *) __a, __bu.__o);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -9660,7 +9660,7 @@ __extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst3_lane_f32 (float32_t * __a, float32x2x3_t __b, const int __c)
|
||||
{
|
||||
union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
|
||||
__builtin_neon_vst3_lanev2sf (__a, __bu.__o, __c);
|
||||
__builtin_neon_vst3_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -9716,7 +9716,7 @@ __extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst3q_lane_f32 (float32_t * __a, float32x4x3_t __b, const int __c)
|
||||
{
|
||||
union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
|
||||
__builtin_neon_vst3_lanev4sf (__a, __bu.__o, __c);
|
||||
__builtin_neon_vst3_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -9768,7 +9768,7 @@ __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
|
||||
vld4_f32 (const float32_t * __a)
|
||||
{
|
||||
union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld4v2sf (__a);
|
||||
__rv.__o = __builtin_neon_vld4v2sf ((const __builtin_neon_sf *) __a);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -9856,7 +9856,7 @@ __extension__ static __inline float32x4x4_t __attribute__ ((__always_inline__))
|
||||
vld4q_f32 (const float32_t * __a)
|
||||
{
|
||||
union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld4v4sf (__a);
|
||||
__rv.__o = __builtin_neon_vld4v4sf ((const __builtin_neon_sf *) __a);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -9932,7 +9932,7 @@ vld4_lane_f32 (const float32_t * __a, float32x2x4_t __b, const int __c)
|
||||
{
|
||||
union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
|
||||
union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld4_lanev2sf (__a, __bu.__o, __c);
|
||||
__rv.__o = __builtin_neon_vld4_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -10004,7 +10004,7 @@ vld4q_lane_f32 (const float32_t * __a, float32x4x4_t __b, const int __c)
|
||||
{
|
||||
union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
|
||||
union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld4_lanev4sf (__a, __bu.__o, __c);
|
||||
__rv.__o = __builtin_neon_vld4_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -10063,7 +10063,7 @@ __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__))
|
||||
vld4_dup_f32 (const float32_t * __a)
|
||||
{
|
||||
union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
|
||||
__rv.__o = __builtin_neon_vld4_dupv2sf (__a);
|
||||
__rv.__o = __builtin_neon_vld4_dupv2sf ((const __builtin_neon_sf *) __a);
|
||||
return __rv.__i;
|
||||
}
|
||||
|
||||
@ -10148,7 +10148,7 @@ __extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst4_f32 (float32_t * __a, float32x2x4_t __b)
|
||||
{
|
||||
union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
|
||||
__builtin_neon_vst4v2sf (__a, __bu.__o);
|
||||
__builtin_neon_vst4v2sf ((__builtin_neon_sf *) __a, __bu.__o);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -10225,7 +10225,7 @@ __extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst4q_f32 (float32_t * __a, float32x4x4_t __b)
|
||||
{
|
||||
union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
|
||||
__builtin_neon_vst4v4sf (__a, __bu.__o);
|
||||
__builtin_neon_vst4v4sf ((__builtin_neon_sf *) __a, __bu.__o);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -10288,7 +10288,7 @@ __extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst4_lane_f32 (float32_t * __a, float32x2x4_t __b, const int __c)
|
||||
{
|
||||
union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
|
||||
__builtin_neon_vst4_lanev2sf (__a, __bu.__o, __c);
|
||||
__builtin_neon_vst4_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
@ -10344,7 +10344,7 @@ __extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
vst4q_lane_f32 (float32_t * __a, float32x4x4_t __b, const int __c)
|
||||
{
|
||||
union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
|
||||
__builtin_neon_vst4_lanev4sf (__a, __bu.__o, __c);
|
||||
__builtin_neon_vst4_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
|
||||
}
|
||||
|
||||
__extension__ static __inline void __attribute__ ((__always_inline__))
|
||||
|
@ -122,6 +122,7 @@ let rec signed_ctype = function
|
||||
| T_uint16 | T_int16 -> T_intHI
|
||||
| T_uint32 | T_int32 -> T_intSI
|
||||
| T_uint64 | T_int64 -> T_intDI
|
||||
| T_float32 -> T_floatSF
|
||||
| T_poly8 -> T_intQI
|
||||
| T_poly16 -> T_intHI
|
||||
| T_arrayof (n, elt) -> T_arrayof (n, signed_ctype elt)
|
||||
@ -320,7 +321,7 @@ let deftypes () =
|
||||
typeinfo;
|
||||
Format.print_newline ();
|
||||
(* Extra types not in <stdint.h>. *)
|
||||
Format.printf "typedef __builtin_neon_sf float32_t;\n";
|
||||
Format.printf "typedef float float32_t;\n";
|
||||
Format.printf "typedef __builtin_neon_poly8 poly8_t;\n";
|
||||
Format.printf "typedef __builtin_neon_poly16 poly16_t;\n"
|
||||
|
||||
|
@ -50,7 +50,7 @@ type vectype = T_int8x8 | T_int8x16
|
||||
| T_ptrto of vectype | T_const of vectype
|
||||
| T_void | T_intQI
|
||||
| T_intHI | T_intSI
|
||||
| T_intDI
|
||||
| T_intDI | T_floatSF
|
||||
|
||||
(* The meanings of the following are:
|
||||
TImode : "Tetra", two registers (four words).
|
||||
@ -1693,6 +1693,7 @@ let string_of_vectype vt =
|
||||
| T_intHI -> "__builtin_neon_hi"
|
||||
| T_intSI -> "__builtin_neon_si"
|
||||
| T_intDI -> "__builtin_neon_di"
|
||||
| T_floatSF -> "__builtin_neon_sf"
|
||||
| T_arrayof (num, base) ->
|
||||
let basename = name (fun x -> x) base in
|
||||
affix (Printf.sprintf "%sx%d" basename num)
|
||||
|
Loading…
x
Reference in New Issue
Block a user