< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/ConditionalNode.java

Print this page
rev 56282 : [mq]: graal

*** 1,7 **** /* ! * Copyright (c) 2009, 2018, 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. --- 1,7 ---- /* ! * Copyright (c) 2009, 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.
*** 212,223 **** } else if (condition instanceof IntegerTestNode) { // replace IntegerTestNode with AndNode for the following patterns: // (value & 1) == 0 ? 0 : 1 // (value & 1) == 1 ? 1 : 0 IntegerTestNode integerTestNode = (IntegerTestNode) condition; ! if (integerTestNode.getY().isConstant()) { ! assert integerTestNode.getX().stamp(view) instanceof IntegerStamp; long testY = integerTestNode.getY().asJavaConstant().asLong(); if (testY == 1 && constTrueValue == 0 && constFalseValue == 1) { return IntegerConvertNode.convertUnsigned(AndNode.create(integerTestNode.getX(), integerTestNode.getY(), view), stamp, view); } } --- 212,222 ---- } else if (condition instanceof IntegerTestNode) { // replace IntegerTestNode with AndNode for the following patterns: // (value & 1) == 0 ? 0 : 1 // (value & 1) == 1 ? 1 : 0 IntegerTestNode integerTestNode = (IntegerTestNode) condition; ! if (integerTestNode.getY().isConstant() && integerTestNode.getX().stamp(view) instanceof IntegerStamp) { long testY = integerTestNode.getY().asJavaConstant().asLong(); if (testY == 1 && constTrueValue == 0 && constFalseValue == 1) { return IntegerConvertNode.convertUnsigned(AndNode.create(integerTestNode.getX(), integerTestNode.getY(), view), stamp, view); } }
< prev index next >