From: kernel test robot <lkp@intel.com> To: Ard Biesheuvel <ardb@kernel.org> Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org Subject: [ardb:xor-restrict 1/2] arch/powerpc/lib/xor_vmx.c:52:6: error: conflicting types for '__xor_altivec_2'; have 'void(long unsigned int, long unsigned int *, long unsigned int *)' Date: Fri, 31 Dec 2021 06:50:01 +0800 [thread overview] Message-ID: <202112310646.kuh2pXiG-lkp@intel.com> (raw) tree: git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git xor-restrict head: d2950492157a7e6af397c6d68c6e212a4844be64 commit: e754a2be51e5330e138271067808681b4a13ade2 [1/2] lib/xor: make xor prototypes more friendely to compiler vectorization config: powerpc-g5_defconfig (https://download.01.org/0day-ci/archive/20211231/202112310646.kuh2pXiG-lkp@intel.com/config) compiler: powerpc-linux-gcc (GCC) 11.2.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/commit/?id=e754a2be51e5330e138271067808681b4a13ade2 git remote add ardb git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git git fetch --no-tags ardb xor-restrict git checkout e754a2be51e5330e138271067808681b4a13ade2 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): >> arch/powerpc/lib/xor_vmx.c:52:6: error: conflicting types for '__xor_altivec_2'; have 'void(long unsigned int, long unsigned int *, long unsigned int *)' 52 | void __xor_altivec_2(unsigned long bytes, unsigned long *v1_in, | ^~~~~~~~~~~~~~~ In file included from arch/powerpc/lib/xor_vmx.c:20: arch/powerpc/lib/xor_vmx.h:9:6: note: previous declaration of '__xor_altivec_2' with type 'void(long unsigned int, long unsigned int * __restrict__, const long unsigned int * __restrict__)' 9 | void __xor_altivec_2(unsigned long bytes, unsigned long * __restrict p1, | ^~~~~~~~~~~~~~~ >> arch/powerpc/lib/xor_vmx.c:70:6: error: conflicting types for '__xor_altivec_3'; have 'void(long unsigned int, long unsigned int *, long unsigned int *, long unsigned int *)' 70 | void __xor_altivec_3(unsigned long bytes, unsigned long *v1_in, | ^~~~~~~~~~~~~~~ In file included from arch/powerpc/lib/xor_vmx.c:20: arch/powerpc/lib/xor_vmx.h:11:6: note: previous declaration of '__xor_altivec_3' with type 'void(long unsigned int, long unsigned int * __restrict__, const long unsigned int * __restrict__, const long unsigned int * __restrict__)' 11 | void __xor_altivec_3(unsigned long bytes, unsigned long * __restrict p1, | ^~~~~~~~~~~~~~~ >> arch/powerpc/lib/xor_vmx.c:92:6: error: conflicting types for '__xor_altivec_4'; have 'void(long unsigned int, long unsigned int *, long unsigned int *, long unsigned int *, long unsigned int *)' 92 | void __xor_altivec_4(unsigned long bytes, unsigned long *v1_in, | ^~~~~~~~~~~~~~~ In file included from arch/powerpc/lib/xor_vmx.c:20: arch/powerpc/lib/xor_vmx.h:14:6: note: previous declaration of '__xor_altivec_4' with type 'void(long unsigned int, long unsigned int * __restrict__, const long unsigned int * __restrict__, const long unsigned int * __restrict__, const long unsigned int * __restrict__)' 14 | void __xor_altivec_4(unsigned long bytes, unsigned long * __restrict p1, | ^~~~~~~~~~~~~~~ >> arch/powerpc/lib/xor_vmx.c:119:6: error: conflicting types for '__xor_altivec_5'; have 'void(long unsigned int, long unsigned int *, long unsigned int *, long unsigned int *, long unsigned int *, long unsigned int *)' 119 | void __xor_altivec_5(unsigned long bytes, unsigned long *v1_in, | ^~~~~~~~~~~~~~~ In file included from arch/powerpc/lib/xor_vmx.c:20: arch/powerpc/lib/xor_vmx.h:18:6: note: previous declaration of '__xor_altivec_5' with type 'void(long unsigned int, long unsigned int * __restrict__, const long unsigned int * __restrict__, const long unsigned int * __restrict__, const long unsigned int * __restrict__, const long unsigned int * __restrict__)' 18 | void __xor_altivec_5(unsigned long bytes, unsigned long * __restrict p1, | ^~~~~~~~~~~~~~~ vim +52 arch/powerpc/lib/xor_vmx.c ef1313deafb7ba Anton Blanchard 2013-10-14 23 ef1313deafb7ba Anton Blanchard 2013-10-14 24 #define DEFINE(V) \ ef1313deafb7ba Anton Blanchard 2013-10-14 25 unative_t *V = (unative_t *)V##_in; \ ef1313deafb7ba Anton Blanchard 2013-10-14 26 unative_t V##_0, V##_1, V##_2, V##_3 ef1313deafb7ba Anton Blanchard 2013-10-14 27 ef1313deafb7ba Anton Blanchard 2013-10-14 28 #define LOAD(V) \ ef1313deafb7ba Anton Blanchard 2013-10-14 29 do { \ ef1313deafb7ba Anton Blanchard 2013-10-14 30 V##_0 = V[0]; \ ef1313deafb7ba Anton Blanchard 2013-10-14 31 V##_1 = V[1]; \ ef1313deafb7ba Anton Blanchard 2013-10-14 32 V##_2 = V[2]; \ ef1313deafb7ba Anton Blanchard 2013-10-14 33 V##_3 = V[3]; \ ef1313deafb7ba Anton Blanchard 2013-10-14 34 } while (0) ef1313deafb7ba Anton Blanchard 2013-10-14 35 ef1313deafb7ba Anton Blanchard 2013-10-14 36 #define STORE(V) \ ef1313deafb7ba Anton Blanchard 2013-10-14 37 do { \ ef1313deafb7ba Anton Blanchard 2013-10-14 38 V[0] = V##_0; \ ef1313deafb7ba Anton Blanchard 2013-10-14 39 V[1] = V##_1; \ ef1313deafb7ba Anton Blanchard 2013-10-14 40 V[2] = V##_2; \ ef1313deafb7ba Anton Blanchard 2013-10-14 41 V[3] = V##_3; \ ef1313deafb7ba Anton Blanchard 2013-10-14 42 } while (0) ef1313deafb7ba Anton Blanchard 2013-10-14 43 ef1313deafb7ba Anton Blanchard 2013-10-14 44 #define XOR(V1, V2) \ ef1313deafb7ba Anton Blanchard 2013-10-14 45 do { \ ef1313deafb7ba Anton Blanchard 2013-10-14 46 V1##_0 = vec_xor(V1##_0, V2##_0); \ ef1313deafb7ba Anton Blanchard 2013-10-14 47 V1##_1 = vec_xor(V1##_1, V2##_1); \ ef1313deafb7ba Anton Blanchard 2013-10-14 48 V1##_2 = vec_xor(V1##_2, V2##_2); \ ef1313deafb7ba Anton Blanchard 2013-10-14 49 V1##_3 = vec_xor(V1##_3, V2##_3); \ ef1313deafb7ba Anton Blanchard 2013-10-14 50 } while (0) ef1313deafb7ba Anton Blanchard 2013-10-14 51 f718d426d7e42e Matt Brown 2017-05-24 @52 void __xor_altivec_2(unsigned long bytes, unsigned long *v1_in, ef1313deafb7ba Anton Blanchard 2013-10-14 53 unsigned long *v2_in) ef1313deafb7ba Anton Blanchard 2013-10-14 54 { ef1313deafb7ba Anton Blanchard 2013-10-14 55 DEFINE(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 56 DEFINE(v2); ef1313deafb7ba Anton Blanchard 2013-10-14 57 unsigned long lines = bytes / (sizeof(unative_t)) / 4; ef1313deafb7ba Anton Blanchard 2013-10-14 58 ef1313deafb7ba Anton Blanchard 2013-10-14 59 do { ef1313deafb7ba Anton Blanchard 2013-10-14 60 LOAD(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 61 LOAD(v2); ef1313deafb7ba Anton Blanchard 2013-10-14 62 XOR(v1, v2); ef1313deafb7ba Anton Blanchard 2013-10-14 63 STORE(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 64 ef1313deafb7ba Anton Blanchard 2013-10-14 65 v1 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 66 v2 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 67 } while (--lines > 0); ef1313deafb7ba Anton Blanchard 2013-10-14 68 } ef1313deafb7ba Anton Blanchard 2013-10-14 69 f718d426d7e42e Matt Brown 2017-05-24 @70 void __xor_altivec_3(unsigned long bytes, unsigned long *v1_in, ef1313deafb7ba Anton Blanchard 2013-10-14 71 unsigned long *v2_in, unsigned long *v3_in) ef1313deafb7ba Anton Blanchard 2013-10-14 72 { ef1313deafb7ba Anton Blanchard 2013-10-14 73 DEFINE(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 74 DEFINE(v2); ef1313deafb7ba Anton Blanchard 2013-10-14 75 DEFINE(v3); ef1313deafb7ba Anton Blanchard 2013-10-14 76 unsigned long lines = bytes / (sizeof(unative_t)) / 4; ef1313deafb7ba Anton Blanchard 2013-10-14 77 ef1313deafb7ba Anton Blanchard 2013-10-14 78 do { ef1313deafb7ba Anton Blanchard 2013-10-14 79 LOAD(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 80 LOAD(v2); ef1313deafb7ba Anton Blanchard 2013-10-14 81 LOAD(v3); ef1313deafb7ba Anton Blanchard 2013-10-14 82 XOR(v1, v2); ef1313deafb7ba Anton Blanchard 2013-10-14 83 XOR(v1, v3); ef1313deafb7ba Anton Blanchard 2013-10-14 84 STORE(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 85 ef1313deafb7ba Anton Blanchard 2013-10-14 86 v1 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 87 v2 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 88 v3 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 89 } while (--lines > 0); ef1313deafb7ba Anton Blanchard 2013-10-14 90 } ef1313deafb7ba Anton Blanchard 2013-10-14 91 f718d426d7e42e Matt Brown 2017-05-24 @92 void __xor_altivec_4(unsigned long bytes, unsigned long *v1_in, ef1313deafb7ba Anton Blanchard 2013-10-14 93 unsigned long *v2_in, unsigned long *v3_in, ef1313deafb7ba Anton Blanchard 2013-10-14 94 unsigned long *v4_in) ef1313deafb7ba Anton Blanchard 2013-10-14 95 { ef1313deafb7ba Anton Blanchard 2013-10-14 96 DEFINE(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 97 DEFINE(v2); ef1313deafb7ba Anton Blanchard 2013-10-14 98 DEFINE(v3); ef1313deafb7ba Anton Blanchard 2013-10-14 99 DEFINE(v4); ef1313deafb7ba Anton Blanchard 2013-10-14 100 unsigned long lines = bytes / (sizeof(unative_t)) / 4; ef1313deafb7ba Anton Blanchard 2013-10-14 101 ef1313deafb7ba Anton Blanchard 2013-10-14 102 do { ef1313deafb7ba Anton Blanchard 2013-10-14 103 LOAD(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 104 LOAD(v2); ef1313deafb7ba Anton Blanchard 2013-10-14 105 LOAD(v3); ef1313deafb7ba Anton Blanchard 2013-10-14 106 LOAD(v4); ef1313deafb7ba Anton Blanchard 2013-10-14 107 XOR(v1, v2); ef1313deafb7ba Anton Blanchard 2013-10-14 108 XOR(v3, v4); ef1313deafb7ba Anton Blanchard 2013-10-14 109 XOR(v1, v3); ef1313deafb7ba Anton Blanchard 2013-10-14 110 STORE(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 111 ef1313deafb7ba Anton Blanchard 2013-10-14 112 v1 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 113 v2 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 114 v3 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 115 v4 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 116 } while (--lines > 0); ef1313deafb7ba Anton Blanchard 2013-10-14 117 } ef1313deafb7ba Anton Blanchard 2013-10-14 118 f718d426d7e42e Matt Brown 2017-05-24 @119 void __xor_altivec_5(unsigned long bytes, unsigned long *v1_in, :::::: The code at line 52 was first introduced by commit :::::: f718d426d7e42eec6e5d2932f52a51de23bd3b30 powerpc/lib/xor_vmx: Ensure no altivec code executes before enable_kernel_altivec() :::::: TO: Matt Brown <matthew.brown.dev@gmail.com> :::::: CC: Michael Ellerman <mpe@ellerman.id.au> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: kbuild-all@lists.01.org Subject: [ardb:xor-restrict 1/2] arch/powerpc/lib/xor_vmx.c:52:6: error: conflicting types for '__xor_altivec_2'; have 'void(long unsigned int, long unsigned int *, long unsigned int *)' Date: Fri, 31 Dec 2021 06:50:01 +0800 [thread overview] Message-ID: <202112310646.kuh2pXiG-lkp@intel.com> (raw) [-- Attachment #1: Type: text/plain, Size: 11107 bytes --] tree: git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git xor-restrict head: d2950492157a7e6af397c6d68c6e212a4844be64 commit: e754a2be51e5330e138271067808681b4a13ade2 [1/2] lib/xor: make xor prototypes more friendely to compiler vectorization config: powerpc-g5_defconfig (https://download.01.org/0day-ci/archive/20211231/202112310646.kuh2pXiG-lkp(a)intel.com/config) compiler: powerpc-linux-gcc (GCC) 11.2.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/commit/?id=e754a2be51e5330e138271067808681b4a13ade2 git remote add ardb git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git git fetch --no-tags ardb xor-restrict git checkout e754a2be51e5330e138271067808681b4a13ade2 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): >> arch/powerpc/lib/xor_vmx.c:52:6: error: conflicting types for '__xor_altivec_2'; have 'void(long unsigned int, long unsigned int *, long unsigned int *)' 52 | void __xor_altivec_2(unsigned long bytes, unsigned long *v1_in, | ^~~~~~~~~~~~~~~ In file included from arch/powerpc/lib/xor_vmx.c:20: arch/powerpc/lib/xor_vmx.h:9:6: note: previous declaration of '__xor_altivec_2' with type 'void(long unsigned int, long unsigned int * __restrict__, const long unsigned int * __restrict__)' 9 | void __xor_altivec_2(unsigned long bytes, unsigned long * __restrict p1, | ^~~~~~~~~~~~~~~ >> arch/powerpc/lib/xor_vmx.c:70:6: error: conflicting types for '__xor_altivec_3'; have 'void(long unsigned int, long unsigned int *, long unsigned int *, long unsigned int *)' 70 | void __xor_altivec_3(unsigned long bytes, unsigned long *v1_in, | ^~~~~~~~~~~~~~~ In file included from arch/powerpc/lib/xor_vmx.c:20: arch/powerpc/lib/xor_vmx.h:11:6: note: previous declaration of '__xor_altivec_3' with type 'void(long unsigned int, long unsigned int * __restrict__, const long unsigned int * __restrict__, const long unsigned int * __restrict__)' 11 | void __xor_altivec_3(unsigned long bytes, unsigned long * __restrict p1, | ^~~~~~~~~~~~~~~ >> arch/powerpc/lib/xor_vmx.c:92:6: error: conflicting types for '__xor_altivec_4'; have 'void(long unsigned int, long unsigned int *, long unsigned int *, long unsigned int *, long unsigned int *)' 92 | void __xor_altivec_4(unsigned long bytes, unsigned long *v1_in, | ^~~~~~~~~~~~~~~ In file included from arch/powerpc/lib/xor_vmx.c:20: arch/powerpc/lib/xor_vmx.h:14:6: note: previous declaration of '__xor_altivec_4' with type 'void(long unsigned int, long unsigned int * __restrict__, const long unsigned int * __restrict__, const long unsigned int * __restrict__, const long unsigned int * __restrict__)' 14 | void __xor_altivec_4(unsigned long bytes, unsigned long * __restrict p1, | ^~~~~~~~~~~~~~~ >> arch/powerpc/lib/xor_vmx.c:119:6: error: conflicting types for '__xor_altivec_5'; have 'void(long unsigned int, long unsigned int *, long unsigned int *, long unsigned int *, long unsigned int *, long unsigned int *)' 119 | void __xor_altivec_5(unsigned long bytes, unsigned long *v1_in, | ^~~~~~~~~~~~~~~ In file included from arch/powerpc/lib/xor_vmx.c:20: arch/powerpc/lib/xor_vmx.h:18:6: note: previous declaration of '__xor_altivec_5' with type 'void(long unsigned int, long unsigned int * __restrict__, const long unsigned int * __restrict__, const long unsigned int * __restrict__, const long unsigned int * __restrict__, const long unsigned int * __restrict__)' 18 | void __xor_altivec_5(unsigned long bytes, unsigned long * __restrict p1, | ^~~~~~~~~~~~~~~ vim +52 arch/powerpc/lib/xor_vmx.c ef1313deafb7ba Anton Blanchard 2013-10-14 23 ef1313deafb7ba Anton Blanchard 2013-10-14 24 #define DEFINE(V) \ ef1313deafb7ba Anton Blanchard 2013-10-14 25 unative_t *V = (unative_t *)V##_in; \ ef1313deafb7ba Anton Blanchard 2013-10-14 26 unative_t V##_0, V##_1, V##_2, V##_3 ef1313deafb7ba Anton Blanchard 2013-10-14 27 ef1313deafb7ba Anton Blanchard 2013-10-14 28 #define LOAD(V) \ ef1313deafb7ba Anton Blanchard 2013-10-14 29 do { \ ef1313deafb7ba Anton Blanchard 2013-10-14 30 V##_0 = V[0]; \ ef1313deafb7ba Anton Blanchard 2013-10-14 31 V##_1 = V[1]; \ ef1313deafb7ba Anton Blanchard 2013-10-14 32 V##_2 = V[2]; \ ef1313deafb7ba Anton Blanchard 2013-10-14 33 V##_3 = V[3]; \ ef1313deafb7ba Anton Blanchard 2013-10-14 34 } while (0) ef1313deafb7ba Anton Blanchard 2013-10-14 35 ef1313deafb7ba Anton Blanchard 2013-10-14 36 #define STORE(V) \ ef1313deafb7ba Anton Blanchard 2013-10-14 37 do { \ ef1313deafb7ba Anton Blanchard 2013-10-14 38 V[0] = V##_0; \ ef1313deafb7ba Anton Blanchard 2013-10-14 39 V[1] = V##_1; \ ef1313deafb7ba Anton Blanchard 2013-10-14 40 V[2] = V##_2; \ ef1313deafb7ba Anton Blanchard 2013-10-14 41 V[3] = V##_3; \ ef1313deafb7ba Anton Blanchard 2013-10-14 42 } while (0) ef1313deafb7ba Anton Blanchard 2013-10-14 43 ef1313deafb7ba Anton Blanchard 2013-10-14 44 #define XOR(V1, V2) \ ef1313deafb7ba Anton Blanchard 2013-10-14 45 do { \ ef1313deafb7ba Anton Blanchard 2013-10-14 46 V1##_0 = vec_xor(V1##_0, V2##_0); \ ef1313deafb7ba Anton Blanchard 2013-10-14 47 V1##_1 = vec_xor(V1##_1, V2##_1); \ ef1313deafb7ba Anton Blanchard 2013-10-14 48 V1##_2 = vec_xor(V1##_2, V2##_2); \ ef1313deafb7ba Anton Blanchard 2013-10-14 49 V1##_3 = vec_xor(V1##_3, V2##_3); \ ef1313deafb7ba Anton Blanchard 2013-10-14 50 } while (0) ef1313deafb7ba Anton Blanchard 2013-10-14 51 f718d426d7e42e Matt Brown 2017-05-24 @52 void __xor_altivec_2(unsigned long bytes, unsigned long *v1_in, ef1313deafb7ba Anton Blanchard 2013-10-14 53 unsigned long *v2_in) ef1313deafb7ba Anton Blanchard 2013-10-14 54 { ef1313deafb7ba Anton Blanchard 2013-10-14 55 DEFINE(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 56 DEFINE(v2); ef1313deafb7ba Anton Blanchard 2013-10-14 57 unsigned long lines = bytes / (sizeof(unative_t)) / 4; ef1313deafb7ba Anton Blanchard 2013-10-14 58 ef1313deafb7ba Anton Blanchard 2013-10-14 59 do { ef1313deafb7ba Anton Blanchard 2013-10-14 60 LOAD(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 61 LOAD(v2); ef1313deafb7ba Anton Blanchard 2013-10-14 62 XOR(v1, v2); ef1313deafb7ba Anton Blanchard 2013-10-14 63 STORE(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 64 ef1313deafb7ba Anton Blanchard 2013-10-14 65 v1 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 66 v2 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 67 } while (--lines > 0); ef1313deafb7ba Anton Blanchard 2013-10-14 68 } ef1313deafb7ba Anton Blanchard 2013-10-14 69 f718d426d7e42e Matt Brown 2017-05-24 @70 void __xor_altivec_3(unsigned long bytes, unsigned long *v1_in, ef1313deafb7ba Anton Blanchard 2013-10-14 71 unsigned long *v2_in, unsigned long *v3_in) ef1313deafb7ba Anton Blanchard 2013-10-14 72 { ef1313deafb7ba Anton Blanchard 2013-10-14 73 DEFINE(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 74 DEFINE(v2); ef1313deafb7ba Anton Blanchard 2013-10-14 75 DEFINE(v3); ef1313deafb7ba Anton Blanchard 2013-10-14 76 unsigned long lines = bytes / (sizeof(unative_t)) / 4; ef1313deafb7ba Anton Blanchard 2013-10-14 77 ef1313deafb7ba Anton Blanchard 2013-10-14 78 do { ef1313deafb7ba Anton Blanchard 2013-10-14 79 LOAD(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 80 LOAD(v2); ef1313deafb7ba Anton Blanchard 2013-10-14 81 LOAD(v3); ef1313deafb7ba Anton Blanchard 2013-10-14 82 XOR(v1, v2); ef1313deafb7ba Anton Blanchard 2013-10-14 83 XOR(v1, v3); ef1313deafb7ba Anton Blanchard 2013-10-14 84 STORE(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 85 ef1313deafb7ba Anton Blanchard 2013-10-14 86 v1 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 87 v2 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 88 v3 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 89 } while (--lines > 0); ef1313deafb7ba Anton Blanchard 2013-10-14 90 } ef1313deafb7ba Anton Blanchard 2013-10-14 91 f718d426d7e42e Matt Brown 2017-05-24 @92 void __xor_altivec_4(unsigned long bytes, unsigned long *v1_in, ef1313deafb7ba Anton Blanchard 2013-10-14 93 unsigned long *v2_in, unsigned long *v3_in, ef1313deafb7ba Anton Blanchard 2013-10-14 94 unsigned long *v4_in) ef1313deafb7ba Anton Blanchard 2013-10-14 95 { ef1313deafb7ba Anton Blanchard 2013-10-14 96 DEFINE(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 97 DEFINE(v2); ef1313deafb7ba Anton Blanchard 2013-10-14 98 DEFINE(v3); ef1313deafb7ba Anton Blanchard 2013-10-14 99 DEFINE(v4); ef1313deafb7ba Anton Blanchard 2013-10-14 100 unsigned long lines = bytes / (sizeof(unative_t)) / 4; ef1313deafb7ba Anton Blanchard 2013-10-14 101 ef1313deafb7ba Anton Blanchard 2013-10-14 102 do { ef1313deafb7ba Anton Blanchard 2013-10-14 103 LOAD(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 104 LOAD(v2); ef1313deafb7ba Anton Blanchard 2013-10-14 105 LOAD(v3); ef1313deafb7ba Anton Blanchard 2013-10-14 106 LOAD(v4); ef1313deafb7ba Anton Blanchard 2013-10-14 107 XOR(v1, v2); ef1313deafb7ba Anton Blanchard 2013-10-14 108 XOR(v3, v4); ef1313deafb7ba Anton Blanchard 2013-10-14 109 XOR(v1, v3); ef1313deafb7ba Anton Blanchard 2013-10-14 110 STORE(v1); ef1313deafb7ba Anton Blanchard 2013-10-14 111 ef1313deafb7ba Anton Blanchard 2013-10-14 112 v1 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 113 v2 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 114 v3 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 115 v4 += 4; ef1313deafb7ba Anton Blanchard 2013-10-14 116 } while (--lines > 0); ef1313deafb7ba Anton Blanchard 2013-10-14 117 } ef1313deafb7ba Anton Blanchard 2013-10-14 118 f718d426d7e42e Matt Brown 2017-05-24 @119 void __xor_altivec_5(unsigned long bytes, unsigned long *v1_in, :::::: The code at line 52 was first introduced by commit :::::: f718d426d7e42eec6e5d2932f52a51de23bd3b30 powerpc/lib/xor_vmx: Ensure no altivec code executes before enable_kernel_altivec() :::::: TO: Matt Brown <matthew.brown.dev@gmail.com> :::::: CC: Michael Ellerman <mpe@ellerman.id.au> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next reply other threads:[~2021-12-30 22:50 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-12-30 22:50 kernel test robot [this message] 2021-12-30 22:50 ` [ardb:xor-restrict 1/2] arch/powerpc/lib/xor_vmx.c:52:6: error: conflicting types for '__xor_altivec_2'; have 'void(long unsigned int, long unsigned int *, long unsigned int *)' kernel test robot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=202112310646.kuh2pXiG-lkp@intel.com \ --to=lkp@intel.com \ --cc=ardb@kernel.org \ --cc=kbuild-all@lists.01.org \ --cc=linux-kernel@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.