diff --git a/Grid/simd/Grid_a64fx-2.h b/Grid/simd/Grid_a64fx-2.h index 51a6bfd0..221562de 100644 --- a/Grid/simd/Grid_a64fx-2.h +++ b/Grid/simd/Grid_a64fx-2.h @@ -82,7 +82,7 @@ NAMESPACE_BEGIN(Optimization); }; }; - #else // not defines ARMCLANGCOMPAT + #else // no ARMCLANGCOMPAT #define vec_imm vec // SIMD vector types template @@ -181,7 +181,7 @@ struct acle{ } static inline vec tbl2(){ //const vec t = {2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9, 14, 15, 12, 13}; - const vec_imm t = {4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15, 8, 9, 10, 11}; + const vec_imm t = {2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9, 14, 15, 12, 13}; return t; } static inline vec tbl_exch1a(){ // Exchange1 @@ -889,6 +889,7 @@ inline Integer Reduce::operator()(veci in){ } #undef svred +#undef vec_imm NAMESPACE_END(Optimization) diff --git a/Grid/simd/Grid_vector_types.h b/Grid/simd/Grid_vector_types.h index 527fde18..634cf470 100644 --- a/Grid/simd/Grid_vector_types.h +++ b/Grid/simd/Grid_vector_types.h @@ -122,7 +122,7 @@ accelerator_inline Grid_half sfw_float_to_half(float ff) { #if defined(A64FX) // VLA #pragma message("building for A64FX / SVE ACLE VLA") #if defined(ARMCLANGCOMPAT) - #pragma message("applying armclang patch") + #pragma message("applying data types patch") #endif #include "Grid_a64fx-2.h" #endif @@ -327,8 +327,9 @@ public: // FIXME -- alias this to an accelerator_inline MAC struct. - // FIXME VLA build error - #if defined(A64FX) || defined(A64FXFIXEDSIZE) + // safety exclude fxmac from VLA (causing wrong results?) + //#if defined(A64FX) || defined(A64FXFIXEDSIZE) + #if defined(A64FXFIXEDSIZE) friend accelerator_inline void mac(Grid_simd *__restrict__ y, const Grid_simd *__restrict__ a, const Grid_simd *__restrict__ x) {