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;
 }

Reply via email to