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

Remove in-place conversion vector operators from Vector API

XMLWordPrintable

    • Icon: CSR CSR
    • Resolution: Approved
    • Icon: P4 P4
    • 16
    • core-libs
    • None
    • minimal
    • Since the API has not been released there are no compatibility risks.
    • Java API
    • JDK

      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}

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

              Created:
              Updated:
              Resolved: