@@ -1938,18 +1938,18 @@ func.func @test_dynamic_fft2d(%arg0: tensor<?x?x?xf32>, %arg1: tensor<?x?x?xf32>
19381938
19391939// CHECK-LABEL: func.func @test_cast_fp32_i64(
19401940// CHECK-SAME: %[[ARG0:.*]]: tensor<1xf32>) -> tensor<1xi64> {
1941- // CHECK: %[[VAL_0 :.*]] = tensor.empty() : tensor<1xi64>
1942- // CHECK: %[[RESULT:.*]] = linalg.generic {indexing_maps = [#[[$MAP0]], #[[$MAP1]]], iterator_types = ["parallel"]} ins(%[[ARG0]] : tensor<1xf32>) outs(%[[VAL_0 ]] : tensor<1xi64>) {
1943- // CHECK: ^bb0(%[[VAL_2 :.*]]: f32, %[[VAL_3 :.*]]: i64):
1944- // CHECK: %[[VAL_4 :.*]] = math.roundeven %[[VAL_2 ]] : f32
1945- // CHECK: %[[VAL_5 :.*]] = arith.constant -9.22337203E+18 : f32
1946- // CHECK: %[[VAL_6 :.*]] = arith.constant 9.22337203E+18 : f32
1947- // CHECK: %[[VAL_7 :.*]] = arith.constant 9223372036854775807 : i64
1948- // CHECK: %[[VAL_8 :.*]] = arith.maximumf %[[VAL_4 ]], %[[VAL_5 ]] : f32
1949- // CHECK: %[[VAL_9 :.*]] = arith.fptosi %[[VAL_8 ]] : f32 to i64
1950- // CHECK: %[[VAL_10 :.*]] = arith.cmpf uge, %[[VAL_4 ]], %[[VAL_6 ]] : f32
1951- // CHECK: %[[VAL_11 :.*]] = arith.select %[[VAL_10 ]], %[[VAL_7 ]], %[[VAL_9 ]] : i64
1952- // CHECK: linalg.yield %[[VAL_11 ]] : i64
1941+ // CHECK: %[[EMPTY_TENSOR :.*]] = tensor.empty() : tensor<1xi64>
1942+ // CHECK: %[[RESULT:.*]] = linalg.generic {indexing_maps = [#[[$MAP0]], #[[$MAP1]]], iterator_types = ["parallel"]} ins(%[[ARG0]] : tensor<1xf32>) outs(%[[EMPTY_TENSOR ]] : tensor<1xi64>) {
1943+ // CHECK: ^bb0(%[[IN :.*]]: f32, %[[OUT :.*]]: i64):
1944+ // CHECK: %[[ROUND_EVEN :.*]] = math.roundeven %[[IN ]] : f32
1945+ // CHECK: %[[FP_INT_MIN :.*]] = arith.constant -9.22337203E+18 : f32
1946+ // CHECK: %[[FP_INT_MAX_PLUS_ONE :.*]] = arith.constant 9.22337203E+18 : f32
1947+ // CHECK: %[[INT_MAX :.*]] = arith.constant 9223372036854775807 : i64
1948+ // CHECK: %[[MAX :.*]] = arith.maximumf %[[ROUND_EVEN ]], %[[FP_INT_MIN ]] : f32
1949+ // CHECK: %[[FPTOSI :.*]] = arith.fptosi %[[MAX ]] : f32 to i64
1950+ // CHECK: %[[CMPF :.*]] = arith.cmpf uge, %[[ROUND_EVEN ]], %[[FP_INT_MAX_PLUS_ONE ]] : f32
1951+ // CHECK: %[[SELECT :.*]] = arith.select %[[CMPF ]], %[[INT_MAX ]], %[[FPTOSI ]] : i64
1952+ // CHECK: linalg.yield %[[SELECT ]] : i64
19531953// CHECK: } -> tensor<1xi64>
19541954// CHECK: return %[[RESULT]] : tensor<1xi64>
19551955func.func @test_cast_fp32_i64 (%arg0: tensor <1 xf32 >) -> (tensor <1 xi64 >) {
0 commit comments