Here is a smaller simpler testcase. Only the first four args get passed in regs, so the fifth one has address equal to the virtual incoming args reg which triggers the failure.
typedef __simd128_float32_t float32x4_t; float32x4_t sub (float32x4_t a, float32x4_t b, float32x4_t c, float32x4_t d, float32x4_t e) { return __builtin_neon_vld1v4sf((const float *)&e); } The original testcase failed with linaro gcc 4.9. I verified that this testcase fails with FSF gcc-5.3.0. Jim