[vector] Support long addAll() for AVX < 3
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Mon Jan 21 19:43:43 UTC 2019
src/hotspot/cpu/x86/x86.ad:
#ifdef _LP64
instruct rvadd2L_reduction_reg(rRegL dst, rRegL src1, vecX src2, vecX
tmp, vecX tmp2) %{
- predicate(UseAVX > 2);
+ predicate(UseSSE >= 2);
There's no need in the check, since SSE2 support is a requirement on x64.
BTW it would be nice to move 64-bit specific declarations into x86_64.ad.
instruct rvadd4L_reduction_reg(rRegL dst, rRegL src1, vecY src2, vecY
tmp, vecY tmp2) %{
- predicate(UseAVX > 2);
+ predicate(UseAVX >= 1);
Are you sure about AVX1 support? As I see in the docs, 256-bit pshufd
variant is available since AVX2.
(On a side note, I'm in favor of exclusive range checks: UseAVX > 1 vs
UseAVX >= 2. The former reads better in x86.ad.)
Best regards,
Vladimir Ivanov
On 21/01/2019 11:32, Viswanathan, Sandhya wrote:
> Hi All,
>
> Please find below a small patch supporting long addAll for AVX < 3:
>
> http://cr.openjdk.java.net/~sviswanathan/vectorIntrinsics/longAddReduction/webrev.00/
>
> Best Regards,
> Sandhya
>
More information about the panama-dev
mailing list