Unreviewed, rolling out r249721.
[WebKit-https.git] / Source / JavaScriptCore / b3 / testb3_2.cpp
index 7cb34c8..bc61b54 100644 (file)
@@ -2565,24 +2565,6 @@ static void testBitAndNotNot(int64_t a, int64_t b)
     CHECK_EQ(compileAndRun<int64_t>(proc, a, b), (~a & ~b));
 }
 
-static void testBitAndNotNot32(int32_t a, int32_t b)
-{
-    Procedure proc;
-    BasicBlock* root = proc.addBlock();
-    Value* argA = root->appendNew<Value>(proc, Trunc, Origin(), root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0));
-    Value* argB = root->appendNew<Value>(proc, Trunc, Origin(), root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR1));
-    Value* notA = root->appendNew<Value>(proc, BitXor, Origin(), argA, root->appendNew<Const32Value>(proc, Origin(), -1));
-    Value* notB = root->appendNew<Value>(proc, BitXor, Origin(), argB, root->appendNew<Const32Value>(proc, Origin(), -1));
-    root->appendNewControlValue(
-        proc, Return, Origin(),
-        root->appendNew<Value>(
-            proc, BitAnd, Origin(),
-            notA,
-            notB));
-
-    CHECK_EQ(compileAndRun<int32_t>(proc, a, b), (~a & ~b));
-}
-
 static void testBitAndNotImm(int64_t a, int64_t b)
 {
     Procedure proc;
@@ -2597,24 +2579,7 @@ static void testBitAndNotImm(int64_t a, int64_t b)
             notA,
             cstB));
 
-    CHECK_EQ(compileAndRun<int64_t>(proc, a), (~a & b));
-}
-
-static void testBitAndNotImm32(int32_t a, int32_t b)
-{
-    Procedure proc;
-    BasicBlock* root = proc.addBlock();
-    Value* argA = root->appendNew<Value>(proc, Trunc, Origin(), root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0));
-    Value* notA = root->appendNew<Value>(proc, BitXor, Origin(), argA, root->appendNew<Const32Value>(proc, Origin(), -1));
-    Value* cstB = root->appendNew<Const32Value>(proc, Origin(), b);
-    root->appendNewControlValue(
-        proc, Return, Origin(),
-        root->appendNew<Value>(
-            proc, BitAnd, Origin(),
-            notA,
-            cstB));
-
-    CHECK_EQ(compileAndRun<int32_t>(proc, a), (~a & b));
+    CHECK_EQ(compileAndRun<int64_t>(proc, a, b), (~a & b));
 }
 
 static void testBitAndImms(int64_t a, int64_t b)
@@ -3029,34 +2994,6 @@ static void testBitOrAndAndArgs(int64_t a, int64_t b, int64_t c)
     }
 }
 
-static void testBitOrAndAndArgs32(int32_t a, int32_t b, int32_t c)
-{
-    // We want to check every possible ordering of arguments (to properly check every path in B3ReduceStrength):
-    // ((a & b) | (a & c))
-    // ((a & b) | (c & a))
-    // ((b & a) | (a & c))
-    // ((b & a) | (c & a))
-    for (int i = 0; i < 4; ++i) {
-        Procedure proc;
-        BasicBlock* root = proc.addBlock();
-        Value* argA = root->appendNew<Value>(proc, Trunc, Origin(), root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0));
-        Value* argB = root->appendNew<Value>(proc, Trunc, Origin(), root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR1));
-        Value* argC = root->appendNew<Value>(proc, Trunc, Origin(), root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR2));
-        Value* andAB = i & 2 ? root->appendNew<Value>(proc, BitAnd, Origin(), argA, argB)
-            : root->appendNew<Value>(proc, BitAnd, Origin(), argB, argA);
-        Value* andAC = i & 1 ? root->appendNew<Value>(proc, BitAnd, Origin(), argA, argC)
-            : root->appendNew<Value>(proc, BitAnd, Origin(), argC, argA);
-        root->appendNewControlValue(
-            proc, Return, Origin(),
-            root->appendNew<Value>(
-                proc, BitOr, Origin(),
-                andAB,
-                andAC));
-
-        CHECK_EQ(compileAndRun<int32_t>(proc, a, b, c), ((a & b) | (a & c)));
-    }
-}
-
 static void testBitOrAndSameArgs(int64_t a, int64_t b)
 {
     // We want to check every possible ordering of arguments (to properly check every path in B3ReduceStrength):
@@ -3079,28 +3016,6 @@ static void testBitOrAndSameArgs(int64_t a, int64_t b)
     }
 }
 
-static void testBitOrAndSameArgs32(int32_t a, int32_t b)
-{
-    // We want to check every possible ordering of arguments (to properly check every path in B3ReduceStrength):
-    // ((a & b) | a)
-    // ((b & a) | a)
-    // (a | (a & b))
-    // (a | (b & a))
-    for (int i = 0; i < 4; ++i) {
-        Procedure proc;
-        BasicBlock* root = proc.addBlock();
-        Value* argA = root->appendNew<Value>(proc, Trunc, Origin(), root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0));
-        Value* argB = root->appendNew<Value>(proc, Trunc, Origin(), root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR1));
-        Value* andAB = i & 1 ? root->appendNew<Value>(proc, BitAnd, Origin(), argA, argB)
-            : root->appendNew<Value>(proc, BitAnd, Origin(), argB, argA);
-        Value* result = i & 2 ? root->appendNew<Value>(proc, BitOr, Origin(), andAB, argA)
-            : root->appendNew<Value>(proc, BitOr, Origin(), argA, andAB);
-        root->appendNewControlValue(proc, Return, Origin(), result);
-
-        CHECK_EQ(compileAndRun<int32_t>(proc, a, b), ((a & b) | a));
-    }
-}
-
 static void testBitOrNotNot(int64_t a, int64_t b)
 {
     Procedure proc;
@@ -3119,24 +3034,6 @@ static void testBitOrNotNot(int64_t a, int64_t b)
     CHECK_EQ(compileAndRun<int64_t>(proc, a, b), (~a | ~b));
 }
 
