From ae2429262f3b52e048c6b60b672211cfd3866312 Mon Sep 17 00:00:00 2001 From: Jatin Bhateja Date: Fri, 23 Jan 2026 06:26:11 +0000 Subject: [PATCH] Review comments resolutions --- src/hotspot/share/opto/vectorIntrinsics.cpp | 6 +++--- src/hotspot/share/opto/vectornode.cpp | 16 +++++++--------- src/hotspot/share/opto/vectornode.hpp | 1 + .../classes/jdk/incubator/vector/ByteVector.java | 1 - .../jdk/incubator/vector/DoubleVector.java | 1 - .../jdk/incubator/vector/FloatVector.java | 1 - .../classes/jdk/incubator/vector/IntVector.java | 1 - .../classes/jdk/incubator/vector/LongVector.java | 1 - .../jdk/incubator/vector/ShortVector.java | 1 - .../jdk/incubator/vector/X-Vector.java.template | 1 - 10 files changed, 11 insertions(+), 19 deletions(-) diff --git a/src/hotspot/share/opto/vectorIntrinsics.cpp b/src/hotspot/share/opto/vectorIntrinsics.cpp index a5b4a6ca68d..b0e8f7c4863 100644 --- a/src/hotspot/share/opto/vectorIntrinsics.cpp +++ b/src/hotspot/share/opto/vectorIntrinsics.cpp @@ -1703,14 +1703,14 @@ bool LibraryCallKit::inline_vector_slice() { return false; // should be primitive type } - int num_elem = vlen->get_con(); - BasicType elem_bt = elem_type->basic_type(); - if (!origin->is_con()) { log_if_needed(" ** vector slice from non-constant index not supported"); return false; } + int num_elem = vlen->get_con(); + BasicType elem_bt = elem_type->basic_type(); + if (!arch_supports_vector(Op_VectorSlice, num_elem, elem_bt, VecMaskNotUsed)) { log_if_needed(" ** not supported: arity=2 op=slice vlen=%d etype=%s", num_elem, type2name(elem_bt)); diff --git a/src/hotspot/share/opto/vectornode.cpp b/src/hotspot/share/opto/vectornode.cpp index 5aa242b30e1..a318e997543 100644 --- a/src/hotspot/share/opto/vectornode.cpp +++ b/src/hotspot/share/opto/vectornode.cpp @@ -2437,15 +2437,13 @@ Node* UMaxVNode::Identity(PhaseGVN* phase) { } Node* VectorSliceNode::Identity(PhaseGVN* phase) { - if (origin()->is_Con()) { - jint index = origin()->get_int(); - uint vlen = vect_type()->length_in_bytes(); - if (vlen == (uint)index) { - return vec2(); - } - if (index == 0) { - return vec1(); - } + jint index = origin()->get_int(); + uint vlen = vect_type()->length_in_bytes(); + if (vlen == (uint) index) { + return vec2(); + } + if (index == 0) { + return vec1(); } return this; } diff --git a/src/hotspot/share/opto/vectornode.hpp b/src/hotspot/share/opto/vectornode.hpp index b18702fd258..bdb30a4404d 100644 --- a/src/hotspot/share/opto/vectornode.hpp +++ b/src/hotspot/share/opto/vectornode.hpp @@ -1696,6 +1696,7 @@ class VectorSliceNode : public VectorNode { public: VectorSliceNode(Node* vec1, Node* vec2, Node* origin, const TypeVect* vt) : VectorNode(vec1, vec2, origin, vt) { + assert(origin->is_Con(), "origin must be a constant"); } virtual int Opcode() const; diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java index 9be8355b2f4..9939bf9cf1f 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java @@ -2304,7 +2304,6 @@ public abstract class ByteVector extends AbstractVector { public abstract ByteVector slice(int origin, Vector v1); - /*package-private*/ final @ForceInline diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleVector.java index a9afc3a87f7..1e4264f0770 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleVector.java @@ -2158,7 +2158,6 @@ public abstract class DoubleVector extends AbstractVector { public abstract DoubleVector slice(int origin, Vector v1); - /*package-private*/ final @ForceInline diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatVector.java index 260b2ac38dc..749c9764daf 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatVector.java @@ -2170,7 +2170,6 @@ public abstract class FloatVector extends AbstractVector { public abstract FloatVector slice(int origin, Vector v1); - /*package-private*/ final @ForceInline diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java index 7298fe2133e..5a58df04015 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java @@ -2289,7 +2289,6 @@ public abstract class IntVector extends AbstractVector { public abstract IntVector slice(int origin, Vector v1); - /*package-private*/ final @ForceInline diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java index 651bc62a984..01cf6a039e7 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java @@ -2155,7 +2155,6 @@ public abstract class LongVector extends AbstractVector { public abstract LongVector slice(int origin, Vector v1); - /*package-private*/ final @ForceInline diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java index cc2c62536c5..16609304d83 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java @@ -2305,7 +2305,6 @@ public abstract class ShortVector extends AbstractVector { public abstract ShortVector slice(int origin, Vector v1); - /*package-private*/ final @ForceInline diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template index 7129b0c0bce..f5b17f3e1d4 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template @@ -2717,7 +2717,6 @@ public abstract class $abstractvectortype$ extends AbstractVector<$Boxtype$> { public abstract $abstractvectortype$ slice(int origin, Vector<$Boxtype$> v1); - /*package-private*/ final @ForceInline