// RUN: fir-opt --canonicalize %s | FileCheck %s

// CHECK-LABEL: @ftest
func @ftest(%x : i1) -> i1 {
  // this pair of converts should be folded and DCEd
  %1 = fir.convert %x : (i1) -> !fir.logical<1>
  %2 = fir.convert %1 : (!fir.logical<1>) -> i1
  // CHECK-NEXT: return %{{.*}} : i1
  return %2 : i1
}

// CHECK-LABEL: @gtest
func @gtest(%x : !fir.logical<2>) -> !fir.logical<2> {
  // this pair of converts should be folded and DCEd
  %1 = fir.convert %x : (!fir.logical<2>) -> i1
  %2 = fir.convert %1 : (i1) -> !fir.logical<2>
  // CHECK-NEXT: return %{{.*}} : !fir.logical<2>
  return %2 : !fir.logical<2>
}

// CHECK-LABEL: @htest
func @htest(%x : !fir.int<4>) -> !fir.int<4> {
  // these converts are NOPs and should be folded away
  %1 = fir.convert %x : (!fir.int<4>) -> !fir.int<4>
  %2 = fir.convert %1 : (!fir.int<4>) -> !fir.int<4>
  // CHECK-NEXT: return %{{.*}} : !fir.int<4>
  return %2 : !fir.int<4>
}

// CHECK-LABEL: @ctest
func @ctest() -> index {
  %1 = arith.constant 10 : i32
  %2 = fir.convert %1 : (i32) -> index
  // CHECK-NEXT: %{{.*}} = arith.constant 10 : index
  // CHECK-NEXT: return %{{.*}} : index
  return %2 : index
}
