From 8860679203dc32c8e43146508281ce17446d5b51 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 15 Sep 2025 11:35:28 -0700 Subject: [PATCH] [RISCV] Add Predicates to fcanonicalize patterns. NFC This doesn't matter in practice since the only way fcanonicalize can make it to isel is if the predicate is already true, but it's good to be consistent. --- llvm/lib/Target/RISCV/RISCVInstrInfoD.td | 1 + llvm/lib/Target/RISCV/RISCVInstrInfoF.td | 1 + llvm/lib/Target/RISCV/RISCVInstrInfoZfh.td | 1 + 3 files changed, 3 insertions(+) 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)>; }