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 TestAndnI 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 TestAndnI
36 */
37
38 import sun.hotspot.cpuinfo.CPUInfo;
39
40 public class TestAndnI {
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(AndnIExpr.class, args,
50 "-XX:+UseBMI1Instructions");
51 BMITestRunner.runTests(AndnICommutativeExpr.class, args,
52 "-XX:+UseBMI1Instructions");
53 }
54
55 public static class AndnIExpr extends Expr.BMIBinaryIntExpr {
56
57 public int intExpr(int src1, int src2) {
58 return ~src1 & src2;
59 }
60
61 public int intExpr(int src1, Expr.MemI src2) {
62 return ~src1 & src2.value;
63 }
64
65 public int intExpr(Expr.MemI src1, int src2) {
66 return ~src1.value & src2;
67 }
68
69 public int intExpr(Expr.MemI src1, Expr.MemI 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 TestAndnI 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 TestAndnI
36 */
37
38 import sun.hotspot.cpuinfo.CPUInfo;
39
40 public class TestAndnI {
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(AndnIExpr.class, args,
48 "-XX:+IgnoreUnrecognizedVMOptions",
49 "-XX:+UseBMI1Instructions");
50 BMITestRunner.runTests(AndnICommutativeExpr.class, args,
51 "-XX:+IgnoreUnrecognizedVMOptions",
52 "-XX:+UseBMI1Instructions");
53 }
54
55 public static class AndnIExpr extends Expr.BMIBinaryIntExpr {
56
57 public int intExpr(int src1, int src2) {
58 return ~src1 & src2;
59 }
60
61 public int intExpr(int src1, Expr.MemI src2) {
62 return ~src1 & src2.value;
63 }
64
65 public int intExpr(Expr.MemI src1, int src2) {
66 return ~src1.value & src2;
67 }
68
69 public int intExpr(Expr.MemI src1, Expr.MemI src2) {
70 return ~src1.value & src2.value;
71 }
|