@@ -191,8 +191,10 @@ LogicalResult ConvertFloatToTF32Op::verify() {
191191
192192LogicalResult ConvertF32x2ToF6x2Op::verify () {
193193 if (!llvm::isa<mlir::Float6E2M3FNType, mlir::Float6E3M2FNType>(getDstTy ())) {
194- return emitError (" Only f6E2M3FN and f6E3M2FN types are supported for "
195- " ConvertF32x2ToF6x2Op." );
194+ return emitOpError (" Only " )
195+ << mlir::Float6E2M3FNType::get (getContext ()) << " and "
196+ << mlir::Float6E3M2FNType::get (getContext ())
197+ << " types are supported for conversions from f32x2 to f6x2." ;
196198 }
197199 return success ();
198200}
@@ -212,38 +214,48 @@ LogicalResult ConvertF32x2ToF8x2Op::verify() {
212214 .Case <mlir::Float8E4M3FNType, mlir::Float8E5M2Type>(
213215 [&](mlir::Type) -> LogicalResult {
214216 if (!isRoundingModeRN) {
215- return emitOpError (
216- " Only RN rounding mode is supported for conversions from "
217- " f32x2 to f8E4M3FNx2 or f8E5M2x2 types" );
217+ return emitOpError (" Only RN rounding mode is supported for "
218+ " conversions from f32x2 to " )
219+ << mlir::Float8E4M3FNType::get (getContext ()) << " and "
220+ << mlir::Float8E5M2Type::get (getContext ()) << " types" ;
218221 }
219222 if (!isSatFinite) {
220- return emitOpError (
221- " Only SATFINITE saturation mode is supported for conversions "
222- " from f32x2 to f8E4M3FNx2 or f8E5M2x2 types" );
223+ return emitOpError (" Only SATFINITE saturation mode is supported "
224+ " for conversions "
225+ " from f32x2 to " )
226+ << mlir::Float8E4M3FNType::get (getContext ()) << " and "
227+ << mlir::Float8E5M2Type::get (getContext ()) << " types" ;
223228 }
224229 return success ();
225230 })
226231 .Case <mlir::Float8E8M0FNUType>([&](mlir::Type) -> LogicalResult {
227232 if (!(isRoundingModeRZ || isRoundingModeRP)) {
228- return emitOpError (" Only RZ or RP rounding modes are supported for "
229- " conversions from f32x2 to f8E8M0FNUx2 type" );
233+ return emitOpError (" Only RZ and RP rounding modes are supported for "
234+ " conversions from f32x2 to " )
235+ << mlir::Float8E8M0FNUType::get (getContext ()) << " type" ;
230236 }
231237 if (hasRelu) {
232- return emitOpError (
233- " relu not supported for conversions to f8E8M0FNUx2 type" ) ;
238+ return emitOpError (" relu not supported for conversions to " )
239+ << mlir::Float8E8M0FNUType::get ( getContext ()) << " type" ;
234240 }
235241 return success ();
236242 })
237243 .Default ([this ](mlir::Type) {
238- return emitOpError (" Only f8e4m3fn, f8e5m2, and f8e8m0fnu types are "
239- " supported for conversions from f32x2 to f8x2" );
244+ return emitOpError (" Only " )
245+ << mlir::Float8E4M3FNType::get (getContext ()) << " , "
246+ << mlir::Float8E5M2Type::get (getContext ()) << " , and "
247+ << mlir::Float8E8M0FNUType::get (getContext ())
248+ << " types are "
249+ " supported for conversions from f32x2 to f8x2" ;
240250 });
241251}
242252
243253LogicalResult ConvertF16x2ToF8x2Op::verify () {
244254 if (!llvm::isa<mlir::Float8E4M3FNType, mlir::Float8E5M2Type>(getDstTy ())) {
245- return emitOpError (" Only f8E4M3FN or f8E5M2 types are supported for "
246- " conversions from f16x2 to f8x2." );
255+ return emitOpError (" Only " )
256+ << mlir::Float8E4M3FNType::get (getContext ()) << " and "
257+ << mlir::Float8E5M2Type::get (getContext ())
258+ << " types are supported for conversions from f16x2 to f8x2." ;
247259 }
248260 return success ();
249261}
@@ -252,8 +264,9 @@ LogicalResult ConvertBF16x2ToF8x2Op::verify() {
252264 using RndMode = NVVM::FPRoundingMode;
253265
254266 if (!llvm::isa<mlir::Float8E8M0FNUType>(getDstTy ()))
255- return emitOpError (" Only f8E8M0FNU type is supported for conversions from "
256- " bf16x2 to f8x2." );
267+ return emitOpError (" Only " ) << mlir::Float8E8M0FNUType::get (getContext ())
268+ << " type is supported for conversions from "
269+ " bf16x2 to f8x2." ;
257270
258271 auto rnd = getRnd ();
259272 if (!(rnd == RndMode::RZ || rnd == RndMode::RP))
0 commit comments