Open JasonFengJ9 opened 2 years ago
@gita-omr
@knn-k
FYI @Akira1Saitoh
I have been trying to reproduce it on internal Grinder, but not successful so far.
Reproduced on internal Grinder jobs (job/Grinder/26020/
, job/Grinder/26022/
).
It seems AbstractVector.castShape
fails to convert ByteVector
to ShortVector
.
https://github.com/ibmruntimes/openj9-openjdk-jdk18/blob/0c89bcfb32934a82973a74b49c726382ae98f552/test/jdk/jdk/incubator/vector/VectorReshapeTests.java#L737
<ffff94422400> JIT inline frame: bp = 0x0000FFFEE40080B8, pc = 0x0000FFFF5AD37524, unwindSP = 0x0000FFFEE4007FA0, cp = 0x0000FFFF94495790, arg0EA = 0x0000000000000000, jitInfo = 0x0000FFFF209F3A78
<ffff94422400> Method: VectorReshapeTests.testVectorRebracket(Ljdk/incubator/vector/VectorSpecies;Ljdk/incubator/vector/VectorSpecies;[B[BZ)V !j9method 0x0000FFFF94497930
<ffff94422400> Bytecode index = 265, inlineDepth = 2, PC offset = 0x0000FFFF5AD37529
<ffff94422400> JIT inline frame: bp = 0x0000FFFEE40080B8, pc = 0x0000FFFF5AD37524, unwindSP = 0x0000FFFEE4007FA0, cp = 0x0000FFFF94495790, arg0EA = 0x0000000000000000, jitInfo = 0x0000FFFF209F3A78
<ffff94422400> Method: VectorReshapeTests.testVectorRebracketLanewise(Ljdk/incubator/vector/VectorSpecies;Ljdk/incubator/vector/VectorSpecies;[B[B)V !j9method 0x0000FFFF94497910
<ffff94422400> Bytecode index = 5, inlineDepth = 1, PC offset = 0xFFFFFFFFFFD3B460
319299 0xffff5ad373f4 00000878 [ 0xfffee3356050] f9407a83 186 ldrimmx w3, [w20, 240] # Sy
319299 mRef <auto slot 7>[#429 Auto +240] [flags 0x7 0x0 ] <--- Contains ByteVector
319300
319301 \\ VectorReshapeTests.testVectorRebracket(Ljdk/incubator/vector/VectorSpecies;Ljdk/incubator/vector/VectorS
319301 pecies;[B[B)V
319302 \\ 12 JBinvokestatic 122 VectorReshapeTests.testVectorRebracketLanewise(Ljdk/incubator/vector/VectorSpeci
319302 es;Ljdk/incubator/vector/VectorSpecies;[B[B)V
319303 \\ 5 JBinvokestatic 121 VectorReshapeTests.testVectorRebracket(Ljdk/incubator/vector/VectorSpecies;Lj
319303 dk/incubator/vector/VectorSpecies;[B[BZ)V
319304 \\ 191 JBinvokevirtual 65 jdk/incubator/vector/Vector.castShape(Ljdk/incubator/vector/VectorSpecies;
319304 I)Ljdk/incubator/vector/Vector;
319305
319306 0xffff5ad373f8 0000087c [ 0xfffee3356150] aa0303e0 191 movx w0, w3
319307
319308 \\ VectorReshapeTests.testVectorRebracket(Ljdk/incubator/vector/VectorSpecies;Ljdk/incubator/vector/VectorS
319308 pecies;[B[B)V
319309 \\ 12 JBinvokestatic 122 VectorReshapeTests.testVectorRebracketLanewise(Ljdk/incubator/vector/VectorSpeci
319309 es;Ljdk/incubator/vector/VectorSpecies;[B[B)V
319310 \\ 5 JBinvokestatic 121 VectorReshapeTests.testVectorRebracket(Ljdk/incubator/vector/VectorSpecies;Lj
319310 dk/incubator/vector/VectorSpecies;[B[BZ)V
319311 \\ 188 JBaload1
319312
319313 0xffff5ad373fc 00000880 [ 0xfffee3356310] f9409a96 188 ldrimmx w22, [w20, 304] # Sy
319313 mRef <parm 1 Ljdk/incubator/vector/VectorSpecies;>[#336 Parm +304] [flags 0xc0000107 0x0 ]
319314
319315 \\ VectorReshapeTests.testVectorRebracket(Ljdk/incubator/vector/VectorSpecies;Ljdk/incubator/vector/VectorS
319315 pecies;[B[B)V
319316 \\ 12 JBinvokestatic 122 VectorReshapeTests.testVectorRebracketLanewise(Ljdk/incubator/vector/VectorSpeci 319316 es;Ljdk/incubator/vector/VectorSpecies;[B[B)V
319317 \\ 5 JBinvokestatic 121 VectorReshapeTests.testVectorRebracket(Ljdk/incubator/vector/VectorSpecies;Lj
319317 dk/incubator/vector/VectorSpecies;[B[BZ)V
319318 \\ 191 JBinvokevirtual 65 jdk/incubator/vector/Vector.castShape(Ljdk/incubator/vector/VectorSpecies;
319318 I)Ljdk/incubator/vector/Vector;
319319
319320 0xffff5ad37400 00000884 [ 0xfffee3356410] aa1603e1 191 movx w1, w22
319321 0xffff5ad37404 00000888 [ 0xfffee3356510] aa1503e2 191 movx w2, w21
319322 0xffff5ad37408 0000088c [ 0xfffee3357ae0] f9400077 191 ldrimmx w23, [w3, 0] # Sy 319322 mRef <vft-symbol>[#263 Shadow] [flags 0x18607 0x0 ] ; Throws Implicit Null Pointer Exception
319323 0xffff5ad3740c 00000890 [ 0xfffee3357b70] 9278def7 191 andimmx w23, w23, 0xffffffffffffff00
319324 0xffff5ad37410 00000894 [ 0xfffee3358490] d2910009 191 movzx w9, 0x8800
319325 0xffff5ad37414 00000898 [ 0xfffee3358520] f2bc83e9 191 movkx w9, 0xe41f, LSL #16
319326 0xffff5ad37418 0000089c [ 0xfffee33585b0] f2dfffc9 191 movkx w9, 0xfffe, LSL #32
319327 0xffff5ad3741c 000008a0 [ 0xfffee3358640] eb0902ff 191 cmpx w23, w9
319328 0xffff5ad37420 000008a4 [ 0xfffee33586d0] 54000061 191 b.ne Label L0418
319329 0xffff5ad37424 000008a8 [ 0xfffee3358760] 97f15bce 191 bl 0000FFFF5A98E35C ; Di 319329 rect Call "jdk/incubator/vector/AbstractVector.castShape(Ljdk/incubator/vector/VectorSpecies;I)Ljdk/incubato 319329 r/vector/Vector;"
319330 0xffff5ad37428 000008ac [ 0xfffee33587f0] 1400000b 191 b Label L0417
319331 0xffff5ad3742c 000008b0 [ 0xfffee3358870] 191 Label L0418:
319332 0xffff5ad3742c 000008b0 [ 0xfffee3358ef0] d2880009 191 movzx w9, 0x4000
319333 0xffff5ad37430 000008b4 [ 0xfffee3358f80] f2bc8509 191 movkx w9, 0xe428, LSL #16
319334 0xffff5ad37434 000008b8 [ 0xfffee3359010] f2dfffc9 191 movkx w9, 0xfffe, LSL #32
319335 0xffff5ad37438 000008bc [ 0xfffee33590a0] eb0902ff 191 cmpx w23, w9
319336 0xffff5ad3743c 000008c0 [ 0xfffee3359130] 54000061 191 b.ne Label L0419
319337 0xffff5ad37440 000008c4 [ 0xfffee33591c0] 97f15bc7 191 bl 0000FFFF5A98E35C ; Di 319337 rect Call "jdk/incubator/vector/AbstractVector.castShape(Ljdk/incubator/vector/VectorSpecies;I)Ljdk/incubato 319337 r/vector/Vector;"
319338 0xffff5ad37444 000008c8 [ 0xfffee3359250] 14000004 191 b Label L0417
319339 0xffff5ad37448 000008cc [ 0xfffee33592d0] 191 Label L0419:
319340 0xffff5ad37448 000008cc [ 0xfffee3359350] 928049e9 191 movnx w9, 0x024f
319341 0xffff5ad3744c 000008d0 [ 0xfffee3359470] f8696ae9 191 ldroffx w9, [w23, w9]
319342 0xffff5ad37450 000008d4 [ 0xfffee3359500] d63f0120 191 blr x9
319343 0xffff5ad37454 000008d8 [ 0xfffee3359c50] 191 assocreg
319344 0xffff5ad37454 000008d8 [ 0xfffee3359580] 191 Label L0417:
319345 PRE: [&GPR_1649 : x0] [&GPR_1652 : x1] [GPR_1653 : x2] [D_GPR_1654 : x3] [D_GPR_1655 : x4] [D_GPR_1656 : x5 319345 ] [D_GPR_1657 : x6] [D_GPR_1658 : x7] [D_GPR_1659 : x8] [GPR_1660 : x9] [D_GPR_1661 : x10] [D_GPR_1662 : x11 319345 ] [D_GPR_1663 : x12] [D_GPR_1664 : x13] [D_GPR_1665 : x14] [D_GPR_1666 : x15] [D_GPR_1667 : x18] [D_FPR_1668 319345 : d0] [D_FPR_1669 : d1] [D_FPR_1670 : d2] [D_FPR_1671 : d3] [D_FPR_1672 : d4] [D_FPR_1673 : d5] [D_FPR_1674 319345 : d6] [D_FPR_1675 : d7] [D_FPR_1676 : d8] [D_FPR_1677 : d9] [D_FPR_1678 : d10] [D_FPR_1679 : d11] [D_FPR_16 319345 80 : d12] [D_FPR_1681 : d13] [D_FPR_1682 : d14] [D_FPR_1683 : d15] [D_FPR_1684 : d16] [D_FPR_1685 : d17] [D_ 319345 FPR_1686 : d18] [D_FPR_1687 : d19] [D_FPR_1688 : d20] [D_FPR_1689 : d21] [D_FPR_1690 : d22] [D_FPR_1691 : d2 319345 3] [D_FPR_1692 : d24] [D_FPR_1693 : d25] [D_FPR_1694 : d26] [D_FPR_1695 : d27] [D_FPR_1696 : d28] [D_FPR_169 319345 7 : d29] [D_FPR_1698 : d30] [D_FPR_1699 : d31] [GPR_1700 : x23]
319346 POST: [&GPR_1650 : x0] [&GPR_1652 : x1] [GPR_1653 : x2] [D_GPR_1654 : x3] [D_GPR_1655 : x4] [D_GPR_1656 : x5 319346 ] [D_GPR_1657 : x6] [D_GPR_1658 : x7] [D_GPR_1659 : x8] [GPR_1660 : x9] [D_GPR_1661 : x10] [D_GPR_1662 : x11 319346 ] [D_GPR_1663 : x12] [D_GPR_1664 : x13] [D_GPR_1665 : x14] [D_GPR_1666 : x15] [D_GPR_1667 : x18] [D_FPR_1668 319346 : d0] [D_FPR_1669 : d1] [D_FPR_1670 : d2] [D_FPR_1671 : d3] [D_FPR_1672 : d4] [D_FPR_1673 : d5] [D_FPR_1674 319346 : d6] [D_FPR_1675 : d7] [D_FPR_1676 : d8] [D_FPR_1677 : d9] [D_FPR_1678 : d10] [D_FPR_1679 : d11] [D_FPR_16 319346 80 : d12] [D_FPR_1681 : d13] [D_FPR_1682 : d14] [D_FPR_1683 : d15] [D_FPR_1684 : d16] [D_FPR_1685 : d17] [D_ 319346 FPR_1686 : d18] [D_FPR_1687 : d19] [D_FPR_1688 : d20] [D_FPR_1689 : d21] [D_FPR_1690 : d22] [D_FPR_1691 : d2 319346 3] [D_FPR_1692 : d24] [D_FPR_1693 : d25] [D_FPR_1694 : d26] [D_FPR_1695 : d27] [D_FPR_1696 : d28] [D_FPR_169 319346 7 : d29] [D_FPR_1698 : d30] [D_FPR_1699 : d31] [GPR_1700 : x23]
319347 0xffff5ad37454 000008d8 [ 0xfffee32607c0] aa0003f7 191 movx w23, w0
319348
319349 \\ VectorReshapeTests.testVectorRebracket(Ljdk/incubator/vector/VectorSpecies;Ljdk/incubator/vector/VectorS 319349 pecies;[B[B)V
319350 \\ 12 JBinvokestatic 122 VectorReshapeTests.testVectorRebracketLanewise(Ljdk/incubator/vector/VectorSpeci 319350 es;Ljdk/incubator/vector/VectorSpecies;[B[B)V
319351 \\ 5 JBinvokestatic 121 VectorReshapeTests.testVectorRebracket(Ljdk/incubator/vector/VectorSpecies;Lj 319351 dk/incubator/vector/VectorSpecies;[B[BZ)V
319352 \\ 194 JBgoto 205
319353
319354 0xffff5ad37458 000008dc [ 0xfffee335adc0] f9007e97 194 strimmx w23, [w20, 248] # Sy 319354 mRef <pending push temp 0>[#450 Auto +248] [flags 0x7 0x800 ] <--- contains ShortVector
(gdb) x/8x 0x0000FFFEE4007FA0 + 240
0xfffee4008090: 0x932c7c50 0x0000ffff 0x932c8ba0 0x0000ffff
0xfffee40080a0: 0x932c8ba0 0x0000ffff 0x932c8c38 0x0000ffff
> !j9object 0xffff932c7c50
!J9Object 0x0000FFFF932C7C50 {
struct J9Class* clazz = !j9class 0xFFFEE4284000 // jdk/incubator/vector/Byte128Vector
Object flags = 0x00000000;
J lockword = 0x0000000000000000 (offset = 0) (java/lang/Object) <hidden>
Ljava/lang/Object; payload = !fj9object 0xffff932c7c28 (offset = 8) (jdk/internal/vm/vector/VectorSupport$VectorPayload)
}
> !fj9object 0xffff932c7c28
!J9IndexableObject 0x0000FFFF932C7C28 {
struct J9Class* clazz = !j9arrayclass 0xFFFF941AE000 // [B
Object flags = 0x00000000;
U_32 size = 0x00000010;
[0] = 1, 0x01
[1] = 2, 0x02
[2] = 3, 0x03
[3] = 4, 0x04
[4] = 5, 0x05
[5] = 6, 0x06
[6] = 7, 0x07
[7] = 8, 0x08
[8] = 9, 0x09
[9] = 10, 0x0a
[10] = 11, 0x0b
[11] = 12, 0x0c
[12] = 13, 0x0d
[13] = 14, 0x0e
[14] = 15, 0x0f
[15] = 16, 0x10
}
> !j9object 0xffff932c8ba0
!J9Object 0x0000FFFF932C8BA0 {
struct J9Class* clazz = !j9class 0xFFFEE42A7F00 // jdk/incubator/vector/Short128Vector
Object flags = 0x00000000;
J lockword = 0x0000000000000000 (offset = 0) (java/lang/Object) <hidden>
Ljava/lang/Object; payload = !fj9object 0xffff932c8b78 (offset = 8) (jdk/internal/vm/vector/VectorSupport$VectorPayload)
}
> !fj9object 0xffff932c8b78
!J9IndexableObject 0x0000FFFF932C8B78 {
struct J9Class* clazz = !j9arrayclass 0xFFFF941AE400 // [S
Object flags = 0x00000000;
U_32 size = 0x00000008;
[0] = 0, 0x0000
[1] = 0, 0x0000
[2] = 0, 0x0000
[3] = 0, 0x0000
[4] = 0, 0x0000
[5] = 0, 0x0000
[6] = 0, 0x0000
[7] = 0, 0x0000
}
I am now trying to get the trace of AbstractVector.castShape
.
It seems either of JIT compiled Byte128Vector.slice(int)
or AbstractVector.convert0(char, AbstractSpecies)
has a problem.
int origin = shapeChangeOrigin(vsp, rsp, true, part);
//System.out.println("*** origin = "+origin+", part = "+part+", lanewise");
if (part > 0) { // Expansion: slice first then cast.
return slice(origin).convert0(kind, rsp);
} else { // Contraction: cast first then unslice.
It seems Byte128Vector.slice(int)
returns zero vector.
In ByteVector.sliceTemplate(int)
, mask for blending is created but this happens to be all false mask when the test fails.
VectorMask<Byte> blendMask = iota.toVector().compare(VectorOperators.LT, (broadcast((byte)(length() - origin))));
Failure link
From an internal build(
cent7-aarch64-6
):Rerun in Grinder - Change TARGET to run only the failed test targets.
Optional info
Failure output (captured from console output)