Skip to content

Commit

Permalink
[GR-20260] Amends NarrowNode.reverseOp to be ZeroExtend instead of Si…
Browse files Browse the repository at this point in the history
…gnExtend.

PullRequest: graal/5124
  • Loading branch information
Esteban Ginez committed Dec 19, 2019
2 parents f3436e7 + 5cb99d4 commit 276ff2b
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 4 deletions.
@@ -0,0 +1,55 @@
/*
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package org.graalvm.compiler.jtt.optimize;

import org.graalvm.compiler.jtt.JTTTest;
import org.junit.Test;

/*
*/
public class Narrow_byte04 extends JTTTest {
static final byte NEG_FLAG = (byte) -80;

public static byte test(byte b) {
byte hBits = (byte) (b & 0xF0);
byte loBits = (byte) (b & 0x0F);
return hBits == NEG_FLAG ? loBits : b;
}

@Test
public void run0() throws Throwable {
runTest("test", ((byte) 0xb1));
}

@Test
public void run1() throws Throwable {
runTest("test", ((byte) 0xFF));
}

@Test
public void run3() throws Throwable {
runTest("test", ((byte) 0));
}
}
Expand Up @@ -31,7 +31,6 @@
import org.graalvm.compiler.core.common.type.ArithmeticOpTable;
import org.graalvm.compiler.core.common.type.ArithmeticOpTable.IntegerConvertOp;
import org.graalvm.compiler.core.common.type.ArithmeticOpTable.IntegerConvertOp.Narrow;
import org.graalvm.compiler.core.common.type.ArithmeticOpTable.IntegerConvertOp.SignExtend;
import org.graalvm.compiler.core.common.type.IntegerStamp;
import org.graalvm.compiler.core.common.type.PrimitiveStamp;
import org.graalvm.compiler.core.common.type.Stamp;
Expand All @@ -49,7 +48,7 @@
* The {@code NarrowNode} converts an integer to a narrower integer.
*/
@NodeInfo(cycles = CYCLES_1)
public final class NarrowNode extends IntegerConvertNode<Narrow, SignExtend> {
public final class NarrowNode extends IntegerConvertNode<Narrow, IntegerConvertOp.ZeroExtend> {

public static final NodeClass<NarrowNode> TYPE = NodeClass.create(NarrowNode.class);

Expand Down Expand Up @@ -82,8 +81,8 @@ protected IntegerConvertOp<Narrow> getOp(ArithmeticOpTable table) {
}

@Override
protected IntegerConvertOp<SignExtend> getReverseOp(ArithmeticOpTable table) {
return table.getSignExtend();
protected IntegerConvertOp<IntegerConvertOp.ZeroExtend> getReverseOp(ArithmeticOpTable table) {
return table.getZeroExtend();
}

@Override
Expand Down

0 comments on commit 276ff2b

Please sign in to comment.