Lines Matching defs:SelectLike

127   /// SelectLike is an abstraction over SelectInst and other operations that can
130 class SelectLike {
131 SelectLike(Instruction *I) : I(I) {}
140 /// Match a select or select-like instruction, returning a SelectLike.
141 static SelectLike match(Instruction *I) {
144 return SelectLike(I);
152 return SelectLike(I);
154 return SelectLike(nullptr);
162 assert(!Inverted && "Trying to invert an inverted SelectLike");
192 /// Return the condition for the SelectLike instruction. For example the
203 /// Return the true value for the SelectLike instruction. Note this may not
204 /// exist for all SelectLike instructions. For example, for `or(zext(c), x)`
220 /// Return the false value for the SelectLike instruction. For example the
290 using SelectGroup = SmallVector<SelectLike, 2>;
334 bool isSelectHighlyPredictable(const SelectLike SI);
347 SmallDenseMap<const Instruction *, SelectLike, 2>
354 Scaled64 getMispredictionCost(const SelectLike SI, const Scaled64 CondCost);
358 const SelectLike SI);
361 bool isSelectKindSupported(const SelectLike SI);
533 getTrueOrFalseValue(SelectOptimizeImpl::SelectLike SI, bool isTrue,
601 for (SelectLike SI : ASI) {
648 SelectLike SI = ASI.front();
649 SelectLike LastSI = ASI.back();
758 SelectLike SI = *It;
783 if (SelectLike SI = SelectLike::match(I)) {
809 SelectLike NSI = SelectLike::match(NI);
877 for (SelectLike SI : ASI) {
902 SelectLike SI = ASI.front();
952 static bool extractBranchWeights(const SelectOptimizeImpl::SelectLike SI,
978 for (SelectLike SI : ASI) {
1080 bool SelectOptimizeImpl::isSelectHighlyPredictable(const SelectLike SI) {
1243 SmallDenseMap<const Instruction *, SelectOptimizeImpl::SelectLike, 2>
1245 SmallDenseMap<const Instruction *, SelectLike, 2> SImap;
1247 for (SelectLike SI : ASI)
1262 SelectOptimizeImpl::getMispredictionCost(const SelectLike SI,
1289 const SelectLike SI) {
1309 bool SelectOptimizeImpl::isSelectKindSupported(const SelectLike SI) {