[lworld+vector] RFR: 8307715: Integrate VectorMask/Shuffle with value/primitive classes [v7]

Jatin Bhateja jbhateja at openjdk.org
Mon May 29 06:50:22 UTC 2023


On Mon, 29 May 2023 06:44:31 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>>> Thanks, did not do a test re-run with latest patch as there were several regressions in pervious one, one quick comment, kindly set can_optimize = false before following line,
>> https://github.com/openjdk/valhalla/pull/845/files#diff-e368502932198721c3ee52ace2397c5a9c6281930e83fc53a429573f6adf44fcR2584
>> 
>> It seems not right setting `can_optimize = false` before line-2584 for me. This will break the inner loop anyway, since it doesn't set `can_optimize = true` in the followed code, does it?
>
>> > Thanks, did not do a test re-run with latest patch as there were several regressions in pervious one, one quick comment, kindly set can_optimize = false before following line,
>> > https://github.com/openjdk/valhalla/pull/845/files#diff-e368502932198721c3ee52ace2397c5a9c6281930e83fc53a429573f6adf44fcR2584
>> 
>> It seems not right setting `can_optimize = false` before line-2584 for me. This will break the inner loop anyway, since it doesn't set `can_optimize = true` in the followed code, does it?
> 
> I am seeing an incorrect graph shape here for ABSMaskedByte256VectorTests
> 
> 
>  2970  VectorBox  === _ 2967 34 2969  [[ 562 557 ]]  #jdk/incubator/vector/Byte256Vector$Byte256Mask:NotNull:exact *  Oop:jdk/incubator/vector/Byte256Vector$Byte256Mask:NotNull:exact * !orig=[3040],... !jvms: VectorMask::fromArray @ bci:47 (line 212) Byte256VectorTests::ABSMaskedByte256VectorTests @ bci:63 (line 5256)
>   561  IfTrue  === 559  [[ 2883 562 ]] #1 !jvms: VectorMask::fromArray @ bci:50 (line 212) Byte256VectorTests::ABSMaskedByte256VectorTests @ bci:63 (line 5256)
>  2883  If  === 561 2882  [[ 2884 2885 ]] P=0.000001, C=-1.000000 !orig=[584] !jvms: VectorMask::fromArray @ bci:50 (line 212) Byte256VectorTests::ABSMaskedByte256VectorTests @ bci:63 (line 5256)
>  1181  LoadVector  === 2876 2991 1180  [[ 1179 3038 ]]  @jdk/incubator/vector/Byte256Vector$Byte256Mask:exact+16 *, name=mfield, idx=10; mismatched #vectory[32]:{bool} !jvms: Byte256Vector::lanewise @ bci:5 (line 279) Byte256Vector::lanewise @ bci:3 (line 42) Byte256VectorTests::ABSMaskedByte256VectorTests @ bci:107 (line 5261)
>    51  ConP  === 0  [[ 52 60 137 146 252 259 332 340 452 434 557 565 801 788 2286 1058 1066 1081 1179 2286 3018 1808 1823 1907 1915 1969 1956 2279 2969 2994 3030 3031 3034 3036 3036 ]]  #NULL
>     0  Root  === 0 64 83 150 166 263 280 344 360 438 456 569 597 620 633 646 684 696 708 792 805 1070 1090 1188 1812 1832 1919 1960 1973 2243 2255 2267 2290 2305 2365 2394 2463 2834 2557 2833 2627 2826 2669 2813 2731 2756  |2152 2172 2504  [[ 0 1 3 2487 23 2435 26 2349 2343 32 34 50 51 59 69 78 2205 107 134 145 2155 2154 601 2821 329 1914 1771 1166 411 413 433 451 478 1099 500 502 1036 935 506 858 641 628 534 554 615 ]] 
>  2876  IfFalse  === 2875  [[ 1181 1177 3002 ]] #0 !orig=[1175] !jvms: Byte256Vector::lanewise @ bci:5 (line 279) Byte256Vector::lanewise @ bci:3 (line 42) Byte256VectorTests::ABSMaskedByte256VectorTests @ bci:107 (line 5261)
>   668  If  === 652 667  [[ 669 670 ]] P=0.010156, C=23040....

Phi is still carrying an abstract VectorMask type where as one of its input is concrete mask which is why C2 injects InlineTypeNode for it.

-------------

PR Review Comment: https://git.openjdk.org/valhalla/pull/845#discussion_r1208976885



More information about the valhalla-dev mailing list