Merge ARM NEON for Windows Store branches into Master

13 views
Skip to first unread message

Jeffrey Walton

unread,
May 15, 2016, 1:49:18 AM5/15/16
to Crypto++ Users
Hi Everyone,

I think we are at the point we can merge arm-neon and windows-store into master.

Both arm-neon and windows-store are clean compiling as separate branches. I've tested arm-neon on-device, and its testing OK. I believe Геннадий has tested windows-store on-device given the patches he has submitted.

I also hand merged arm-neon into windows-store and tested a compile. The combination tested OK. (As a side note, Visual Studio 2012 compilers and above can consume NEON intrinsics, so BLAKE2_NEON_Compress32 and BLAKE2_NEON_Compress64 are cross-platform. I also understand Microsoft's compiler is quite good at optimizing for NEON, so I expect the benchmark numbers for BLAKE2 will be very good for Windows Phone and Windows Store).

Does anyone have any objections to merging arm-neon and windows-store into master?

Jeff


Jeffrey Walton

unread,
May 15, 2016, 3:22:53 AM5/15/16
to Crypto++ Users

The detection code was checked-in at http://github.com/weidai11/cryptopp/commit/01f77765d4387009d72b49f17721ddf103a0e753. The detection code only recognizes ARM, NEON, Windows Phone and Windows Store; and it only affects config.h, config.recommend, cpu.h and cpu.cpp.

Adding the detection code to Master early makes it easier to test combinations like arm-neon merged into windows-store. It also allows us to test other unrelated source files, like SHA and ARMv8-a.

The "meat and potatoes" of arm-neon and windows-store are the changes to source files, and they will be checked-in once it appears its OK.

Jeff

Jeffrey Walton

unread,
May 17, 2016, 11:19:58 AM5/17/16
to Crypto++ Users

The `windows-store` branch was merged into `master`. This various issue opened for Windows Phone and Windows Store support are now resolved.

Git does not provide a log entry for the merge (or I cannot find it), so I don't have a record to offer for the transaction.

The next to be merged is arm-neon branch. We still have a few minor wrinkles to iron out.

Jeff

Jeffrey Walton

unread,
May 20, 2016, 3:10:46 PM5/20/16
to Crypto++ Users

The `arm-neon` branch was merged into `master`. It includes the NEON implementations of BLAKE2.

Git does not provide a log entry for the merge, so I don't have a record to offer for the transaction. I recently learned I have to do something special to have Git generate a log entry and avoid polluting Master's logs with problems that did not exist in Master (http://stackoverflow.com/questions/5308816/how-to-use-git-merge-squash).

I think we should keep arm-neon around for additional ports to arm-neon. We have detection code for ARM's AES, SHA1 and SHA2 extensions, so there's opportunities available for anyone interested in the port. We can also port anything with SSE2. With respect to SSE2, I've found the specialized NEON implementations based on SSE2 outperform the native code generated from C++ by about 3 cycles per byte.

Jeff
Reply all
Reply to author
Forward
0 new messages