blob: 7120882b0c07c0b483b4b4d884c386b63019864c [file] [log] [blame]
// RUN: mlir-opt --test-emulate-narrow-int="arith-compute-bitwidth=8" %s | FileCheck %s
// Expect no conversions, f32 is not an integer type.
// CHECK-LABEL: func @identity_f32
// CHECK-SAME: ([[ARG:%.+]]: f32) -> f32
// CHECK-NEXT: return [[ARG]] : f32
func.func @identity_f32(%a : f32) -> f32 {
return %a : f32
}
// Expect no conversions, i32 is supported.
// CHECK-LABEL: func @identity_i32
// CHECK-SAME: ([[ARG:%.+]]: vector<2xi32>) -> vector<2xi32>
// CHECK-NEXT: return [[ARG]] : vector<2xi32>
func.func @identity_i32(%a : vector<2xi32>) -> vector<2xi32> {
return %a : vector<2xi32>
}
// CHECK-LABEL: func @identity_scalar
// CHECK-SAME: ([[ARG:%.+]]: i8) -> i8
// CHECK-NEXT: return [[ARG]] : i8
func.func @identity_scalar(%x : i4) -> i4 {
return %x : i4
}
// CHECK-LABEL: func @identity_vector
// CHECK-SAME: ([[ARG:%.+]]: vector<4xi8>) -> vector<4xi8>
// CHECK-NEXT: return [[ARG]] : vector<4xi8>
func.func @identity_vector(%x : vector<4xi4>) -> vector<4xi4> {
return %x : vector<4xi4>
}
// CHECK-LABEL: func @identity_vector2d
// CHECK-SAME: ([[ARG:%.+]]: vector<3x4xi8>) -> vector<3x4xi8>
// CHECK-NEXT: return [[ARG]] : vector<3x4xi8>
func.func @identity_vector2d(%x : vector<3x4xi4>) -> vector<3x4xi4> {
return %x : vector<3x4xi4>
}
// CHECK-LABEL: func @call
// CHECK-SAME: ([[ARG:%.+]]: vector<4xi8>) -> vector<4xi8>
// CHECK-NEXT: [[RES:%.+]] = call @identity_vector([[ARG]]) : (vector<4xi8>) -> vector<4xi8>
// CHECK-NEXT: return [[RES]] : vector<4xi8>
func.func @call(%a : vector<4xi4>) -> vector<4xi4> {
%res = func.call @identity_vector(%a) : (vector<4xi4>) -> vector<4xi4>
return %res : vector<4xi4>
}