RFR: 8288445: AArch64: C2 compilation fails with guarantee(!true || (true && (shift != 0))) failed: impossible encoding

Tobias Hartmann thartmann at openjdk.org
Mon Jun 20 05:52:54 UTC 2022


On Fri, 17 Jun 2022 22:37:28 GMT, Dean Long <dlong at openjdk.org> wrote:

> The range for aarch64 vector right-shift is 1 to the element width.  This issue fixes the problem in the back-end.  There is a separate problem in the front-end that shift by 0 is not always optimized out.

What instruction will the zero-shift be matched with then?

test/hotspot/jtreg/compiler/codegen/ShiftByZero.java line 29:

> 27:  * @summary Test shift by 0
> 28:  * @library /test/lib
> 29:  * @run main compiler.codegen.ShiftByZero

I don't think these two lines are needed.

test/hotspot/jtreg/compiler/codegen/ShiftByZero.java line 69:

> 67: 
> 68:     public static void main(String[] strArr) {
> 69:         for (int i = 0; i < 20_000; i++ ) {

Suggestion:

        for (int i = 0; i < 20_000; i++) {

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

PR: https://git.openjdk.org/jdk19/pull/40


More information about the hotspot-compiler-dev mailing list