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)) {