24
25 /**
26 * @test
27 * @bug 8031321
28 * @summary Verify that results of computations are the same w/
29 * and w/o usage of BLSMSK instruction
30 * @library /testlibrary /testlibrary/whitebox
31 * @build TestBlsmskI BMITestRunner Expr
32 * @run main ClassFileInstaller sun.hotspot.WhiteBox
33 * sun.hotspot.WhiteBox$WhiteBoxPermission
34 * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions
35 * -XX:+WhiteBoxAPI TestBlsmskI
36 */
37
38 import sun.hotspot.cpuinfo.CPUInfo;
39
40 public class TestBlsmskI {
41
42 public static void main(String args[]) throws Throwable {
43 if (!CPUInfo.hasFeature("bmi1")) {
44 System.out.println("CPU does not support bmi1 feature. " +
45 "Test skipped.");
46 return;
47 }
48
49 BMITestRunner.runTests(BlsmskIExpr.class, args,
50 "-XX:+UseBMI1Instructions");
51 BMITestRunner.runTests(BlsmskICommutativeExpr.class, args,
52 "-XX:+UseBMI1Instructions");
53 }
54
55 public static class BlsmskIExpr extends Expr.BMIUnaryIntExpr {
56
57 public int intExpr(int src) {
58 return (src - 1) ^ src;
59 }
60
61 public int intExpr(Expr.MemI src) {
62 return (src.value - 1) ^ src.value;
63 }
64
65 }
66
67 public static class BlsmskICommutativeExpr extends Expr.BMIUnaryIntExpr {
68
69 public int intExpr(int src) {
70 return src ^ (src - 1);
71 }
|
24
25 /**
26 * @test
27 * @bug 8031321
28 * @summary Verify that results of computations are the same w/
29 * and w/o usage of BLSMSK instruction
30 * @library /testlibrary /testlibrary/whitebox
31 * @build TestBlsmskI BMITestRunner Expr
32 * @run main ClassFileInstaller sun.hotspot.WhiteBox
33 * sun.hotspot.WhiteBox$WhiteBoxPermission
34 * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions
35 * -XX:+WhiteBoxAPI TestBlsmskI
36 */
37
38 import sun.hotspot.cpuinfo.CPUInfo;
39
40 public class TestBlsmskI {
41
42 public static void main(String args[]) throws Throwable {
43 if (!CPUInfo.hasFeature("bmi1")) {
44 System.out.println("INFO: CPU does not support bmi1 feature.");
45 }
46
47 BMITestRunner.runTests(BlsmskIExpr.class, args,
48 "-XX:+IgnoreUnrecognizedVMOptions",
49 "-XX:+UseBMI1Instructions");
50 BMITestRunner.runTests(BlsmskICommutativeExpr.class, args,
51 "-XX:+IgnoreUnrecognizedVMOptions",
52 "-XX:+UseBMI1Instructions");
53 }
54
55 public static class BlsmskIExpr extends Expr.BMIUnaryIntExpr {
56
57 public int intExpr(int src) {
58 return (src - 1) ^ src;
59 }
60
61 public int intExpr(Expr.MemI src) {
62 return (src.value - 1) ^ src.value;
63 }
64
65 }
66
67 public static class BlsmskICommutativeExpr extends Expr.BMIUnaryIntExpr {
68
69 public int intExpr(int src) {
70 return src ^ (src - 1);
71 }
|