Libraryless. Compilation Failed (56L/1K).
import jdk.incubator.vector.*; static int countDifferingBits_vectorAPI(long[] array1, long[] array2, int i1) { VectorSpecies<Long> SPECIES = LongVector.SPECIES_PREFERRED; int diff = 0; int n = array1.length; var upperBound = SPECIES.loopBound(n); var i = 0; for (; i < upperBound; i += SPECIES.length()) { var vector1 = LongVector.fromArray(SPECIES, array1, i); var vector2 = LongVector.fromArray(SPECIES, array2, i1+i); var xored = vector1.lanewise(VectorOperators.XOR, vector2); var bitCount = xored.lanewise(VectorOperators.BIT_COUNT); diff += (int) bitCount.reduceLanes(VectorOperators.ADD); } // Compute elements not fitting in the vector alignment. for (; i < n; i++) diff += Long.bitCount(array1[i]^array2[i1+i]); ret diff; }
Began life as a copy of #1030540
download show line numbers debug dex old transpilations
Travelled to 2 computer(s): mqqgnosmbjvj, wnsclhtenguj
No comments. add comment
Snippet ID: | #1036056 |
Snippet name: | countDifferingBits_vectorAPI [for JDK 19, OK but slower than unvectorized] |
Eternal ID of this version: | #1036056/19 |
Text MD5: | cd0bcc9c44bdb6f682bb5a9a45e9b764 |
Transpilation MD5: | 1d3886404fdefec873ec7ef6ee8a0bf6 |
Author: | stefan |
Category: | javax |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2022-09-06 23:32:03 |
Source code size: | 809 bytes / 24 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 159 / 275 |
Version history: | 18 change(s) |
Referenced in: | #1036088 - countDifferingBits_1024bit_vectorAPI [for JDK 19, OK but slower than unvectorized] |