diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoD.td b/llvm/lib/Target/RISCV/RISCVInstrInfoD.td index 414e093510607..3d9737e3645d5 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoD.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoD.td @@ -401,6 +401,7 @@ foreach Ext = DExts in { defm : PatFprFpr_m; defm : PatFprFpr_m; defm : PatFprFpr_m; + let Predicates = Ext.Predicates in def : Pat<(f64 (fcanonicalize FPR64:$rs1)), (FMIN_D $rs1, $rs1)>; } diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoF.td b/llvm/lib/Target/RISCV/RISCVInstrInfoF.td index 84a75666e5f36..2c1cf77acff56 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoF.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoF.td @@ -655,6 +655,7 @@ foreach Ext = FExts in { defm : PatFprFpr_m; defm : PatFprFpr_m; defm : PatFprFpr_m; + let Predicates = Ext.Predicates in def : Pat<(f32 (fcanonicalize FPR32:$rs1)), (FMIN_S $rs1, $rs1)>; } diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoZfh.td b/llvm/lib/Target/RISCV/RISCVInstrInfoZfh.td index b3554ba81e387..014da990a0146 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoZfh.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoZfh.td @@ -380,6 +380,7 @@ foreach Ext = ZfhExts in { defm : PatFprFpr_m; defm : PatFprFpr_m; defm : PatFprFpr_m; + let Predicates = Ext.Predicates in def : Pat<(f16 (fcanonicalize FPR16:$rs1)), (FMIN_H $rs1, $rs1)>; }