71 lines
2.3 KiB
MLIR
71 lines
2.3 KiB
MLIR
// RUN: mlir-opt -split-input-file -verify-diagnostics %s | FileCheck %s
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
// spirv.INTEL.ConvertFToBF16
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
spirv.func @f32_to_bf16(%arg0 : f32) "None" {
|
|
// CHECK: {{%.*}} = spirv.INTEL.ConvertFToBF16 {{%.*}} : f32 to i16
|
|
%0 = spirv.INTEL.ConvertFToBF16 %arg0 : f32 to i16
|
|
spirv.Return
|
|
}
|
|
|
|
// -----
|
|
|
|
spirv.func @f32_to_bf16_vec(%arg0 : vector<2xf32>) "None" {
|
|
// CHECK: {{%.*}} = spirv.INTEL.ConvertFToBF16 {{%.*}} : vector<2xf32> to vector<2xi16>
|
|
%0 = spirv.INTEL.ConvertFToBF16 %arg0 : vector<2xf32> to vector<2xi16>
|
|
spirv.Return
|
|
}
|
|
|
|
// -----
|
|
|
|
spirv.func @f32_to_bf16_unsupported(%arg0 : f64) "None" {
|
|
// expected-error @+1 {{operand #0 must be Float32 or vector of Float32 values of length 2/3/4/8/16, but got}}
|
|
%0 = spirv.INTEL.ConvertFToBF16 %arg0 : f64 to i16
|
|
spirv.Return
|
|
}
|
|
|
|
// -----
|
|
|
|
spirv.func @f32_to_bf16_vec_unsupported(%arg0 : vector<2xf32>) "None" {
|
|
// expected-error @+1 {{operand and result must have same number of elements}}
|
|
%0 = spirv.INTEL.ConvertFToBF16 %arg0 : vector<2xf32> to vector<4xi16>
|
|
spirv.Return
|
|
}
|
|
|
|
// -----
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
// spirv.INTEL.ConvertBF16ToF
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
spirv.func @bf16_to_f32(%arg0 : i16) "None" {
|
|
// CHECK: {{%.*}} = spirv.INTEL.ConvertBF16ToF {{%.*}} : i16 to f32
|
|
%0 = spirv.INTEL.ConvertBF16ToF %arg0 : i16 to f32
|
|
spirv.Return
|
|
}
|
|
|
|
// -----
|
|
|
|
spirv.func @bf16_to_f32_vec(%arg0 : vector<2xi16>) "None" {
|
|
// CHECK: {{%.*}} = spirv.INTEL.ConvertBF16ToF {{%.*}} : vector<2xi16> to vector<2xf32>
|
|
%0 = spirv.INTEL.ConvertBF16ToF %arg0 : vector<2xi16> to vector<2xf32>
|
|
spirv.Return
|
|
}
|
|
|
|
// -----
|
|
|
|
spirv.func @bf16_to_f32_unsupported(%arg0 : i16) "None" {
|
|
// expected-error @+1 {{result #0 must be Float32 or vector of Float32 values of length 2/3/4/8/16, but got}}
|
|
%0 = spirv.INTEL.ConvertBF16ToF %arg0 : i16 to f16
|
|
spirv.Return
|
|
}
|
|
|
|
// -----
|
|
|
|
spirv.func @bf16_to_f32_vec_unsupported(%arg0 : vector<2xi16>) "None" {
|
|
// expected-error @+1 {{operand and result must have same number of elements}}
|
|
%0 = spirv.INTEL.ConvertBF16ToF %arg0 : vector<2xi16> to vector<3xf32>
|
|
spirv.Return
|
|
}
|