[vectorIntrinsics] RFR: 8267375: Aarch64: JVM crashes with option -XX:PrintIdealGraphLevel=3 on SVE backend [v2]

Jie Fu jiefu at openjdk.java.net
Thu May 20 02:06:39 UTC 2021


On Thu, 20 May 2021 01:51:34 GMT, Wang Huang <whuang at openjdk.org> wrote:

>> Reason: 
>> 
>> 
>> operand pRegGov()
>> %{
>>   constraint(ALLOC_IN_RC(gov_pr));
>>   match(RegVectMask);
>>   op_cost(0);
>>   format %{ %}
>>   interface(REG_INTER);
>> %}
>> 
>> if `pRegGov` is used as a `TEMP`, like :
>> 
>> 
>> instruct insertB_small(vReg dst, vReg src, iRegIorL2I val, immI idx, pRegGov pTmp, rFlagsReg cr)
>> %{
>>   predicate(UseSVE > 0 && n->as_Vector()->length() <= 32 &&
>>             n->bottom_type()->is_vect()->element_basic_type() == T_BYTE);
>>   match(Set dst (VectorInsert (Binary src val) idx));
>>   effect(TEMP_DEF dst, TEMP pTmp, KILL cr); // here
>> 
>> 
>> It will have the type `Type::VectorMask` in `MachTempNode` which is generated from `Expand`. However, we miss `Type::VectorMask` in `Type::category()`.
>> 
>> We can fix this bug simply by adding `case Type::VectorMask` in `Type::category()`.
>
> Wang Huang has updated the pull request incrementally with one additional commit since the last revision:
> 
>   fix bug id

test/hotspot/jtreg/compiler/vectorapi/TestVectorInsertByte.java line 33:

> 31:  * @bug 8267375
> 32:  * @modules jdk.incubator.vector
> 33:  * @run main/othervm -XX:UseSVE=2 -XX:CompileCommand=compileonly,compiler.vectorapi.TestVectorInsertByte::* -XX:PrintIdealGraphLevel=3 -XX:PrintIdealGraphFile=TestVectorInsertByte.xml compiler.vectorapi.TestVectorInsertByte

I'm afraid -XX:UseSVE would fail on x86.

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

PR: https://git.openjdk.java.net/panama-vector/pull/85


More information about the panama-dev mailing list