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

C2 SuperWord: Long/Integer.compareUnsigned return wrong value in SLP

XMLWordPrintable

      Currently, Long/Integer.compareUnsigned return wrong value in SLP, and seems no existing tests cover the issue.

      check https://github.com/openjdk/jdk/pull/27942#discussion_r2454610981 for more information.

      ====== following copied from JDK-8370454 ======

      Currently, in SLP if we support transformation from (Bool + CmpU + CMove) to (VectorMaskCmp + VectorBlend), the unsigned comparison information is lost, it's in CmpU, but current code only check Bool for the information. For details please check code at `SuperWordVTransformBuilder::make_vector_vtnode_for_pack` and `PackSet::get_bool_test`.

      This loss of unsigned comparison information blocks the optimization proposed in https://github.com/openjdk/jdk/pull/25336 and https://github.com/openjdk/jdk/pull/25341.

            mli Hamlin Li
            mli Hamlin Li
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: