[llvm] [RISCV] Treat bf16->f32 as separate ExtKind in combineOp_VLToVWOp_VL. (PR #144653)
Luke Lau via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 19 15:43:13 PDT 2025
================
@@ -16628,17 +16630,17 @@ struct NodeExtensionHelper {
EnforceOneUse = false;
}
- bool isSupportedFPExtend(SDNode *Root, MVT NarrowEltVT,
- const RISCVSubtarget &Subtarget) {
+ bool isSupportedFPExtend(MVT NarrowEltVT, const RISCVSubtarget &Subtarget) {
+ if (NarrowEltVT == MVT::f32)
+ return true;
// Any f16 extension will need zvfh
- if (NarrowEltVT == MVT::f16 && !Subtarget.hasVInstructionsF16())
- return false;
- // The only bf16 extension we can do is vfmadd_vl -> vfwmadd_vl with
- // zvfbfwma
- if (NarrowEltVT == MVT::bf16 && (!Subtarget.hasStdExtZvfbfwma() ||
- Root->getOpcode() != RISCVISD::VFMADD_VL))
- return false;
- return true;
+ if (NarrowEltVT == MVT::f16 && Subtarget.hasVInstructionsF16())
+ return true;
+ return false;
----------------
lukel97 wrote:
Nit, merge into `return NarrowEltVT == MVT::f32 || (NarrowEltVT == MVT::f16 && Subtarget.hasVInstructionsF16())`?
https://github.com/llvm/llvm-project/pull/144653
More information about the llvm-commits
mailing list