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 <[email protected]>
* 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;
}