Fix typo inversion in GenerateLastValueLinear

In https://android-review.googlesource.com/c/platform/art/+/2162257/3..5
we inverted an if clause but there was a typo when doing so and the
inversion has to be fixed.

Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b
Change-Id: I2ac8f64b832715dede2f7ccca627a0ef102dc0c2
diff --git a/compiler/optimizing/induction_var_range.cc b/compiler/optimizing/induction_var_range.cc
index cc62da8..7f85483 100644
--- a/compiler/optimizing/induction_var_range.cc
+++ b/compiler/optimizing/induction_var_range.cc
@@ -1128,7 +1128,7 @@
   DataType::Type type = info->type;
   // Avoid any narrowing linear induction or any type mismatch between the linear induction and the
   // trip count expression.
-  if (HInductionVarAnalysis::IsNarrowingLinear(info) && trip->type == info->type) {
+  if (HInductionVarAnalysis::IsNarrowingLinear(info) || trip->type != type) {
     return false;
   }
 
diff --git a/test/618-checker-induction/src/Main.java b/test/618-checker-induction/src/Main.java
index 7f17f30..824a8db 100644
--- a/test/618-checker-induction/src/Main.java
+++ b/test/618-checker-induction/src/Main.java
@@ -884,6 +884,32 @@
     return k;
   }
 
+  /// CHECK-START: long Main.closedLinearInductionUnmatchedTypesNotOptimized() loop_optimization (before)
+  /// CHECK-DAG: <<Phi1:i\d+>> Phi               loop:<<Loop:B\d+>> outer_loop:none
+  /// CHECK-DAG: <<Phi2:j\d+>> Phi               loop:<<Loop>>      outer_loop:none
+  //
+  /// CHECK-START: long Main.closedLinearInductionUnmatchedTypesNotOptimized() loop_optimization (after)
+  /// CHECK-DAG: <<Phi1:i\d+>> Phi               loop:<<Loop:B\d+>> outer_loop:none
+  /// CHECK-DAG: <<Phi2:j\d+>> Phi               loop:<<Loop>>      outer_loop:none
+  private static long closedLinearInductionUnmatchedTypesNotOptimized() {
+      long sum = 0;
+      for (int i = 0; i < 10; ++i) {
+          ++sum;
+      }
+      return sum;
+  }
+
+  /// CHECK-START: short Main.closedLinearInductionNarrowingNotOptimized() loop_optimization (before)
+  /// CHECK-DAG: <<Phi1:i\d+>> Phi               loop:<<Loop:B\d+>> outer_loop:none
+  //
+  /// CHECK-START: short Main.closedLinearInductionNarrowingNotOptimized() loop_optimization (after)
+  /// CHECK-DAG: <<Phi1:i\d+>> Phi               loop:<<Loop:B\d+>> outer_loop:none
+  private static short closedLinearInductionNarrowingNotOptimized() {
+      short i = 0;
+      for (; i < 10; ++i);
+      return i;
+  }
+
   public static void main(String[] args) {
     deadSingleLoop();
     deadSingleLoopN(4);
@@ -983,6 +1009,9 @@
     expectEquals(-41, exceptionExitBeforeAdd());
     expectEquals(-51, exceptionExitAfterAdd());
 
+    expectEquals(10, closedLinearInductionUnmatchedTypesNotOptimized());
+    expectEquals(10, closedLinearInductionNarrowingNotOptimized());
+
     System.out.println("passed");
   }