[aarch64-port-dev ] [aarch64-port-dev] [10] RFR: 8184049 : Matching rule for ubfiz
Daniel Stewart
daniel.stewart at linaro.org
Thu Jul 27 15:13:09 UTC 2017
I'm preparing another patch right now. The issue Felix uncovered is because
the number of bits masked off + the shift amount is greater than 32.
Instead of just lopping off the bits that would shifted, this winds up
looking like a ubfx with the wrong bits masked off. I'm updating the
Predicate to catch this case. It doesn't appear to be a problem in the ubfx
case, as the AND'ing of the bits appears to be dropped and so the match for
ubfx is never even tried.
Daniel
On Thu, Jul 27, 2017 at 10:05 AM, Andrew Haley <aph at redhat.com> wrote:
> On 25/07/17 14:35, Felix Yang wrote:
> > I tried to modify the test case changing testI2() into:
> >
> > public static int testI2() {
> > return (ia[0] & 0xf) << 30;
> > }
> >
> > Then I got different execution results on aarch64 and x86:
> >
> > aarch64:
> > java -XX:-TieredCompilation Test
> > 2758214541841904631
> >
> > x86:
> > java -XX:-TieredCompilation Test
> > 2758195853365405696
>
> Hmm. I'm not seeing that problem. But on the other had, I'm not seeing
> the intrinsics used much either: in fact, they seem to be used only once
> and are not used in the loop at all.
>
> I've been using the test at
> http://cr.openjdk.java.net/~aph/8184049/Test.java
>
> --
> Andrew Haley
> Java Platform Lead Engineer
> Red Hat UK Ltd. <https://www.redhat.com>
> EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
>
--
Daniel Stewart
More information about the aarch64-port-dev
mailing list