From 20280ea44a36bdd5768349c263783240a0a36caa Mon Sep 17 00:00:00 2001 From: Luke Lau Date: Fri, 14 Jul 2023 17:58:15 +0100 Subject: [PATCH] [RISCV] Fix predicates on zvbb patterns The zvbb extension predicate was getting overwritten by the vtype predicates. There's no change in the tests though because the ISD nodes were getting expanded before instruction selection. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D155313 --- llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td b/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td index eb1391206e88..297b150833f1 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td @@ -204,7 +204,8 @@ defm PseudoVCPOP : VPseudoUnaryV_V; multiclass VPatUnarySDNode_V { foreach vti = AllIntegerVectors in { - let Predicates = GetVTypePredicates.Predicates in { + let Predicates = !listconcat([HasStdExtZvbb], + GetVTypePredicates.Predicates) in { def : Pat<(vti.Vector (op (vti.Vector vti.RegClass:$rs1))), (!cast(instruction_name#"_V_"#vti.LMul.MX) (vti.Vector (IMPLICIT_DEF)), @@ -214,10 +215,8 @@ multiclass VPatUnarySDNode_V { } } -let Predicates = [HasStdExtZvbb] in { - defm : VPatUnarySDNode_V; - defm : VPatUnarySDNode_V; - defm : VPatUnarySDNode_V; - defm : VPatUnarySDNode_V; - defm : VPatUnarySDNode_V; -} +defm : VPatUnarySDNode_V; +defm : VPatUnarySDNode_V; +defm : VPatUnarySDNode_V; +defm : VPatUnarySDNode_V; +defm : VPatUnarySDNode_V; -- 2.34.1