Re-enable Checker test 552-checker-x86-avx2-bit-manipulation
The Checker test was disabled with a TODO comment to be removed
when the 'hasIsaFeature()' test was available, which is now indeed
implemented. Thanks to that, it is now possible to filter the
avx-specific code to be tested only when the feature is present.
Test: art/test/testrunner/testrunner.py --target --64 -t 552-checker-x86-avx2-bit-manipulation
Change-Id: I24c847c49577f3e914c5df9aa3d528a3492d5200
diff --git a/test/552-checker-x86-avx2-bit-manipulation/src/Main.java b/test/552-checker-x86-avx2-bit-manipulation/src/Main.java
index b8138dd..e795a6c 100644
--- a/test/552-checker-x86-avx2-bit-manipulation/src/Main.java
+++ b/test/552-checker-x86-avx2-bit-manipulation/src/Main.java
@@ -35,17 +35,19 @@
/// CHECK-DAG: Not loop:none
/// CHECK-DAG: And loop:none
- // TODO:re-enable when checker supports isa features
- // CHECK-START-X86_64: long Main.and_not_64(long, long) instruction_simplifier_x86_64 (after)
- // CHECK-DAG: X86AndNot loop:<<Loop:B\d+>> outer_loop:none
- // CHECK-DAG: X86AndNot loop:none
+ /// CHECK-START-X86_64: long Main.and_not_64(long, long) instruction_simplifier_x86_64 (after)
+ /// CHECK-IF: hasIsaFeature('avx') or hasIsaFeature('avx2')
+ /// CHECK-DAG: X86AndNot loop:<<Loop:B\d+>> outer_loop:none
+ /// CHECK-DAG: X86AndNot loop:none
+ /// CHECK-FI:
- // TODO:re-enable when checker supports isa features
- // CHECK-START-X86_64: long Main.and_not_64(long, long) instruction_simplifier_x86_64 (after)
- // CHECK-NOT: Not loop:<<Loop>> outer_loop:none
- // CHECK-NOT: And loop:<<Loop>> outer_loop:none
- // CHECK-NOT: Not loop:none
- // CHECK-NOT: And loop:none
+ /// CHECK-START-X86_64: long Main.and_not_64(long, long) instruction_simplifier_x86_64 (after)
+ /// CHECK-IF: hasIsaFeature('avx') or hasIsaFeature('avx2')
+ /// CHECK-NOT: Not loop:<<Loop>> outer_loop:none
+ /// CHECK-NOT: And loop:<<Loop>> outer_loop:none
+ /// CHECK-NOT: Not loop:none
+ /// CHECK-NOT: And loop:none
+ /// CHECK-FI:
public static long and_not_64( long x, long y) {
long j = 1;
long k = 2;
@@ -65,18 +67,20 @@
/// CHECK-DAG: Not loop:none
/// CHECK-DAG: And loop:none
- // TODO:re-enable when checker supports isa features
- // CHECK-START-X86_64: int Main.and_not_32(int, int) instruction_simplifier_x86_64 (after)
- // CHECK-DAG: X86AndNot loop:<<Loop:B\d+>> outer_loop:none
- // CHECK-DAG: X86AndNot loop:<<Loop>> outer_loop:none
- // CHECK-DAG: X86AndNot loop:none
+ /// CHECK-START-X86_64: int Main.and_not_32(int, int) instruction_simplifier_x86_64 (after)
+ /// CHECK-IF: hasIsaFeature('avx') or hasIsaFeature('avx2')
+ /// CHECK-DAG: X86AndNot loop:<<Loop:B\d+>> outer_loop:none
+ /// CHECK-DAG: X86AndNot loop:<<Loop>> outer_loop:none
+ /// CHECK-DAG: X86AndNot loop:none
+ /// CHECK-FI:
- // TODO:re-enable when checker supports isa features
- // CHECK-START-X86_64: int Main.and_not_32(int, int) instruction_simplifier_x86_64 (after)
- // CHECK-NOT: Not loop:<<Loop>> outer_loop:none
- // CHECK-NOT: And loop:<<Loop>> outer_loop:none
- // CHECK-NOT: Not loop:none
- // CHECK-NOT: And loop:none
+ /// CHECK-START-X86_64: int Main.and_not_32(int, int) instruction_simplifier_x86_64 (after)
+ /// CHECK-IF: hasIsaFeature('avx') or hasIsaFeature('avx2')
+ /// CHECK-NOT: Not loop:<<Loop>> outer_loop:none
+ /// CHECK-NOT: And loop:<<Loop>> outer_loop:none
+ /// CHECK-NOT: Not loop:none
+ /// CHECK-NOT: And loop:none
+ /// CHECK-FI:
public static int and_not_32( int x, int y) {
int j = 1;
int k = 2;
@@ -107,20 +111,22 @@
/// CHECK-DAG: And loop:<<Loop>> outer_loop:none
- // TODO:re-enable when checker supports isa features
- // CHECK-START-X86_64: int Main.reset_lowest_set_bit_32(int) instruction_simplifier_x86_64 (after)
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop:B\d+>> outer_loop:none
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
+ /// CHECK-START-X86_64: int Main.reset_lowest_set_bit_32(int) instruction_simplifier_x86_64 (after)
+ /// CHECK-IF: hasIsaFeature('avx') or hasIsaFeature('avx2')
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop:B\d+>> outer_loop:none
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
+ /// CHECK-FI:
- // TODO:re-enable when checker supports isa features
- // CHECK-START-X86_64: int Main.reset_lowest_set_bit_32(int) instruction_simplifier_x86_64 (after)
- // CHECK-NOT: And loop:<<Loop>> outer_loop:none
+ /// CHECK-START-X86_64: int Main.reset_lowest_set_bit_32(int) instruction_simplifier_x86_64 (after)
+ /// CHECK-IF: hasIsaFeature('avx') or hasIsaFeature('avx2')
+ /// CHECK-NOT: And loop:<<Loop>> outer_loop:none
+ /// CHECK-FI:
public static int reset_lowest_set_bit_32(int x) {
int y = x;
int j = 5;
@@ -149,17 +155,19 @@
/// CHECK-DAG: Sub loop:<<Loop>> outer_loop:none
/// CHECK-DAG: And loop:<<Loop>> outer_loop:none
- // TODO:re-enable when checker supports isa features
- // CHECK-START-X86_64: long Main.reset_lowest_set_bit_64(long) instruction_simplifier_x86_64 (after)
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop:B\d+>> outer_loop:none
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
+ /// CHECK-START-X86_64: long Main.reset_lowest_set_bit_64(long) instruction_simplifier_x86_64 (after)
+ /// CHECK-IF: hasIsaFeature('avx') or hasIsaFeature('avx2')
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop:B\d+>> outer_loop:none
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:<<Loop>> outer_loop:none
+ /// CHECK-FI:
- // TODO:re-enable when checker supports isa features
- // CHECK-START-X86_64: long Main.reset_lowest_set_bit_64(long) instruction_simplifier_x86_64 (after)
- // CHECK-NOT: And loop:<<Loop>> outer_loop:none
- // CHECK-NOT: Sub loop:<<Loop>> outer_loop:none
+ /// CHECK-START-X86_64: long Main.reset_lowest_set_bit_64(long) instruction_simplifier_x86_64 (after)
+ /// CHECK-IF: hasIsaFeature('avx') or hasIsaFeature('avx2')
+ /// CHECK-NOT: And loop:<<Loop>> outer_loop:none
+ /// CHECK-NOT: Sub loop:<<Loop>> outer_loop:none
+ /// CHECK-FI:
public static long reset_lowest_set_bit_64(long x) {
long y = x;
long j = 5;
@@ -181,14 +189,16 @@
/// CHECK-DAG: Add loop:none
/// CHECK-DAG: Xor loop:none
- // TODO:re-enable when checker supports isa features
- // CHECK-START-X86_64: int Main.get_mask_lowest_set_bit_32(int) instruction_simplifier_x86_64 (after)
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:none
+ /// CHECK-START-X86_64: int Main.get_mask_lowest_set_bit_32(int) instruction_simplifier_x86_64 (after)
+ /// CHECK-IF: hasIsaFeature('avx') or hasIsaFeature('avx2')
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:none
+ /// CHECK-FI:
- // TODO:re-enable when checker supports isa features
- // CHECK-START-X86_64: int Main.get_mask_lowest_set_bit_32(int) instruction_simplifier_x86_64 (after)
- // CHECK-NOT: Add loop:none
- // CHECK-NOT: Xor loop:none
+ /// CHECK-START-X86_64: int Main.get_mask_lowest_set_bit_32(int) instruction_simplifier_x86_64 (after)
+ /// CHECK-IF: hasIsaFeature('avx') or hasIsaFeature('avx2')
+ /// CHECK-NOT: Add loop:none
+ /// CHECK-NOT: Xor loop:none
+ /// CHECK-FI:
public static int get_mask_lowest_set_bit_32(int x) {
return (x-1) ^ x;
}
@@ -197,14 +207,16 @@
/// CHECK-DAG: Sub loop:none
/// CHECK-DAG: Xor loop:none
- // TODO:re-enable when checker supports isa features
- // CHECK-START-X86_64: long Main.get_mask_lowest_set_bit_64(long) instruction_simplifier_x86_64 (after)
- // CHECK-DAG: X86MaskOrResetLeastSetBit loop:none
+ /// CHECK-START-X86_64: long Main.get_mask_lowest_set_bit_64(long) instruction_simplifier_x86_64 (after)
+ /// CHECK-IF: hasIsaFeature('avx') or hasIsaFeature('avx2')
+ /// CHECK-DAG: X86MaskOrResetLeastSetBit loop:none
+ /// CHECK-FI:
- // TODO:re-enable when checker supports isa features
- // CHECK-START-X86_64: long Main.get_mask_lowest_set_bit_64(long) instruction_simplifier_x86_64 (after)
- // CHECK-NOT: Sub loop:none
- // CHECK-NOT: Xor loop:none
+ /// CHECK-START-X86_64: long Main.get_mask_lowest_set_bit_64(long) instruction_simplifier_x86_64 (after)
+ /// CHECK-IF: hasIsaFeature('avx') or hasIsaFeature('avx2')
+ /// CHECK-NOT: Sub loop:none
+ /// CHECK-NOT: Xor loop:none
+ /// CHECK-FI:
public static long get_mask_lowest_set_bit_64(long x) {
return (x-1) ^ x;
}