Skip to content

Commit 7d1f35f

Browse files
committed
Add ^ and use CheckOpcode for isSelectPseudo
1 parent dd1a484 commit 7d1f35f

File tree

1 file changed

+27
-30
lines changed

1 file changed

+27
-30
lines changed

llvm/lib/Target/RISCV/RISCVInstrPredicates.td

Lines changed: 27 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -40,23 +40,20 @@ def isZEXT_B
4040
CheckImmOperand<2, 255>
4141
]>>>;
4242

43-
// Returns true if this is the zext.b pattern, andi rd, rs1, 255.
4443
def isSelectPseudo
4544
: TIIPredicate<"isSelectPseudo",
46-
MCOpcodeSwitchStatement<
47-
[MCOpcodeSwitchCase<
48-
[Select_GPR_Using_CC_GPR,
49-
Select_GPR_Using_CC_Imm,
50-
Select_FPR16_Using_CC_GPR,
51-
Select_FPR16INX_Using_CC_GPR,
52-
Select_FPR32_Using_CC_GPR,
53-
Select_FPR32INX_Using_CC_GPR,
54-
Select_FPR64_Using_CC_GPR,
55-
Select_FPR64INX_Using_CC_GPR,
56-
Select_FPR64IN32X_Using_CC_GPR
57-
],
58-
MCReturnStatement<TruePred>>],
59-
MCReturnStatement<FalsePred>>>;
45+
MCReturnStatement<
46+
CheckOpcode<[
47+
Select_GPR_Using_CC_GPR,
48+
Select_GPR_Using_CC_Imm,
49+
Select_FPR16_Using_CC_GPR,
50+
Select_FPR16INX_Using_CC_GPR,
51+
Select_FPR32_Using_CC_GPR,
52+
Select_FPR32INX_Using_CC_GPR,
53+
Select_FPR64_Using_CC_GPR,
54+
Select_FPR64INX_Using_CC_GPR,
55+
Select_FPR64IN32X_Using_CC_GPR
56+
]>>>;
6057

6158
// Returns true if this is a vector configuration instruction.
6259
def isVectorConfigInstr
@@ -82,43 +79,43 @@ def isFloatScalarMoveOrScalarSplatInstr
8279
: TIIPredicate<"isFloatScalarMoveOrScalarSplatInstr",
8380
MCReturnStatement<
8481
CheckOpcode<!listflatten([
85-
!instances<Pseudo>("PseudoVFMV_S_F.*"),
86-
!instances<Pseudo>("PseudoVFMV_V_F.*")
82+
!instances<Pseudo>("^PseudoVFMV_S_F.*"),
83+
!instances<Pseudo>("^PseudoVFMV_V_F.*")
8784
])>>>;
8885

8986
def isScalarExtractInstr
9087
: TIIPredicate<"isScalarExtractInstr",
9188
MCReturnStatement<
9289
CheckOpcode<!listflatten([
93-
!instances<Pseudo>("PseudoVMV_X_S.*"),
94-
!instances<Pseudo>("PseudoVFMV_F.*_S.*")
90+
!instances<Pseudo>("^PseudoVMV_X_S.*"),
91+
!instances<Pseudo>("^PseudoVFMV_F.*_S.*")
9592
])>>>;
9693

9794
def isScalarInsertInstr
9895
: TIIPredicate<"isScalarInsertInstr",
9996
MCReturnStatement<
10097
CheckOpcode<!listflatten([
101-
!instances<Pseudo>("PseudoVMV_S_X.*"),
102-
!instances<Pseudo>("PseudoVFMV_S_F.*")
98+
!instances<Pseudo>("^PseudoVMV_S_X.*"),
99+
!instances<Pseudo>("^PseudoVFMV_S_F.*")
103100
])>>>;
104101

105102
def isScalarSplatInstr
106103
: TIIPredicate<"isScalarSplatInstr",
107104
MCReturnStatement<
108105
CheckOpcode<!listflatten([
109-
!instances<Pseudo>("PseudoVMV_V_I.*"),
110-
!instances<Pseudo>("PseudoVMV_V_X.*"),
111-
!instances<Pseudo>("PseudoVFMV_V_F.*")
106+
!instances<Pseudo>("^PseudoVMV_V_I.*"),
107+
!instances<Pseudo>("^PseudoVMV_V_X.*"),
108+
!instances<Pseudo>("^PseudoVFMV_V_F.*")
112109
])>>>;
113110

114111
def isVSlideInstr
115112
: TIIPredicate<"isVSlideInstr",
116113
MCReturnStatement<
117114
CheckOpcode<!listflatten([
118-
!instances<Pseudo>("PseudoVSLIDEDOWN_VX.*"),
119-
!instances<Pseudo>("PseudoVSLIDEDOWN_VI.*"),
120-
!instances<Pseudo>("PseudoVSLIDEUP_VX.*"),
121-
!instances<Pseudo>("PseudoVSLIDEUP_VI.*")
115+
!instances<Pseudo>("^PseudoVSLIDEDOWN_VX.*"),
116+
!instances<Pseudo>("^PseudoVSLIDEDOWN_VI.*"),
117+
!instances<Pseudo>("^PseudoVSLIDEUP_VX.*"),
118+
!instances<Pseudo>("^PseudoVSLIDEUP_VI.*")
122119
])>>>;
123120

124121
def isNonZeroLoadImmediate
@@ -136,8 +133,8 @@ def ignoresVXRM
136133
MCOpcodeSwitchStatement<
137134
[MCOpcodeSwitchCase<
138135
!listflatten([
139-
!instances<Pseudo>("PseudoVNCLIP_WI.*"),
140-
!instances<Pseudo>("PseudoVNCLIPU_WI.*")
136+
!instances<Pseudo>("^PseudoVNCLIP_WI.*"),
137+
!instances<Pseudo>("^PseudoVNCLIPU_WI.*")
141138
]),
142139
MCReturnStatement<CheckImmOperand<3, 0>>>],
143140
MCReturnStatement<FalsePred>>>;

0 commit comments

Comments
 (0)