[aarch64-port-dev ] RFR(S): 8241475: AArch64: Add missing support for PopCountVI node
Pengfei Li
Pengfei.Li at arm.com
Wed Apr 1 02:05:04 UTC 2020
Hi Andrew,
Thanks for review.
> INSN(absr, 0, 0b100000101110, 1); // accepted arrangements: T8B, T16B,
> T4H, T8H, T4S
> - INSN(negr, 1, 0b100000101110, 2); // accepted arrangements: T8B, T16B,
> T4H, T8H, T2S, T4S, T2D
>
> is actually related to some other work you are doing?
This change is related to
- if (accepted < 2) guarantee(T != T2S && T != T2D, "incorrect arrangement"); \
- if (accepted == 0) guarantee(T == T8B || T == T16B, "incorrect arrangement"); \
+ if (accepted < 3) guarantee(T != T2D, "incorrect arrangement"); \
+ if (accepted < 2) guarantee(T != T2S, "incorrect arrangement"); \
+ if (accepted < 1) guarantee(T == T8B || T == T16B, "incorrect arrangement"); \
Before my patch, the candidate values of "accepted" are 0, 1 and 2 meaning different accepted arrangements as below:
0 - Only T8B and T16B are accepted
1 - All arrangements but T2S and T2D are accepted
2 - All arrangements are accepted
In my patch, the newly added instruction UADDLP supports T2S but doesn't support T2D. So I changed the value range to 0 - 3, where 3 means all arrangements are accepted now. That's why the value for parameter "accepted" of NEGR is promoted from 2 to 3 now.
--
Thanks,
Pengfei
More information about the hotspot-compiler-dev
mailing list