compiler/floatingpoint/TestSubNodeFloatDoubleNegation.java fails IR verification

XMLWordPrintable

    • b26

        Run this test with fastdebug build on platforms without native support for float16:

        $ make test TEST="compiler/floatingpoint/TestSubNodeFloatDoubleNegation.java"

        ```
        One or more @IR rules failed:

        Failed IR Rules (1) of Methods (1)
        ----------------------------------
        1) Method "public static jdk.incubator.vector.Float16 compiler.floatingpoint.TestSubNodeFloatDoubleNegation.testHalfFloat(jdk.incubator.vector.Float16)" - [Failed IR rules: 1]:
           * @IR rule 5: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#SUB#_", "2"}, applyIfPlatform={"riscv64", "true"}, failOn={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={"zfh", "false"}, applyIfAnd={}, applyIfNot={})"
             > Phase "PrintIdeal":
               - counts: Graph contains wrong number of nodes:
                 * Constraint 1: "(\d+(\s){2}(Sub(I|L|F|D|HF).*)+(\s){2}===.*)"
                   - Failed comparison: [found] 3 = 2 [given]
                     - Matched nodes (3):
                       * 400 SubF === _ 954 398 [[ 528 479 446 472 472 470 470 ]] !jvms: Float16::subtract @ bci:8 (line 1185) TestSubNodeFloatDoubleNegation::testHalfFloat @ bci:9 (line 67)
                       * 516 SubI === _ 22 515 [[ 528 ]] !jvms: Float::floatToFloat16 @ bci:71 (line 1172) Float16::valueOf @ bci:5 (line 361) Float16::subtract @ bci:9 (line 1185) TestSubNodeFloatDoubleNegation::testHalfFloat @ bci:9 (line 67)
                       * 861 SubI === _ 22 860 [[ 873 ]] !jvms: Float::floatToFloat16 @ bci:71 (line 1172) Float16::valueOf @ bci:5 (line 361) Float16::subtract @ bci:9 (line 1185) TestSubNodeFloatDoubleNegation::testHalfFloat @ bci:12 (line 65)

        >>> Check stdout for compilation output of the failed methods
        ```

        The reason is that method `Float::floatToFloat16` is inlined into method `TestSubNodeFloatDoubleNegation.testHalfFloat`, which causes unexpected IR graph. One way to fix this would be disabling inlining of methods from the Float class.

              Assignee:
              Fei Yang
              Reporter:
              Fei Yang
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: