marton78 / pffft

A fork of Julien Pommier's Pretty Fast FFT (PFFFT) library, with several additions
Other
248 stars 58 forks source link

Build fails on powerpc64le #55

Open pkubaj opened 2 years ago

pkubaj commented 2 years ago

LLVM 11.0.1 on FreeBSD 13.0-RELEASE

/usr/bin/cc -DPFFFT_EXPORTS -DPFFFT_SCALVEC_ENABLED=1 -D_USE_MATH_DEFINES  -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -fPIC -std=c99 -MD -MT CMakeFiles/PFFFT.dir/pffft.c.o -MF CMakeFiles/PFFFT.dir/pffft.c.o.d -o CMakeFiles/PFFFT.dir/pffft.c.o -c /wrkdirs/usr/ports/math/pffft/work/pffft-9603871/pffft.c
In file included from /wrkdirs/usr/ports/math/pffft/work/pffft-9603871/pffft.c:98:
In file included from /wrkdirs/usr/ports/math/pffft/work/pffft-9603871/simd/pf_float.h:64:
/wrkdirs/usr/ports/math/pffft/work/pffft-9603871/simd/pf_altivec_float.h:41:9: warning: /wrkdirs/usr/ports/math/pffft/work/pffft-9603871/simd/pf_altivec_float.h: ALTIVEC float macros are defined [-W#pragma-messages]
#pragma message( __FILE__ ": ALTIVEC float macros are defined" )
        ^
In file included from /wrkdirs/usr/ports/math/pffft/work/pffft-9603871/pffft.c:132:
/wrkdirs/usr/ports/math/pffft/work/pffft-9603871/pffft_priv_impl.h:1937:15: warning: implicit declaration of function 'VLOAD_ALIGNED' is invalid in C99 [-Wimplicit-function-declaration]
        C.v = VLOAD_ALIGNED( ptr );
              ^
/wrkdirs/usr/ports/math/pffft/work/pffft-9603871/pffft_priv_impl.h:1937:13: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
        C.v = VLOAD_ALIGNED( ptr );
            ^ ~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/math/pffft/work/pffft-9603871/pffft_priv_impl.h:1943:15: warning: implicit declaration of function 'VLOAD_UNALIGNED' is invalid in C99 [-Wimplicit-function-declaration]
        C.v = VLOAD_UNALIGNED( ptr );
              ^
/wrkdirs/usr/ports/math/pffft/work/pffft-9603871/pffft_priv_impl.h:1943:13: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
        C.v = VLOAD_UNALIGNED( ptr );
            ^ ~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/math/pffft/work/pffft-9603871/pffft_priv_impl.h:2186:11: warning: implicit declaration of function 'VREV_S' is invalid in C99 [-Wimplicit-function-declaration]
    C.v = VREV_S(A.v);
          ^
/wrkdirs/usr/ports/math/pffft/work/pffft-9603871/pffft_priv_impl.h:2186:9: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
    C.v = VREV_S(A.v);
        ^ ~~~~~~~~~~~
/wrkdirs/usr/ports/math/pffft/work/pffft-9603871/pffft_priv_impl.h:2206:11: warning: implicit declaration of function 'VREV_C' is invalid in C99 [-Wimplicit-function-declaration]
    C.v = VREV_C(A.v);
          ^
/wrkdirs/usr/ports/math/pffft/work/pffft-9603871/pffft_priv_impl.h:2206:9: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
    C.v = VREV_C(A.v);
        ^ ~~~~~~~~~~~
5 warnings and 4 errors generated.
hayguen commented 2 years ago

would you please check this again? (after my big changes in the cmake files)

pkubaj commented 2 years ago

Just tried (now on FreeBSD 13.1 with LLVM 13):

[  3% 1/27] /usr/bin/cc -DPFFFT_SCALVEC_ENABLED=1 -D_USE_MATH_DEFINES  -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -Wall -Wextra -pedantic -std=c99 -MD -MT CMakeFiles/PFFFT.dir/pffft.c.o -MF CMakeFiles/PFFFT.dir/pffft.c.o.d -o CMakeFiles/PFFFT.dir/pffft.c.o -c /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c
FAILED: CMakeFiles/PFFFT.dir/pffft.c.o 
/usr/bin/cc -DPFFFT_SCALVEC_ENABLED=1 -D_USE_MATH_DEFINES  -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -Wall -Wextra -pedantic -std=c99 -MD -MT CMakeFiles/PFFFT.dir/pffft.c.o -MF CMakeFiles/PFFFT.dir/pffft.c.o.d -o CMakeFiles/PFFFT.dir/pffft.c.o -c /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:98:
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_float.h:64:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:40:9: warning: /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h: ALTIVEC float macros are defined [-W#pragma-messages]
#pragma message( __FILE__ ": ALTIVEC float macros are defined" )
        ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:57:45: warning: implicit declaration of function 'vec_lde' is invalid in C99 [-Wimplicit-function-declaration]
inline v4sf ld_ps1(const float *p) { v4sf v=vec_lde(0,p); return vec_splat(vec_perm(v, v, vec_lvsl(0, p)), 0); }
                                            ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:57:43: error: initializing 'v4sf' (vector of 4 'float' values) with an expression of incompatible type 'int'
inline v4sf ld_ps1(const float *p) { v4sf v=vec_lde(0,p); return vec_splat(vec_perm(v, v, vec_lvsl(0, p)), 0); }
                                          ^ ~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:57:66: warning: implicit declaration of function 'vec_splat' is invalid in C99 [-Wimplicit-function-declaration]
inline v4sf ld_ps1(const float *p) { v4sf v=vec_lde(0,p); return vec_splat(vec_perm(v, v, vec_lvsl(0, p)), 0); }
                                                                 ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:57:76: warning: implicit declaration of function 'vec_perm' is invalid in C99 [-Wimplicit-function-declaration]
inline v4sf ld_ps1(const float *p) { v4sf v=vec_lde(0,p); return vec_splat(vec_perm(v, v, vec_lvsl(0, p)), 0); }
                                                                           ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:57:91: warning: implicit declaration of function 'vec_lvsl' is invalid in C99 [-Wimplicit-function-declaration]
inline v4sf ld_ps1(const float *p) { v4sf v=vec_lde(0,p); return vec_splat(vec_perm(v, v, vec_lvsl(0, p)), 0); }
                                                                                          ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:57:66: error: returning 'int' from a function with incompatible result type 'v4sf' (vector of 4 'float' values)
inline v4sf ld_ps1(const float *p) { v4sf v=vec_lde(0,p); return vec_splat(vec_perm(v, v, vec_lvsl(0, p)), 0); }
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:123:23: warning: implicit declaration of function 'vec_add' is invalid in C99 [-Wimplicit-function-declaration]
      ch[0]         = VADD(cc[0], cc[ido+0]);
                      ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:54:21: note: expanded from macro 'VADD'
#  define VADD(a,b) vec_add(a,b)
                    ^
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:123:21: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
      ch[0]         = VADD(cc[0], cc[ido+0]);
                    ^ ~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:124:23: warning: implicit declaration of function 'vec_sub' is invalid in C99 [-Wimplicit-function-declaration]
      ch[l1ido]     = VSUB(cc[0], cc[ido+0]);
                      ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:56:21: note: expanded from macro 'VSUB'
#  define VSUB(a,b) vec_sub(a,b)
                    ^
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:124:21: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
      ch[l1ido]     = VSUB(cc[0], cc[ido+0]);
                    ^ ~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:125:21: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
      ch[1]         = VADD(cc[1], cc[ido+1]);
                    ^ ~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:126:21: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
      ch[l1ido + 1] = VSUB(cc[1], cc[ido+1]);
                    ^ ~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:131:20: warning: implicit declaration of function 'vec_sub' is invalid in C99 [-Wimplicit-function-declaration]
        v4sf tr2 = VSUB(cc[i+0], cc[i+ido+0]);
                   ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:56:21: note: expanded from macro 'VSUB'
#  define VSUB(a,b) vec_sub(a,b)
                    ^
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:131:14: error: initializing 'v4sf' (vector of 4 'float' values) with an expression of incompatible type 'int'
        v4sf tr2 = VSUB(cc[i+0], cc[i+ido+0]);
             ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:132:14: error: initializing 'v4sf' (vector of 4 'float' values) with an expression of incompatible type 'int'
        v4sf ti2 = VSUB(cc[i+1], cc[i+ido+1]);
             ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:133:40: warning: implicit declaration of function 'vec_madd' is invalid in C99 [-Wimplicit-function-declaration]
        v4sf wr = LD_PS1(wa1[i]), wi = VMUL(LD_PS1(fsign), LD_PS1(wa1[i+1]));
                                       ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:53:21: note: expanded from macro 'VMUL'
#  define VMUL(a,b) vec_madd(a,b, VZERO())
                    ^
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:133:40: warning: implicit declaration of function 'vec_splat_u8' is invalid in C99 [-Wimplicit-function-declaration]
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:53:35: note: expanded from macro 'VMUL'
#  define VMUL(a,b) vec_madd(a,b, VZERO())
                                  ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:52:35: note: expanded from macro 'VZERO'
#  define VZERO() ((vector float) vec_splat_u8(0))
                                  ^
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:133:35: error: initializing 'v4sf' (vector of 4 'float' values) with an expression of incompatible type 'int'
        v4sf wr = LD_PS1(wa1[i]), wi = VMUL(LD_PS1(fsign), LD_PS1(wa1[i+1]));
                                  ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:134:19: warning: implicit declaration of function 'vec_add' is invalid in C99 [-Wimplicit-function-declaration]
        ch[i]   = VADD(cc[i+0], cc[i+ido+0]);
                  ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:54:21: note: expanded from macro 'VADD'
#  define VADD(a,b) vec_add(a,b)
                    ^
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:134:17: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
        ch[i]   = VADD(cc[i+0], cc[i+ido+0]);
                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:135:17: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
        ch[i+1] = VADD(cc[i+1], cc[i+ido+1]);
                ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:136:9: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
        VCPLXMUL(tr2, ti2, wr, wi);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_float.h:76:46: note: expanded from macro 'VCPLXMUL'
#define VCPLXMUL(ar,ai,br,bi) { v4sf tmp; tmp=VMUL(ar,bi); ar=VMUL(ar,br); ar=VSUB(ar,VMUL(ai,bi)); ai=VMUL(ai,br); ai=VADD(ai,tmp); }
                                             ^~~~~~~~~~~~
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:136:9: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
        VCPLXMUL(tr2, ti2, wr, wi);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_float.h:76:62: note: expanded from macro 'VCPLXMUL'
#define VCPLXMUL(ar,ai,br,bi) { v4sf tmp; tmp=VMUL(ar,bi); ar=VMUL(ar,br); ar=VSUB(ar,VMUL(ai,bi)); ai=VMUL(ai,br); ai=VADD(ai,tmp); }
                                                             ^~~~~~~~~~~~
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:136:9: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
        VCPLXMUL(tr2, ti2, wr, wi);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_float.h:76:78: note: expanded from macro 'VCPLXMUL'
#define VCPLXMUL(ar,ai,br,bi) { v4sf tmp; tmp=VMUL(ar,bi); ar=VMUL(ar,br); ar=VSUB(ar,VMUL(ai,bi)); ai=VMUL(ai,br); ai=VADD(ai,tmp); }
                                                                             ^~~~~~~~~~~~~~~~~~~~~
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:136:9: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
        VCPLXMUL(tr2, ti2, wr, wi);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_float.h:76:103: note: expanded from macro 'VCPLXMUL'
#define VCPLXMUL(ar,ai,br,bi) { v4sf tmp; tmp=VMUL(ar,bi); ar=VMUL(ar,br); ar=VSUB(ar,VMUL(ai,bi)); ai=VMUL(ai,br); ai=VADD(ai,tmp); }
                                                                                                      ^~~~~~~~~~~~
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:136:9: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
        VCPLXMUL(tr2, ti2, wr, wi);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_float.h:76:119: note: expanded from macro 'VCPLXMUL'
#define VCPLXMUL(ar,ai,br,bi) { v4sf tmp; tmp=VMUL(ar,bi); ar=VMUL(ar,br); ar=VSUB(ar,VMUL(ai,bi)); ai=VMUL(ai,br); ai=VADD(ai,tmp); }
                                                                                                                      ^~~~~~~~~~~~~
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:158:13: warning: implicit declaration of function 'vec_add' is invalid in C99 [-Wimplicit-function-declaration]
      tr2 = VADD(cc[i+ido], cc[i+2*ido]);
            ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:54:21: note: expanded from macro 'VADD'
#  define VADD(a,b) vec_add(a,b)
                    ^
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:158:11: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
      tr2 = VADD(cc[i+ido], cc[i+2*ido]);
          ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:159:25: warning: implicit declaration of function 'vec_madd' is invalid in C99 [-Wimplicit-function-declaration]
      cr2 = VADD(cc[i], SVMUL(taur,tr2));
                        ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_float.h:80:20: note: expanded from macro 'SVMUL'
#define SVMUL(f,v) VMUL(LD_PS1(f),v)
                   ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:53:21: note: expanded from macro 'VMUL'
#  define VMUL(a,b) vec_madd(a,b, VZERO())
                    ^
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:159:25: warning: implicit declaration of function 'vec_splat_u8' is invalid in C99 [-Wimplicit-function-declaration]
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_float.h:80:20: note: expanded from macro 'SVMUL'
#define SVMUL(f,v) VMUL(LD_PS1(f),v)
                   ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:53:35: note: expanded from macro 'VMUL'
#  define VMUL(a,b) vec_madd(a,b, VZERO())
                                  ^
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/simd/pf_altivec_float.h:52:35: note: expanded from macro 'VZERO'
#  define VZERO() ((vector float) vec_splat_u8(0))
                                  ^
In file included from /tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft.c:132:
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:159:11: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
      cr2 = VADD(cc[i], SVMUL(taur,tr2));
          ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/usr/ports/math/pffft/work/pffft-08f5ed2/pffft_priv_impl.h:160:16: error: assigning to 'v4sf' (vector of 4 'float' values) from incompatible type 'int'
      ch[i]    = VADD(cc[i], tr2);
               ^ ~~~~~~~~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
14 warnings and 20 errors generated.
ninja: build stopped: subcommand failed.
hayguen commented 2 years ago

are any freely usable PowerPC build/test systems known? similar to github actions?

pkubaj commented 2 years ago

Travis supports ppc64le: https://docs.travis-ci.com/user/multi-cpu-architectures/