search for: m_cmp

Displaying 3 results from an estimated 3 matches for "m_cmp".

Did you mean: a_cmp
2017 Jul 13
2
failing to optimize boolean ops on cmps
...s handle this case without adding a new matcher. Eg: >> >> > I would rather see this added to instsimplify than instcombine. > If you do that, GVN/et all will get this already. > > This probably does require a special matcher though: > > > We have: > if (m_c_And(m_Cmp(Pred, m_Value(), m_Value()), > m_Cmp(Pred, m_Value(), m_Value())) > > and you really want: > if (m_c_And(m_Cmp(Pred, m_Value(), m_Value()), > m_Cmp(m_Opposite(Pred), m_Value(), m_Value())) > > > > -------------- next part -------------- An HTM...
2017 Jul 13
2
failing to optimize boolean ops on cmps
We have several optimizations in InstCombine for bitwise logic ops (and/or/xor) that fail to handle compare patterns with the equivalent bitwise logic. Example: define i8 @or_and_not(i8 %a, i8 %b) { %nota = xor i8 %a, -1 %and = and i8 %nota, %b %res = or i8 %and, %a ret i8 %res } define i1 @or_and_cmp_not(i32 %a, i32 %b, i1 %c) { %cmp = icmp sgt i32 %a, %b %cmp_inv = icmp sle i32 %a,
2017 Jul 14
2
failing to optimize boolean ops on cmps
...g a new matcher. Eg: > > > I would rather see this added to instsimplify than instcombine. > If you do that, GVN/et all will get this already. > > This probably does require a special matcher though: > > > We have: > if (m_c_And(m_Cmp(Pred, m_Value(), m_Value()), > m_Cmp(Pred, m_Value(), m_Value())) > > and you really want: > if (m_c_And(m_Cmp(Pred, m_Value(), m_Value()), > m_Cmp(m_Opposite(Pred), m_Value(), m_Value())) > > > > > > > > ________...