24
25 /**
26 * @test
27 * @bug 8031321
28 * @summary Verify that results of computations are the same w/
29 * and w/o usage of ANDN instruction
30 * @library /testlibrary /testlibrary/whitebox
31 * @build TestAndnL 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 TestAndnL
36 */
37
38 import sun.hotspot.cpuinfo.CPUInfo;
39
40 public class TestAndnL {
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(AndnLExpr.class, args,
50 "-XX:+UseBMI1Instructions");
51 BMITestRunner.runTests(AndnLCommutativeExpr.class, args,
52 "-XX:+UseBMI1Instructions");
53 }
54
55 public static class AndnLExpr extends Expr.BMIBinaryLongExpr {
56
57 public long longExpr(long src1, long src2) {
58 return ~src1 & src2;
59 }
60
61 public long longExpr(long src1, Expr.MemL src2) {
62 return ~src1 & src2.value;
63 }
64
65 public long longExpr(Expr.MemL src1, long src2) {
66 return ~src1.value & src2;
67 }
68
69 public long longExpr(Expr.MemL src1, Expr.MemL src2) {
70 return ~src1.value & src2.value;
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 ANDN instruction
30 * @library /testlibrary /testlibrary/whitebox
31 * @build TestAndnL 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 TestAndnL
36 */
37
38 import sun.hotspot.cpuinfo.CPUInfo;
39
40 public class TestAndnL {
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(AndnLExpr.class, args,
48 "-XX:+IgnoreUnrecognizedVMOptions",
49 "-XX:+UseBMI1Instructions");
50 BMITestRunner.runTests(AndnLCommutativeExpr.class, args,
51 "-XX:+IgnoreUnrecognizedVMOptions",
52 "-XX:+UseBMI1Instructions");
53 }
54
55 public static class AndnLExpr extends Expr.BMIBinaryLongExpr {
56
57 public long longExpr(long src1, long src2) {
58 return ~src1 & src2;
59 }
60
61 public long longExpr(long src1, Expr.MemL src2) {
62 return ~src1 & src2.value;
63 }
64
65 public long longExpr(Expr.MemL src1, long src2) {
66 return ~src1.value & src2;
67 }
68
69 public long longExpr(Expr.MemL src1, Expr.MemL src2) {
70 return ~src1.value & src2.value;
71 }
|