test/compiler/intrinsics/bmi/TestAndnL.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 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         }