[lworld+vector] RFR: 8307715: Integrate VectorMask/Shuffle with value/primitive classes [v7]
Xiaohong Gong
xgong at openjdk.org
Mon May 29 07:06:29 UTC 2023
On Mon, 29 May 2023 06:47:53 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?
>>
>> 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.010...
>
> 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.
Yes, so do you know how this PhiNode is generated and what it is used for? From the log, I can see the two inputs of Phi are all from `VectorBox`. I guess the abstract VectorMask is from the return type of `VectorMask.fromArray()` ?
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/845#discussion_r1208986445
More information about the valhalla-dev
mailing list