test/compiler/intrinsics/bmi/TestBlsrL.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 BLSR instruction
  30  * @library /testlibrary /testlibrary/whitebox
  31  * @build TestBlsrL 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 TestBlsrL
  36  */
  37 
  38 import sun.hotspot.cpuinfo.CPUInfo;
  39 
  40 public class TestBlsrL {
  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(BlsrLExpr.class, args,

  50                                "-XX:+UseBMI1Instructions");
  51         BMITestRunner.runTests(BlsrLCommutativeExpr.class, args,

  52                                "-XX:+UseBMI1Instructions");
  53     }
  54 
  55     public static class BlsrLExpr extends Expr.BMIUnaryLongExpr {
  56 
  57         public long longExpr(long src) {
  58             return (src - 1) & src;
  59         }
  60 
  61         public long longExpr(Expr.MemL src) {
  62             return (src.value - 1) & src.value;
  63         }
  64 
  65     }
  66 
  67     public static class BlsrLCommutativeExpr extends Expr.BMIUnaryLongExpr {
  68 
  69         public long longExpr(long 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 BLSR instruction
  30  * @library /testlibrary /testlibrary/whitebox
  31  * @build TestBlsrL 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 TestBlsrL
  36  */
  37 
  38 import sun.hotspot.cpuinfo.CPUInfo;
  39 
  40 public class TestBlsrL {
  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(BlsrLExpr.class, args,
  48                                "-XX:+IgnoreUnrecognizedVMOptions",
  49                                "-XX:+UseBMI1Instructions");
  50         BMITestRunner.runTests(BlsrLCommutativeExpr.class, args,
  51                                "-XX:+IgnoreUnrecognizedVMOptions",
  52                                "-XX:+UseBMI1Instructions");
  53     }
  54 
  55     public static class BlsrLExpr extends Expr.BMIUnaryLongExpr {
  56 
  57         public long longExpr(long src) {
  58             return (src - 1) & src;
  59         }
  60 
  61         public long longExpr(Expr.MemL src) {
  62             return (src.value - 1) & src.value;
  63         }
  64 
  65     }
  66 
  67     public static class BlsrLCommutativeExpr extends Expr.BMIUnaryLongExpr {
  68 
  69         public long longExpr(long src) {
  70             return src & (src - 1);
  71         }