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

Aarch64: Fix JTREG test - hotspot/jtreg/compiler/vectorization/TestFloat16VectorOperations.java failure on 256-bit SVE machines

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: P4 P4
    • 26
    • 25
    • hotspot

      After this commit - https://github.com/openjdk/jdk/commit/a49ecb26c5ff2f949851937f3bb036d7946a103e the JTREG test - hotspot/jtreg/compiler/vectorization/TestFloat16VectorOperations.java fails for some of the tests which contain constant values such as -

      public void vectorAddConstInputFloat16() {
               for (int i = 0; i < LEN; ++i) {
                   output[i] = float16ToRawShortBits(add(shortBitsToFloat16(input1[i]), FP16_CONST));
               }
           }

      The failure that's observed -

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (/home/ent-user/ci-scripts/jdk_build/jdk_src/src/hotspot/cpu/aarch64/assembler_aarch64.hpp:3760), pid=2751988, tid=2752010
      # guarantee(false) failed: invalid immediate
      #
      # JRE version: OpenJDK Runtime Environment (26.0) (fastdebug build 26-internal-git-1b3cf1166)
      # Java VM: OpenJDK 64-Bit Server VM (fastdebug 26-internal-git-1b3cf1166, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
      # Problematic frame:
      # V [libjvm.so+0x47f128] Assembler::sve_dup(FloatRegister, Assembler::SIMD_RegVariant, int)+0x128
      #
      # Core dump will be written. Default location: /tmp/core.2751988

      This is because sve_dup instruction does not accept 16-bit immediates. The fix involves removing that part of the code.

            bkilambi Bhavana Kilambi
            bkilambi Bhavana Kilambi
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: