diff options
| author | Dr Ian Preston <157221403+ianopolousfast@users.noreply.github.com> | 2024-01-28 21:39:17 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-28 22:39:17 +0100 |
| commit | 3a790c99b9d8c4c4ede49f73503e8ba3bf0a64aa (patch) | |
| tree | 6b33f5b925fdd2d7c154f910eb651bf371bf588e /src/main/java/dev/morling/onebrc/CalculateAverage_ianopolousfast.java | |
| parent | bb9bc68e4111f5a67ff3931d634bd8815ad9c97a (diff) | |
Reduce preferred vector size (#622)
Co-authored-by: Ian Preston <ianopolous@protonmail.com>
Diffstat (limited to 'src/main/java/dev/morling/onebrc/CalculateAverage_ianopolousfast.java')
| -rw-r--r-- | src/main/java/dev/morling/onebrc/CalculateAverage_ianopolousfast.java | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/main/java/dev/morling/onebrc/CalculateAverage_ianopolousfast.java b/src/main/java/dev/morling/onebrc/CalculateAverage_ianopolousfast.java index 28f62a4..417abcf 100644 --- a/src/main/java/dev/morling/onebrc/CalculateAverage_ianopolousfast.java +++ b/src/main/java/dev/morling/onebrc/CalculateAverage_ianopolousfast.java @@ -49,9 +49,9 @@ public class CalculateAverage_ianopolousfast { public static final int MAX_LINE_LENGTH = 107; public static final int MAX_STATIONS = 1 << 14; private static final OfLong LONG_LAYOUT = JAVA_LONG_UNALIGNED.withOrder(ByteOrder.BIG_ENDIAN); - private static final VectorSpecies<Byte> BYTE_SPECIES = ByteVector.SPECIES_PREFERRED.length() >= 32 - ? ByteVector.SPECIES_256 - : ByteVector.SPECIES_128; + private static final VectorSpecies<Byte> BYTE_SPECIES = ByteVector.SPECIES_PREFERRED.length() >= 16 + ? ByteVector.SPECIES_128 + : ByteVector.SPECIES_64; public static void main(String[] args) throws Exception { Arena arena = Arena.global(); @@ -132,7 +132,7 @@ public class CalculateAverage_ianopolousfast { if (keySize <= 8) { first8 = maskHighBytes(first8, keySize & 0x07); } - else if (keySize <= 16) { + else if (keySize < 16) { second8 = maskHighBytes(buffer.get(LONG_LAYOUT, lineStart + 8), keySize & 0x07); } else if (keySize == BYTE_SPECIES.vectorByteSize()) { @@ -182,7 +182,7 @@ public class CalculateAverage_ianopolousfast { if (keySize <= 8) { first8 = maskHighBytes(first8, keySize & 0x07); } - else if (keySize <= 16) { + else if (keySize < 16) { second8 = maskHighBytes(buffer.get(LONG_LAYOUT, lineStart + 8), keySize & 0x07); } else if (keySize == BYTE_SPECIES.vectorByteSize()) { |
