Range Analysis: Assert result type must not equal operand type in convert

This patch adds the `TINT_ASSERT` that the result type must not equal
the operand type in convert instruction as is required in core.def.

Bug: 348701956
Change-Id: Idec38c549270ae14f9c5bbc5628cc186c55b1d2e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/246235
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
diff --git a/src/tint/lang/core/ir/analysis/integer_range_analysis.cc b/src/tint/lang/core/ir/analysis/integer_range_analysis.cc
index c316b63..1ec3bc2 100644
--- a/src/tint/lang/core/ir/analysis/integer_range_analysis.cc
+++ b/src/tint/lang/core/ir/analysis/integer_range_analysis.cc
@@ -194,12 +194,9 @@
         if (!operand_range_info) {
             return nullptr;
         }
-        auto* operand_type = operand->Type();
-        TINT_ASSERT(operand_type->IsIntegerScalar());
 
-        if (operand_type == result_type) {
-            return operand_range_info;
-        }
+        TINT_ASSERT(operand->Type()->IsIntegerScalar());
+        TINT_ASSERT(operand->Type() != result_type);
 
         if (std::holds_alternative<IntegerRangeInfo::SignedIntegerRange>(
                 operand_range_info->range)) {