Displaying 5 results from an estimated 5 matches for "m_select".
Did you mean:
g_select
2008 Nov 09
2
[LLVMdev] m_Not Pattern Question
I have a question about the pattern matching stuff that's used in the
Instruction Combiner. If I have code like this:
if (match(B, m_Select(m_Value(), m_ConstantInt(0),
m_ConstantInt(-1)))) {
if (match(C, m_Not(m_Value(B))))
return SelectInst::Create(cast<User>(B)->getOperand(0), D, A);
and we match, the program fails during the "SelectInst::Create" phase.
The problem is because B is now a Consta...
2018 Dec 18
2
should we do this time-consuming transform in InstCombine?
...ame operands exists.
In instcombine, no user checking is performed/allowed.
This should match that *specific* pattern (other than verifying the
correct equal binop types), although i have not tested it:
ICmpInst::Predicate Pred;
Value *A, *B, *Mul, *Sub, *Mul2;
if (match(&SI,
m_Select(m_ICmp(Pred,
m_CombineAnd(m_BinOp(m_Value(A), m_Value(B)),
m_Value(Mul)),
m_AllOnes()),
m_Deferred(Mul),
m_CombineAnd(
m_c_BinOp(m_Comb...
2018 Dec 18
2
should we do this time-consuming transform in InstCombine?
Hi,
There is an opportunity in instCombine for following instruction pattern:
%mul = mul nsw i32 %b, %a
%cmp = icmp sgt i32 %mul, -1
%sub = sub i32 0, %a
%mul2 = mul nsw i32 %sub, %b
%cond = select i1 %cmp, i32 %mul, i32 %mul2
Source code for above pattern:
return (a*b) >=0 ? (a*b) : -a*b;
Currently, llvm(-O3) can not recognize this as abs(a*b).
I initially think we could do this in
2008 Nov 09
0
[LLVMdev] m_Not Pattern Question
Bill Wendling wrote:
> I have a question about the pattern matching stuff that's used in the
> Instruction Combiner. If I have code like this:
>
> if (match(B, m_Select(m_Value(), m_ConstantInt(0),
> m_ConstantInt(-1)))) {
> if (match(C, m_Not(m_Value(B))))
> return SelectInst::Create(cast<User>(B)->getOperand(0), D, A);
>
> and we match, the program fails during the "SelectInst::Create" phase.
> The proble...
2007 Jan 08
0
[845] trunk/wxruby2/swig/classes: Added MultiChoiceDialog in class form
...;nbsp               const wxPoint& pos = wxDefaultPosition);
+
+ void SetSelections(const wxArrayInt& selections);
+ wxArrayInt GetSelections();
+
+protected:
+ wxArrayInt m_selections;
+};
+
+#endif
</ins></span></pre>
</div>
</div>
</body>
</html>