From 28858d5902f84ab760c8531061d43539e2135ae1 Mon Sep 17 00:00:00 2001 From: Jakub Kuderski Date: Wed, 29 Mar 2023 10:40:11 -0400 Subject: [PATCH] [mlir][arith][NFC] Add missing index_cast fold tests It wasn't immediately obvious to me if index-to-integer casts were folded or not. Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D147104 --- mlir/test/Dialect/Arith/canonicalize.mlir | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/mlir/test/Dialect/Arith/canonicalize.mlir b/mlir/test/Dialect/Arith/canonicalize.mlir index 396f5ee..b75dfd7 100644 --- a/mlir/test/Dialect/Arith/canonicalize.mlir +++ b/mlir/test/Dialect/Arith/canonicalize.mlir @@ -431,21 +431,39 @@ func.func @indexCastUIOfUnsignedExtend(%arg0: i8) -> index { // CHECK-LABEL: @indexCastFold // CHECK: %[[res:.*]] = arith.constant -2 : index // CHECK: return %[[res]] -func.func @indexCastFold(%arg0: i8) -> index { +func.func @indexCastFold() -> index { %c-2 = arith.constant -2 : i8 %idx = arith.index_cast %c-2 : i8 to index return %idx : index } +// CHECK-LABEL: @indexCastFoldIndexToInt +// CHECK: %[[res:.*]] = arith.constant 1 : i32 +// CHECK: return %[[res]] +func.func @indexCastFoldIndexToInt() -> i32 { + %c1 = arith.constant 1 : index + %int = arith.index_cast %c1 : index to i32 + return %int : i32 +} + // CHECK-LABEL: @indexCastUIFold // CHECK: %[[res:.*]] = arith.constant 254 : index // CHECK: return %[[res]] -func.func @indexCastUIFold(%arg0: i8) -> index { +func.func @indexCastUIFold() -> index { %c-2 = arith.constant -2 : i8 %idx = arith.index_castui %c-2 : i8 to index return %idx : index } +// CHECK-LABEL: @indexCastUIFoldIndexToInt +// CHECK: %[[res:.*]] = arith.constant 1 : i32 +// CHECK: return %[[res]] +func.func @indexCastUIFoldIndexToInt() -> i32 { + %c1 = arith.constant 1 : index + %int = arith.index_castui %c1 : index to i32 + return %int : i32 +} + // CHECK-LABEL: @signExtendConstant // CHECK: %[[cres:.+]] = arith.constant -2 : i16 // CHECK: return %[[cres]] -- 2.7.4