-static void testBitOrNotNot32(int32_t a, int32_t b)
-{
-    Procedure proc;
-    BasicBlock* root = proc.addBlock();
-    Value* argA = root->appendNew<Value>(proc, Trunc, Origin(), root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0));
-    Value* argB = root->appendNew<Value>(proc, Trunc, Origin(), root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR1));
-    Value* notA = root->appendNew<Value>(proc, BitXor, Origin(), argA, root->appendNew<Const32Value>(proc, Origin(), -1));
-    Value* notB = root->appendNew<Value>(proc, BitXor, Origin(), argB, root->appendNew<Const32Value>(proc, Origin(), -1));
-    root->appendNewControlValue(
-        proc, Return, Origin(),
-        root->appendNew<Value>(
-            proc, BitOr, Origin(),
-            notA,
-            notB));
-
-    CHECK_EQ(compileAndRun<int32_t>(proc, a, b), (~a | ~b));
-}
-
 static void testBitOrNotImm(int64_t a, int64_t b)
 {
     Procedure proc;
@@ -3154,23 +3051,6 @@ static void testBitOrNotImm(int64_t a, int64_t b)
     CHECK_EQ(compileAndRun<int64_t>(proc, a, b), (~a | b));
 }
 
-static void testBitOrNotImm32(int32_t a, int32_t b)
-{
-    Procedure proc;
-    BasicBlock* root = proc.addBlock();
-    Value* argA = root->appendNew<Value>(proc, Trunc, Origin(), root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0));
-    Value* notA = root->appendNew<Value>(proc, BitXor, Origin(), argA, root->appendNew<Const32Value>(proc, Origin(), -1));
-    Value* cstB = root->appendNew<Const32Value>(proc, Origin(), b);
-    root->appendNewControlValue(
-        proc, Return, Origin(),
-        root->appendNew<Value>(
-            proc, BitOr, Origin(),
-            notA,
-            cstB));
-
-    CHECK_EQ(compileAndRun<int32_t>(proc, a), (~a | b));
-}
-
 static void testBitOrImms(int64_t a, int64_t b)
 {
     Procedure proc;
@@ -3407,9 +3287,7 @@ void addBitTests(const char* filter, Deque<RefPtr<SharedTask<void()>>>& tasks)
     RUN_BINARY(testBitAndImmsFloat, floatingPointOperands<float>(), floatingPointOperands<float>());
     RUN_BINARY(testBitAndArgsFloatWithUselessDoubleConversion, floatingPointOperands<float>(), floatingPointOperands<float>());
     RUN_BINARY(testBitAndNotNot, int64Operands(), int64Operands());
-    RUN_BINARY(testBitAndNotNot32, int32Operands(), int32Operands());
     RUN_BINARY(testBitAndNotImm, int64Operands(), int64Operands());
-    RUN_BINARY(testBitAndNotImm32, int32Operands(), int32Operands());
     
     RUN(testBitOrArgs(43, 43));
     RUN(testBitOrArgs(43, 0));
@@ -3473,13 +3351,9 @@ void addBitTests(const char* filter, Deque<RefPtr<SharedTask<void()>>>& tasks)
     RUN_BINARY(testBitOrImmsFloat, floatingPointOperands<float>(), floatingPointOperands<float>());
     RUN_BINARY(testBitOrArgsFloatWithUselessDoubleConversion, floatingPointOperands<float>(), floatingPointOperands<float>());
     RUN_TERNARY(testBitOrAndAndArgs, int64Operands(), int64Operands(), int64Operands());
-    RUN_TERNARY(testBitOrAndAndArgs32, int32Operands(), int32Operands(), int32Operands());
     RUN_BINARY(testBitOrAndSameArgs, int64Operands(), int64Operands());
-    RUN_BINARY(testBitOrAndSameArgs32, int32Operands(), int32Operands());
     RUN_BINARY(testBitOrNotNot, int64Operands(), int64Operands());
-    RUN_BINARY(testBitOrNotNot32, int32Operands(), int32Operands());
     RUN_BINARY(testBitOrNotImm, int64Operands(), int64Operands());
-    RUN_BINARY(testBitOrNotImm32, int32Operands(), int32Operands());
     
     RUN_BINARY(testBitXorArgs, int64Operands(), int64Operands());
     RUN_UNARY(testBitXorSameArg, int64Operands());
@@ -3519,9 +3393,7 @@ void addBitTests(const char* filter, Deque<RefPtr<SharedTask<void()>>>& tasks)
     RUN(testBitXorImmBitXorArgImm32(6, 1, 6));
     RUN(testBitXorImmBitXorArgImm32(24, 0xffff, 7));
     RUN_TERNARY(testBitXorAndAndArgs, int64Operands(), int64Operands(), int64Operands());
-    RUN_TERNARY(testBitXorAndAndArgs32, int32Operands(), int32Operands(), int32Operands());
     RUN_BINARY(testBitXorAndSameArgs, int64Operands(), int64Operands());
-    RUN_BINARY(testBitXorAndSameArgs32, int32Operands(), int32Operands());
     
     RUN_UNARY(testBitNotArg, int64Operands());
     RUN_UNARY(testBitNotImm, int64Operands());