lib/raid/xor/xor-neon.c:21:9: sparse: sparse: Trying to use reserved word 'do' as identifier
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild |
|---|---|
| Message-ID | <[email protected]> |
:::::: :::::: Manual check reason: "low confidence static check warning: lib/raid/xor/xor-neon.c:21:9: sparse: sparse: Trying to use reserved word 'do' as identifier" :::::: BCC: [email protected] CC: [email protected] CC: [email protected] TO: Ard Biesheuvel <[email protected]> CC: Eric Biggers <[email protected]> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 2f1baf1fc8929e6c48370be543ad028ac7ad4131 commit: 4d3c5cbfe2b55c12ad1d866ddf0928d13d775816 xor/arm64: Use shared NEON intrinsics implementation from 32-bit ARM date: 3 months ago :::::: branch date: 21 hours ago :::::: commit date: 3 months ago config: arm64-randconfig-r133-20260814 (https://download.01.org/0day-ci/archive/20260815/[email protected]/config) compiler: aarch64-linux-gcc (GCC) 11.5.0 sparse: v0.6.5-rc1 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260815/[email protected]/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Fixes: 4d3c5cbfe2b5 ("xor/arm64: Use shared NEON intrinsics implementation from 32-bit ARM") | Reported-by: kernel test robot <[email protected]> | Closes: https://lore.kernel.org/r/[email protected]/ sparse warnings: (new ones prefixed by >>) ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34567:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34567:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: Expected ; at end of declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: got __temp ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: Expected ; at end of declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: got . ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: Expected ; at end of declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: got . ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: Expected ; at end of declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: got . ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: Expected ) in function call ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: got __temp ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: Expected ) in function call ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: got __temp ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: Expected ) in function call ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: got __temp ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: Expected ) in function declarator ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: got ( ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34568:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34570:1: sparse: sparse: Expected ; at end of declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34570:1: sparse: sparse: got __o ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34570:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34570:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34570:1: sparse: sparse: Expected ) in function declarator ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34570:1: sparse: sparse: got ( ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34570:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34570:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: Expected ; at end of declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: got __temp ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: Expected ; at end of declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: got . ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: Expected ; at end of declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: got . ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: Expected ; at end of declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: got . ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: Expected ; at end of declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: got . ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: Expected ) in function call ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: got __temp ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: Expected ) in function call ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: got __temp ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: Expected ) in function call ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: got __temp ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: Expected ) in function call ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: got __temp ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: Expected ) in function declarator ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: got ( ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34571:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34573:1: sparse: sparse: Expected ; at end of declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34573:1: sparse: sparse: got __o ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34573:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34573:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34573:1: sparse: sparse: Expected ) in function declarator ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34573:1: sparse: sparse: got ( ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34573:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34573:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34587:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34587:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34594:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34594:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34601:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34601:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34609:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34609:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34617:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34617:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34625:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34625:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34632:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34632:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34640:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34640:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34648:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34648:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34656:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34656:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34665:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34665:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34672:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34672:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34679:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34679:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34688:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34688:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34695:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34695:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34702:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34702:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34709:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34709:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34716:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34716:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34723:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34723:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34730:1: sparse: sparse: Expected ; at the end of type declaration ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:34730:1: sparse: sparse: got } lib/raid/xor/xor-neon.c:18:29: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:18:29: sparse: sparse: got v0 >> lib/raid/xor/xor-neon.c:21:9: sparse: sparse: Trying to use reserved word 'do' as identifier lib/raid/xor/xor-neon.c:21:12: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:21:12: sparse: sparse: got { lib/raid/xor/xor-neon.c:29:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:29:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:30:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:30:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:31:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:31:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:32:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:32:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:34:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:34:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:35:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:35:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:36:9: sparse: sparse: Expected ; at the end of type declaration lib/raid/xor/xor-neon.c:36:9: sparse: sparse: got } lib/raid/xor/xor-neon.c:37:1: sparse: sparse: Expected ; at the end of type declaration lib/raid/xor/xor-neon.c:37:1: sparse: sparse: got } lib/raid/xor/xor-neon.c:47:29: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:47:29: sparse: sparse: got v0 lib/raid/xor/xor-neon.c:50:9: sparse: sparse: Trying to use reserved word 'do' as identifier lib/raid/xor/xor-neon.c:50:12: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:50:12: sparse: sparse: got { lib/raid/xor/xor-neon.c:64:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:64:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:65:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:65:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:66:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:66:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:67:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:67:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:69:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:69:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:70:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:70:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:71:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:71:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:72:9: sparse: sparse: Expected ; at the end of type declaration lib/raid/xor/xor-neon.c:72:9: sparse: sparse: got } lib/raid/xor/xor-neon.c:73:1: sparse: sparse: Expected ; at the end of type declaration lib/raid/xor/xor-neon.c:73:1: sparse: sparse: got } lib/raid/xor/xor-neon.c:85:29: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:85:29: sparse: sparse: got v0 lib/raid/xor/xor-neon.c:88:9: sparse: sparse: Trying to use reserved word 'do' as identifier lib/raid/xor/xor-neon.c:88:12: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:88:12: sparse: sparse: got { lib/raid/xor/xor-neon.c:108:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:108:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:109:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:109:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:110:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:110:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:111:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:111:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:113:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:113:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:114:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:114:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:115:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:115:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:116:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:116:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:117:9: sparse: sparse: Expected ; at the end of type declaration lib/raid/xor/xor-neon.c:117:9: sparse: sparse: got } lib/raid/xor/xor-neon.c:118:1: sparse: sparse: Expected ; at the end of type declaration lib/raid/xor/xor-neon.c:118:1: sparse: sparse: got } lib/raid/xor/xor-neon.c:132:29: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:132:29: sparse: sparse: got v0 lib/raid/xor/xor-neon.c:135:9: sparse: sparse: Trying to use reserved word 'do' as identifier lib/raid/xor/xor-neon.c:135:12: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:135:12: sparse: sparse: got { lib/raid/xor/xor-neon.c:161:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:161:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:162:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:162:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:163:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:163:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:164:31: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:164:31: sparse: sparse: got + lib/raid/xor/xor-neon.c:166:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:166:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:167:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:167:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:168:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:168:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:169:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:169:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:170:21: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:170:21: sparse: sparse: got += lib/raid/xor/xor-neon.c:171:9: sparse: sparse: Expected ; at the end of type declaration lib/raid/xor/xor-neon.c:171:9: sparse: sparse: got } lib/raid/xor/xor-neon.c:172:1: sparse: sparse: Expected ; at the end of type declaration lib/raid/xor/xor-neon.c:172:1: sparse: sparse: got } lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got > >> lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Trying to use reserved word 'while' as identifier lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Trying to use reserved word 'do' as identifier lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got { lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got ! >> lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Trying to use reserved word 'if' as identifier lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ; at the end of type declaration lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got } lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ) in nested declarator lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got < lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ; at the end of type declaration lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got } lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ) in function declarator lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got == >> lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Trying to use reserved word 'if' as identifier >> lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Trying to use reserved word 'else' as identifier lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got if >> lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Trying to use reserved word 'else' as identifier lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got if >> lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Trying to use reserved word 'else' as identifier lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got __xor_neon_5 lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got -= lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ; at end of declaration lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got += lib/raid/xor/xor-neon.c:174:1: sparse: sparse: Expected ; at the end of type declaration lib/raid/xor/xor-neon.c:174:1: sparse: sparse: got } ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3164:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3164:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3171:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3171:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3178:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3178:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3185:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3185:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3192:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3192:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3199:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3199:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3206:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3206:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3213:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3213:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3220:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3220:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3227:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3227:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3234:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3234:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3241:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3241:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3248:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3248:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3255:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3255:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3264:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3264:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3271:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3271:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3278:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3278:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3285:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3285:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3292:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3292:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3299:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3299:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3306:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3306:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3313:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3313:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3320:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3320:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3327:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3327:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3334:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3334:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3341:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3341:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3348:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3348:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3355:10: sparse: sparse: undefined identifier '__b' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:3355:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6111:10: sparse: sparse: undefined identifier '__index' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6111:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6111:10: sparse: sparse: invalid initializer ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6111:10: sparse: sparse: symbol '__vec' redeclared with different type (different base types): ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6111:10: sparse: int [addressable] [toplevel] __vec ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6111:10: sparse: note: previously declared as: ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6111:10: sparse: sparse: bad constant expression ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6111:10: sparse: incomplete type [addressable] [toplevel] __vec[0] ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: sparse: undefined identifier '__index' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: sparse: invalid initializer ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: sparse: symbol '__vec' redeclared with different type (different base types): ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: sparse: bad constant expression ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: incomplete type [addressable] [toplevel] __vec[0] ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6111:10: sparse: note: previously declared as: ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6111:10: sparse: int [addressable] [toplevel] __vec ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: sparse: symbol '__vec' redeclared with different type (different base types): ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: int [addressable] [toplevel] __vec ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: note: previously declared as: ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: sparse: bad constant expression ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: incomplete type [addressable] [toplevel] __vec[0] ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6125:10: sparse: sparse: undefined identifier '__index' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6125:10: sparse: sparse: bad constant expression type ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6125:10: sparse: sparse: invalid initializer ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6125:10: sparse: sparse: symbol '__vec' redeclared with different type (different base types): ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6125:10: sparse: sparse: bad constant expression ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6125:10: sparse: incomplete type [addressable] [toplevel] __vec[0] ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: note: previously declared as: ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6118:10: sparse: int [addressable] [toplevel] __vec ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6125:10: sparse: sparse: symbol '__vec' redeclared with different type (different base types): ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6125:10: sparse: int [addressable] [toplevel] __vec ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6125:10: sparse: note: previously declared as: ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6125:10: sparse: sparse: bad constant expression ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6125:10: sparse: incomplete type [addressable] [toplevel] __vec[0] ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6132:10: sparse: sparse: undefined identifier '__index' ../lib/gcc/aarch64-linux/11.5.0/include/arm_neon.h:6132:10: sparse: sparse: bad constant expression type vim +/do +21 lib/raid/xor/xor-neon.c a967b1f51c83b6 Ard Biesheuvel 2026-04-22 11 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 12 static void __xor_neon_2(unsigned long bytes, unsigned long * __restrict p1, a967b1f51c83b6 Ard Biesheuvel 2026-04-22 13 const unsigned long * __restrict p2) a967b1f51c83b6 Ard Biesheuvel 2026-04-22 14 { a967b1f51c83b6 Ard Biesheuvel 2026-04-22 15 uint64_t *dp1 = (uint64_t *)p1; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 16 uint64_t *dp2 = (uint64_t *)p2; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 17 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 18 register uint64x2_t v0, v1, v2, v3; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 19 long lines = bytes / (sizeof(uint64x2_t) * 4); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 20 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 @21 do { a967b1f51c83b6 Ard Biesheuvel 2026-04-22 22 /* p1 ^= p2 */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 23 v0 = veorq_u64(vld1q_u64(dp1 + 0), vld1q_u64(dp2 + 0)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 24 v1 = veorq_u64(vld1q_u64(dp1 + 2), vld1q_u64(dp2 + 2)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 25 v2 = veorq_u64(vld1q_u64(dp1 + 4), vld1q_u64(dp2 + 4)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 26 v3 = veorq_u64(vld1q_u64(dp1 + 6), vld1q_u64(dp2 + 6)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 27 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 28 /* store */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 29 vst1q_u64(dp1 + 0, v0); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 30 vst1q_u64(dp1 + 2, v1); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 31 vst1q_u64(dp1 + 4, v2); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 32 vst1q_u64(dp1 + 6, v3); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 33 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 34 dp1 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 35 dp2 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 36 } while (--lines > 0); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 37 } a967b1f51c83b6 Ard Biesheuvel 2026-04-22 38 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 39 static void __xor_neon_3(unsigned long bytes, unsigned long * __restrict p1, a967b1f51c83b6 Ard Biesheuvel 2026-04-22 40 const unsigned long * __restrict p2, a967b1f51c83b6 Ard Biesheuvel 2026-04-22 41 const unsigned long * __restrict p3) a967b1f51c83b6 Ard Biesheuvel 2026-04-22 42 { a967b1f51c83b6 Ard Biesheuvel 2026-04-22 43 uint64_t *dp1 = (uint64_t *)p1; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 44 uint64_t *dp2 = (uint64_t *)p2; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 45 uint64_t *dp3 = (uint64_t *)p3; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 46 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 47 register uint64x2_t v0, v1, v2, v3; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 48 long lines = bytes / (sizeof(uint64x2_t) * 4); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 49 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 50 do { a967b1f51c83b6 Ard Biesheuvel 2026-04-22 51 /* p1 ^= p2 */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 52 v0 = veorq_u64(vld1q_u64(dp1 + 0), vld1q_u64(dp2 + 0)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 53 v1 = veorq_u64(vld1q_u64(dp1 + 2), vld1q_u64(dp2 + 2)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 54 v2 = veorq_u64(vld1q_u64(dp1 + 4), vld1q_u64(dp2 + 4)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 55 v3 = veorq_u64(vld1q_u64(dp1 + 6), vld1q_u64(dp2 + 6)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 56 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 57 /* p1 ^= p3 */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 58 v0 = veorq_u64(v0, vld1q_u64(dp3 + 0)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 59 v1 = veorq_u64(v1, vld1q_u64(dp3 + 2)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 60 v2 = veorq_u64(v2, vld1q_u64(dp3 + 4)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 61 v3 = veorq_u64(v3, vld1q_u64(dp3 + 6)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 62 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 63 /* store */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 64 vst1q_u64(dp1 + 0, v0); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 65 vst1q_u64(dp1 + 2, v1); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 66 vst1q_u64(dp1 + 4, v2); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 67 vst1q_u64(dp1 + 6, v3); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 68 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 69 dp1 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 70 dp2 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 71 dp3 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 72 } while (--lines > 0); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 73 } a967b1f51c83b6 Ard Biesheuvel 2026-04-22 74 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 75 static void __xor_neon_4(unsigned long bytes, unsigned long * __restrict p1, a967b1f51c83b6 Ard Biesheuvel 2026-04-22 76 const unsigned long * __restrict p2, a967b1f51c83b6 Ard Biesheuvel 2026-04-22 77 const unsigned long * __restrict p3, a967b1f51c83b6 Ard Biesheuvel 2026-04-22 78 const unsigned long * __restrict p4) a967b1f51c83b6 Ard Biesheuvel 2026-04-22 79 { a967b1f51c83b6 Ard Biesheuvel 2026-04-22 80 uint64_t *dp1 = (uint64_t *)p1; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 81 uint64_t *dp2 = (uint64_t *)p2; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 82 uint64_t *dp3 = (uint64_t *)p3; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 83 uint64_t *dp4 = (uint64_t *)p4; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 84 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 85 register uint64x2_t v0, v1, v2, v3; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 86 long lines = bytes / (sizeof(uint64x2_t) * 4); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 87 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 88 do { a967b1f51c83b6 Ard Biesheuvel 2026-04-22 89 /* p1 ^= p2 */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 90 v0 = veorq_u64(vld1q_u64(dp1 + 0), vld1q_u64(dp2 + 0)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 91 v1 = veorq_u64(vld1q_u64(dp1 + 2), vld1q_u64(dp2 + 2)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 92 v2 = veorq_u64(vld1q_u64(dp1 + 4), vld1q_u64(dp2 + 4)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 93 v3 = veorq_u64(vld1q_u64(dp1 + 6), vld1q_u64(dp2 + 6)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 94 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 95 /* p1 ^= p3 */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 96 v0 = veorq_u64(v0, vld1q_u64(dp3 + 0)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 97 v1 = veorq_u64(v1, vld1q_u64(dp3 + 2)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 98 v2 = veorq_u64(v2, vld1q_u64(dp3 + 4)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 99 v3 = veorq_u64(v3, vld1q_u64(dp3 + 6)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 100 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 101 /* p1 ^= p4 */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 102 v0 = veorq_u64(v0, vld1q_u64(dp4 + 0)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 103 v1 = veorq_u64(v1, vld1q_u64(dp4 + 2)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 104 v2 = veorq_u64(v2, vld1q_u64(dp4 + 4)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 105 v3 = veorq_u64(v3, vld1q_u64(dp4 + 6)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 106 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 107 /* store */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 108 vst1q_u64(dp1 + 0, v0); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 109 vst1q_u64(dp1 + 2, v1); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 110 vst1q_u64(dp1 + 4, v2); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 111 vst1q_u64(dp1 + 6, v3); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 112 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 113 dp1 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 114 dp2 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 115 dp3 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 116 dp4 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 117 } while (--lines > 0); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 118 } a967b1f51c83b6 Ard Biesheuvel 2026-04-22 119 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 120 static void __xor_neon_5(unsigned long bytes, unsigned long * __restrict p1, a967b1f51c83b6 Ard Biesheuvel 2026-04-22 121 const unsigned long * __restrict p2, a967b1f51c83b6 Ard Biesheuvel 2026-04-22 122 const unsigned long * __restrict p3, a967b1f51c83b6 Ard Biesheuvel 2026-04-22 123 const unsigned long * __restrict p4, a967b1f51c83b6 Ard Biesheuvel 2026-04-22 124 const unsigned long * __restrict p5) a967b1f51c83b6 Ard Biesheuvel 2026-04-22 125 { a967b1f51c83b6 Ard Biesheuvel 2026-04-22 126 uint64_t *dp1 = (uint64_t *)p1; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 127 uint64_t *dp2 = (uint64_t *)p2; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 128 uint64_t *dp3 = (uint64_t *)p3; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 129 uint64_t *dp4 = (uint64_t *)p4; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 130 uint64_t *dp5 = (uint64_t *)p5; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 131 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 132 register uint64x2_t v0, v1, v2, v3; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 133 long lines = bytes / (sizeof(uint64x2_t) * 4); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 134 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 135 do { a967b1f51c83b6 Ard Biesheuvel 2026-04-22 136 /* p1 ^= p2 */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 137 v0 = veorq_u64(vld1q_u64(dp1 + 0), vld1q_u64(dp2 + 0)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 138 v1 = veorq_u64(vld1q_u64(dp1 + 2), vld1q_u64(dp2 + 2)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 139 v2 = veorq_u64(vld1q_u64(dp1 + 4), vld1q_u64(dp2 + 4)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 140 v3 = veorq_u64(vld1q_u64(dp1 + 6), vld1q_u64(dp2 + 6)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 141 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 142 /* p1 ^= p3 */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 143 v0 = veorq_u64(v0, vld1q_u64(dp3 + 0)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 144 v1 = veorq_u64(v1, vld1q_u64(dp3 + 2)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 145 v2 = veorq_u64(v2, vld1q_u64(dp3 + 4)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 146 v3 = veorq_u64(v3, vld1q_u64(dp3 + 6)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 147 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 148 /* p1 ^= p4 */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 149 v0 = veorq_u64(v0, vld1q_u64(dp4 + 0)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 150 v1 = veorq_u64(v1, vld1q_u64(dp4 + 2)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 151 v2 = veorq_u64(v2, vld1q_u64(dp4 + 4)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 152 v3 = veorq_u64(v3, vld1q_u64(dp4 + 6)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 153 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 154 /* p1 ^= p5 */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 155 v0 = veorq_u64(v0, vld1q_u64(dp5 + 0)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 156 v1 = veorq_u64(v1, vld1q_u64(dp5 + 2)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 157 v2 = veorq_u64(v2, vld1q_u64(dp5 + 4)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 158 v3 = veorq_u64(v3, vld1q_u64(dp5 + 6)); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 159 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 160 /* store */ a967b1f51c83b6 Ard Biesheuvel 2026-04-22 161 vst1q_u64(dp1 + 0, v0); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 162 vst1q_u64(dp1 + 2, v1); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 163 vst1q_u64(dp1 + 4, v2); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 164 vst1q_u64(dp1 + 6, v3); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 165 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 166 dp1 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 167 dp2 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 168 dp3 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 169 dp4 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 170 dp5 += 8; a967b1f51c83b6 Ard Biesheuvel 2026-04-22 171 } while (--lines > 0); a967b1f51c83b6 Ard Biesheuvel 2026-04-22 172 } a967b1f51c83b6 Ard Biesheuvel 2026-04-22 173 a967b1f51c83b6 Ard Biesheuvel 2026-04-22 @174 __DO_XOR_BLOCKS(neon_inner, __xor_neon_2, __xor_neon_3, __xor_neon_4, a967b1f51c83b6 Ard Biesheuvel 2026-04-22 175 __xor_neon_5); 4d3c5cbfe2b55c Ard Biesheuvel 2026-04-22 176 :::::: The code at line 21 was first introduced by commit :::::: a967b1f51c83b65372a93d652a888e3addd9c5a3 xor/arm: Replace vectorized implementation with arm64's intrinsics :::::: TO: Ard Biesheuvel <[email protected]> :::::: CC: Eric Biggers <[email protected]> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki