[aarch64-port-dev ] RFR: 8179933: aarch64: incorrect match rule for immL_63 and immL_255
Andrew Haley
aph at redhat.com
Fri May 12 08:14:55 UTC 2017
On 12/05/17 09:10, Andrew Dinn wrote:
>
> The patch looks good to me.
While we're looking at aarch64.ad, I see this patch and it looks really,
uh:
11149 instruct signExtractL(iRegLNoSp dst, iRegL src1, immI_63 div1, immI_63 div2) %{
11150 match(Set dst (URShiftL (RShiftL src1 div1) div2));
11151 ins_cost(INSN_COST);
11152 format %{ "lsr $dst, $src1, $div1" %}
11153 ins_encode %{
11154 __ lsr(as_Register($dst$$reg), as_Register($src1$$reg), 63);
11155 %}
11156 ins_pipe(ialu_reg_shift);
11157 %}
So it's
((aLong >> 63) >>> 63)
This is so weird I don't know what to think about it.
Andrew.
More information about the aarch64-port-dev
mailing list