RFR: 8291809: Convert compiler/c2/cr7200264/TestSSE2IntVect.java to IR verification test [v2]
Christian Hagedorn
chagedorn at openjdk.org
Thu Jan 25 09:35:29 UTC 2024
On Wed, 24 Jan 2024 13:50:19 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:
>> I was curious about that and it actually does:
>>
>> TraceNewVectors [SuperWord]: 744 LoadVector === 380 693 677 [[ 675 671 669 664 660 658 558 554 552 145 150 154 ]] @int[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=5; mismatched #vectorx[4]:{int} !orig=[676],[559],[134] !jvms: Test::test_divc @ bci:12 (line 36)
>> TraceNewVectors [SuperWord]: 746 RShiftVI === _ 744 745 [[ 668 657 551 155 ]] #vectorx[4]:{int} !orig=[669],[552],[154] !jvms: Test::test_divc @ bci:15 (line 36)
>> TraceNewVectors [SuperWord]: 747 VectorCastI2X === _ 744 [[ 674 663 557 146 ]] #vectory[4]:{long} !orig=[675],[558],[145] !jvms: Test::test_divc @ bci:15 (line 36)
>> TraceNewVectors [SuperWord]: 748 Replicate === _ 144 [[ ]] #vectory[4]:{long}
>> TraceNewVectors [SuperWord]: 749 MulVL === _ 747 748 [[ 673 662 556 148 ]] #vectory[4]:{long} !orig=[674],[557],[146] !jvms: Test::test_divc @ bci:15 (line 36)
>> TraceNewVectors [SuperWord]: 751 RShiftVL === _ 749 750 [[ 672 661 555 149 ]] #vectory[4]:{long} !orig=[673],[556],[148] !jvms: Test::test_divc @ bci:15 (line 36)
>> TraceNewVectors [SuperWord]: 752 VectorCastL2X === _ 751 [[ 671 660 554 150 ]] #vectorx[4]:{int} !orig=[672],[555],[149] !jvms: Test::test_divc @ bci:15 (line 36)
>> TraceNewVectors [SuperWord]: 753 AddVI === _ 752 744 [[ 670 659 553 152 ]] #vectorx[4]:{int} !orig=[671],[554],[150] !jvms: Test::test_divc @ bci:15 (line 36)
>> TraceNewVectors [SuperWord]: 755 RShiftVI === _ 753 754 [[ 668 657 551 155 ]] #vectorx[4]:{int} !orig=[670],[553],[152] !jvms: Test::test_divc @ bci:15 (line 36)
>> TraceNewVectors [SuperWord]: 756 SubVI === _ 755 746 [[ 666 656 549 176 ]] #vectorx[4]:{int} !orig=[668],[551],[155] !jvms: Test::test_divc @ bci:15 (line 36)
>> TraceNewVectors [SuperWord]: 757 StoreVector === 687 693 667 756 [[ 374 693 372 179 ]] @int[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=5; mismatched Memory: @int[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=5; !orig=[666],[549],[176],575 !jvms: Test::test_divc @ bci:16 (line 36)
>>
>> I have not checked any other methods but it might indeed be possible to vectorize some them. I think it's a good idea to check all methods and add a comment with a short explanation why it's not possible or if there are plans to support vectorization in the future. All these tests look like a good collection of (seemingly good) vectorization opportuniti...
>
> Should we also add checks for these vectors (same for `test_divc_n()`)?
> @chhagedorn: Do you mean that `test_divc` and `test_divc_n` vectorize after JDK-8282365? They don't vectorize on my machine (on this PR).
Ah, I see. Yes, as for Roberto, it does vectorize on my machine as well.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17428#discussion_r1466086887
More information about the hotspot-compiler-dev
mailing list