[clang] [X86][CIR]Implement handling for F16 halfs to float conversion builtins (PR #173572)
Priyanshu Kumar via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 6 09:12:09 PST 2026
================
@@ -446,6 +446,45 @@ static mlir::Value emitX86Muldq(CIRGenBuilderTy &builder, mlir::Location loc,
return builder.createMul(loc, lhs, rhs);
}
+// Convert F16 halfs to floats.
+static mlir::Value emitX86CvtF16ToFloatExpr(CIRGenBuilderTy &builder,
+ mlir::Location loc,
+ const StringRef str,
+ llvm::ArrayRef<mlir::Value> ops,
+ mlir::Type dstTy) {
+ assert((ops.size() == 1 || ops.size() == 3 || ops.size() == 4) &&
+ "Unknown cvtph2ps intrinsic");
+
+ // If the SAE intrinsic doesn't use default rounding then we can't upgrade.
+ if (ops.size() == 4 &&
+ ops[3].getDefiningOp<cir::ConstantOp>().getIntValue().getZExtValue() !=
----------------
Priyanshu3820 wrote:
done
https://github.com/llvm/llvm-project/pull/173572
More information about the cfe-commits
mailing list