test/compiler/intrinsics/bmi/TestAndnI.java

Print this page
rev 7044 : 8043674: Update compiler/intrinsic/bmi tests to run it on all platforms
Reviewed-by: fzhinkin
Contributed-by: Dmitrij Pochepko <dmitrij.pochepko@oracle.com>


  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         }