mirror of
https://github.com/openjdk/jdk.git
synced 2026-01-28 03:58:21 +00:00
Remove IR rules from TestMemorySegment methods where vectorization depends on backing store type
This commit is contained in:
parent
2cb35a3ba7
commit
23eff0db71
@ -33,7 +33,7 @@ import java.lang.foreign.*;
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* @test id=byte-array
|
* @test id=byte-array
|
||||||
* @bug 8329273
|
* @bug 8329273 8356184
|
||||||
* @key randomness
|
* @key randomness
|
||||||
* @summary Test vectorization of loops over MemorySegment
|
* @summary Test vectorization of loops over MemorySegment
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
@ -154,7 +154,7 @@ import java.lang.foreign.*;
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* @test id=byte-buffer
|
* @test id=byte-buffer
|
||||||
* @bug 8329273
|
* @bug 8329273 8356184
|
||||||
* @summary Test vectorization of loops over MemorySegment
|
* @summary Test vectorization of loops over MemorySegment
|
||||||
* @library /test/lib /
|
* @library /test/lib /
|
||||||
* @run driver compiler.loopopts.superword.TestMemorySegment ByteBuffer
|
* @run driver compiler.loopopts.superword.TestMemorySegment ByteBuffer
|
||||||
@ -613,12 +613,9 @@ class TestMemorySegmentImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@IR(counts = {IRNode.LOAD_VECTOR_B, "= 0",
|
// 8356184: Vectorization depends on backing store type - heap byte[] segments (ByteArray, ByteBuffer)
|
||||||
IRNode.ADD_VB, "= 0",
|
// vectorize due to RCE handling ConvI2L(iv + invar), while native/other segment types don't.
|
||||||
IRNode.STORE_VECTOR, "= 0"},
|
// No IR rule since we can't distinguish provider types in IR framework conditions.
|
||||||
applyIfPlatform = {"64-bit", "true"},
|
|
||||||
applyIfCPUFeatureOr = {"sse4.1", "true", "asimd", "true", "rvv", "true"})
|
|
||||||
// FAILS: RangeCheck cannot be eliminated because of int_index
|
|
||||||
static Object[] testIntLoop_intIndex_intInvar_byte(MemorySegment a, int invar) {
|
static Object[] testIntLoop_intIndex_intInvar_byte(MemorySegment a, int invar) {
|
||||||
for (int i = 0; i < (int)a.byteSize(); i++) {
|
for (int i = 0; i < (int)a.byteSize(); i++) {
|
||||||
int int_index = i + invar;
|
int int_index = i + invar;
|
||||||
@ -804,12 +801,9 @@ class TestMemorySegmentImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@IR(counts = {IRNode.LOAD_VECTOR_B, "= 0",
|
// 8356184: Vectorization depends on backing store type - heap byte[] segments (ByteArray, ByteBuffer)
|
||||||
IRNode.ADD_VB, "= 0",
|
// vectorize due to RCE handling ConvI2L(iv + invar), while native/other segment types don't.
|
||||||
IRNode.STORE_VECTOR, "= 0"},
|
// No IR rule since we can't distinguish provider types in IR framework conditions.
|
||||||
applyIfPlatform = {"64-bit", "true"},
|
|
||||||
applyIfCPUFeatureOr = {"sse4.1", "true", "asimd", "true", "rvv", "true"})
|
|
||||||
// FAILS: RangeCheck cannot be eliminated because of int_index
|
|
||||||
static Object[] testLongLoop_intIndex_intInvar_byte(MemorySegment a, int invar) {
|
static Object[] testLongLoop_intIndex_intInvar_byte(MemorySegment a, int invar) {
|
||||||
for (long i = 0; i < a.byteSize(); i++) {
|
for (long i = 0; i < a.byteSize(); i++) {
|
||||||
int int_index = (int)(i + invar);
|
int int_index = (int)(i + invar);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user