On Thu, 13 Nov 2025 09:25:34 GMT, Jatin Bhateja <[email protected]> wrote:
> > The basic type codes are declared and shared across Java and HotSpot - it's
> > used in `LaneType`. Can we pass a single argument that is the basic type
> > instead of two arguments. HotSpot should know from the basic type what the
> > carrier class and also what the operation type without it being explicitly
> > told, since presumably it knew the inverse - the basic type from the
> > element class.
>
> Hi @PaulSandoz, T_HALFFLOAT used in LaneType is mainly used for
> differentiation of various cache keys used by conversion operation lookups.
> In principle, we can extend VM to acknowledge this new custom basic type on
> the lines of T_METADATA / T_ADDRESS; its scope for now will be restricted to
> VectorSupport. We can gradually expose this to C2 type, such that TypeVect
> for all Float16 VectorIR uses T_HALFFLOAT as its basic type; currently, we
> use T_SHORT as the lane type. Let me know if this looks reasonable
I am proposing something simpler, really as a temporary step until `Float16`
becomes part of the `java.base` module. IIUC from the basic type we can
reliably determine what the two arguments we currently passing are e.g.,
T_HALFFLOAT = { short.class, VECTOR_TYPE_FP16 }. So we don't need to pass two
arguments, we can just pass one, the intrinsic can lookup the class and
operation type kind.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/28002#issuecomment-3529452461