On Wed, 25 Oct 2023 16:35:30 GMT, Chris Hegarty <che...@openjdk.org> wrote:
>> test/jdk/jdk/incubator/vector/AbstractVectorLoadStoreTest.java line 118: >> >>> 116: private static boolean canBeConverted(IntFunction<MemorySegment> >>> function, ValueLayout elementLayout) { >>> 117: // Create a sample to analyze >>> 118: MemorySegment s = function.apply(Long.BYTES); >> >> I believe that a good way to test this is the following: >> * each vector type operates as having a given element layout - for instance, >> you can imagine the layout for IntVector to be `JAVA_INT` and so forth >> * asking whether you load a segment into a vector is the same as asking >> whether you can access the segment, at offset 0L, with the layout associated >> with the vector (see above) - that is if MS::get throws, then vector load >> should also throw (and viceversa) > > Vectors use and have in their docs, a layout with a byte alignment of 1. e.g. > from `IntVector` > > > ValueLayout.OfInt ELEMENT_LAYOUT = ValueLayout.JAVA_INT.withByteAlignment(1) > > > Can the `fromMemorySegment` not just behave similarly? I get that alignment > is preferable, but does it need to be enforced? If so, then maybe the > `ELEMENT_LAYOUT` and example in the javadoc needs to be updated. I've removed the alignment checks. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/16360#discussion_r1372844356