Search in sources :

Example 21 with AMD64

use of jdk.vm.ci.amd64.AMD64 in project graal by oracle.

the class AMD64ArrayCompareToOp method supportsAVX512VLBW.

private static boolean supportsAVX512VLBW(TargetDescription target) {
    AMD64 arch = (AMD64) target.arch;
    EnumSet<CPUFeature> features = arch.getFeatures();
    return features.contains(CPUFeature.AVX512BW) && features.contains(CPUFeature.AVX512VL);
}
Also used : AMD64(jdk.vm.ci.amd64.AMD64) CPUFeature(jdk.vm.ci.amd64.AMD64.CPUFeature)

Example 22 with AMD64

use of jdk.vm.ci.amd64.AMD64 in project graal by oracle.

the class BitOpNodesTest method testBitCountIntEmpty.

@Test
public void testBitCountIntEmpty() {
    Architecture arch = getBackend().getTarget().arch;
    boolean isAmd64WithPopCount = arch instanceof AMD64 && ((AMD64) arch).getFeatures().contains(AMD64.CPUFeature.POPCNT);
    boolean isSparc = arch instanceof SPARC;
    Assume.assumeTrue("Only works on hardware with popcnt at the moment", isAmd64WithPopCount || isSparc);
    ValueNode result = parseAndInline("bitCountIntEmptySnippet");
    Assert.assertEquals(StampFactory.forInteger(JavaKind.Int, 0, 24), result.stamp(NodeView.DEFAULT));
}
Also used : AMD64(jdk.vm.ci.amd64.AMD64) SPARC(jdk.vm.ci.sparc.SPARC) Architecture(jdk.vm.ci.code.Architecture) ValueNode(org.graalvm.compiler.nodes.ValueNode) Test(org.junit.Test) GraalCompilerTest(org.graalvm.compiler.core.test.GraalCompilerTest)

Example 23 with AMD64

use of jdk.vm.ci.amd64.AMD64 in project graal by oracle.

the class BitOpNodesTest method testBitCountInt.

@Test
public void testBitCountInt() {
    Architecture arch = getBackend().getTarget().arch;
    boolean isAmd64WithPopCount = arch instanceof AMD64 && ((AMD64) arch).getFeatures().contains(AMD64.CPUFeature.POPCNT);
    boolean isSparc = arch instanceof SPARC;
    Assume.assumeTrue("Only works on hardware with popcnt at the moment", isAmd64WithPopCount || isSparc);
    ValueNode result = parseAndInline("bitCountIntSnippet");
    Assert.assertEquals(StampFactory.forInteger(JavaKind.Int, 8, 24), result.stamp(NodeView.DEFAULT));
}
Also used : AMD64(jdk.vm.ci.amd64.AMD64) SPARC(jdk.vm.ci.sparc.SPARC) Architecture(jdk.vm.ci.code.Architecture) ValueNode(org.graalvm.compiler.nodes.ValueNode) Test(org.junit.Test) GraalCompilerTest(org.graalvm.compiler.core.test.GraalCompilerTest)

Example 24 with AMD64

use of jdk.vm.ci.amd64.AMD64 in project graal by oracle.

the class BitOpNodesTest method testBitCountLongEmpty.

@Test
public void testBitCountLongEmpty() {
    Architecture arch = getBackend().getTarget().arch;
    boolean isAmd64WithPopCount = arch instanceof AMD64 && ((AMD64) arch).getFeatures().contains(AMD64.CPUFeature.POPCNT);
    boolean isSparc = arch instanceof SPARC;
    Assume.assumeTrue("Only works on hardware with popcnt at the moment", isAmd64WithPopCount || isSparc);
    ValueNode result = parseAndInline("bitCountLongEmptySnippet");
    Assert.assertEquals(StampFactory.forInteger(JavaKind.Int, 0, 40), result.stamp(NodeView.DEFAULT));
}
Also used : AMD64(jdk.vm.ci.amd64.AMD64) SPARC(jdk.vm.ci.sparc.SPARC) Architecture(jdk.vm.ci.code.Architecture) ValueNode(org.graalvm.compiler.nodes.ValueNode) Test(org.junit.Test) GraalCompilerTest(org.graalvm.compiler.core.test.GraalCompilerTest)

Aggregations

AMD64 (jdk.vm.ci.amd64.AMD64)13 AMD64Kind (jdk.vm.ci.amd64.AMD64Kind)11 TargetDescription (jdk.vm.ci.code.TargetDescription)8 Test (org.junit.Test)6 Architecture (jdk.vm.ci.code.Architecture)5 LIRKind (org.graalvm.compiler.core.common.LIRKind)5 SPARC (jdk.vm.ci.sparc.SPARC)4 GraalCompilerTest (org.graalvm.compiler.core.test.GraalCompilerTest)4 ValueNode (org.graalvm.compiler.nodes.ValueNode)4 RegisterValue (jdk.vm.ci.code.RegisterValue)3 Variable (org.graalvm.compiler.lir.Variable)3 CompareAndSwapOp (org.graalvm.compiler.lir.amd64.AMD64Move.CompareAndSwapOp)3 ResolvedJavaMethod (jdk.vm.ci.meta.ResolvedJavaMethod)2 AMD64AddressValue (org.graalvm.compiler.lir.amd64.AMD64AddressValue)2 Before (org.junit.Before)2 SubstrateTargetDescription (com.oracle.svm.core.graal.meta.SubstrateTargetDescription)1 ArrayList (java.util.ArrayList)1 CPUFeature (jdk.vm.ci.amd64.AMD64.CPUFeature)1 AllocatableValue (jdk.vm.ci.meta.AllocatableValue)1 AMD64AddressLowering (org.graalvm.compiler.core.amd64.AMD64AddressLowering)1