diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td b/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td --- a/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td @@ -204,7 +204,8 @@ 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 @@ } } -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;