[llvm] [LoongArch] Optimize conditional branches (PR #147885)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 18 21:08:20 PDT 2025
================
@@ -208,16 +212,18 @@ def : PatFPSetcc<SETUO, FCMP_CUN_S, FPR32>;
def : PatFPSetcc<SETLT, FCMP_CLT_S, FPR32>;
multiclass PatFPBrcond<CondCode cc, LAInst CmpInst, RegisterClass RegTy> {
- def : Pat<(brcond (xor (GRLenVT (setcc RegTy:$fj, RegTy:$fk, cc)), -1),
- bb:$imm21),
+ def : Pat<(loongarch_brcond (NotBoolXor (GRLenVT (setcc RegTy:$fj, RegTy:$fk, cc))),
+ bb:$imm21),
(BCEQZ (CmpInst RegTy:$fj, RegTy:$fk), bb:$imm21)>;
- def : Pat<(brcond (GRLenVT (setcc RegTy:$fj, RegTy:$fk, cc)), bb:$imm21),
+ def : Pat<(loongarch_brcond (GRLenVT (setcc RegTy:$fj, RegTy:$fk, cc)), bb:$imm21),
(BCNEZ (CmpInst RegTy:$fj, RegTy:$fk), bb:$imm21)>;
}
defm : PatFPBrcond<SETOEQ, FCMP_CEQ_S, FPR32>;
+defm : PatFPBrcond<SETEQ , FCMP_CEQ_S, FPR32>;
----------------
heiher wrote:
https://github.com/llvm/llvm-project/blob/e1ac57c1a560b1d9891f93081e2f9c862c4a8d77/llvm/lib/Target/LoongArch/LoongArchFloat32InstrInfo.td#L197
https://github.com/llvm/llvm-project/blob/e1ac57c1a560b1d9891f93081e2f9c862c4a8d77/llvm/lib/Target/LoongArch/LoongArchFloat32InstrInfo.td#L200
https://github.com/llvm/llvm-project/pull/147885
More information about the llvm-commits
mailing list