All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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: link
Be 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.