Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8256678

Remove in-place conversion vector operators from Vector API

    XMLWordPrintable

    Details

    • Type: CSR
    • Status: Closed
    • Priority: P4
    • Resolution: Approved
    • Fix Version/s: 16
    • Component/s: core-libs
    • Labels:
      None
    • Compatibility Risk:
      minimal
    • Compatibility Risk Description:
      Since the API has not been released there are no compatibility risks.
    • Interface Kind:
      Java API
    • Scope:
      JDK

      Description

      Summary

      Remove unimplemented In-place conversion operators.

      Problem

      The Vector API declares in-place conversion operators, but the implementation does not implement them. This was an oversight that was missed when the JEP was integrated.

      Solution

      Remove the in-place conversion operators. They will likely be added back, with implementations, in the next round of incubation.

      Specification

      The following methods are removed from VectorOperators.Conversion:

      ofNarrowing
      ofWidening

      The following fields are removed VectorOperators:

      INPLACE_D2B
      INPLACE_D2F
      INPLACE_D2I
      INPLACE_D2S
      INPLACE_F2B
      INPLACE_F2S
      INPLACE_I2B
      INPLACE_I2S
      INPLACE_L2B
      INPLACE_L2F
      INPLACE_L2I
      INPLACE_L2S 
      INPLACE_S2B
      INPLACE_B2D
      INPLACE_B2F
      INPLACE_B2I
      INPLACE_B2L
      INPLACE_B2S
      INPLACE_F2D
      INPLACE_F2L 
      INPLACE_I2D
      INPLACE_I2L
      INPLACE_S2D
      INPLACE_S2F 
      INPLACE_S2I
      INPLACE_S2L

      The method documentation of Vector.convert was modified to remove relevant text as follows:

          @@ -3075,22 +3075,10 @@
            * <p> If a reinterpreting conversion contracts, it will truncate the
            * upper bits of the input.  If it expands, it will pad upper bits
            * of the output with zero bits, when there are no corresponding
            * input bits.
            *
      -     * <p> As another variation of behavior, an in-place conversion
      -     * can incorporate an expanding or contracting conversion, while
      -     * retaining the same lane size between input and output.
      -     *
      -     * In the case of a contraction, the lane value is first converted
      -     * to the smaller value, and then zero-padded (as if by a subsequent
      -     * reinterpretation) before storing into the output lane.
      -     *
      -     * In the case of an expansion, the lane value is first truncated
      -     * to the smaller value (as if by an initial reinterpretation),
      -     * and then converted before storing into the output lane.
      -     *
            * <p> An expanding conversion such as {@code S2I} ({@code short}
            * value to {@code int}) takes a scalar value and represents it
            * in a larger format (always with some information redundancy).
            *
            * A contracting conversion such as {@code D2F} ({@code double}

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              sviswanathan Sandhya Viswanathan
              Reporter:
              sviswanathan Sandhya Viswanathan
              Reviewed By:
              Paul Sandoz
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: