Hi, vcvtx_high_f32_f64 should have two parameters, a float32x2 which provides the lower half of the target vector, and a float64x2 which will be converted to the higher half of the target vector.
Fix thusly. Tested with aarch64.exp on aarch64-none-elf. OK? Thanks, James --- gcc/ 2013-09-06 James Greenhalgh <james.greenha...@arm.com> * config/aarch64/arm_neon.h (vcvtx_high_f32_f64): Fix parameters.
diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index 5864f2c..47b45f4 100644 --- a/gcc/config/aarch64/arm_neon.h +++ b/gcc/config/aarch64/arm_neon.h @@ -5756,12 +5756,12 @@ vcvtx_f32_f64 (float64x2_t a) } __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) -vcvtx_high_f32_f64 (float64x2_t a) +vcvtx_high_f32_f64 (float32x2_t a, float64x2_t b) { float32x4_t result; __asm__ ("fcvtxn2 %0.4s,%1.2d" : "=w"(result) - : "w"(a) + : "w" (b), "0"(a) : /* No clobbers */); return result; }