search for: m_specific

Displaying 7 results from an estimated 7 matches for "m_specific".

2016 Jul 20
2
Hitting assertion failure related to vectorization + instcombine
...rize -instcombine 1. Running pass 'Function Pass Manager' on module '<stdin>'. 2. Running pass 'Combine redundant instructions' on function '@strsave' --- Looking at the code, the issue is with this line: if (TrueVal == X && match(FalseVal, m_And(m_Specific(X), m_APInt(C))) && *Y == ~*C) In this case Y is a 128-bit APInt, and so is the value that C is extracted from, but the m_APInt matcher has code that calls getSplatValue() if the matched expression has vector type. So C ends up as an 8-bit value, triggering the assertion failure on...
2017 Jul 13
2
failing to optimize boolean ops on cmps
...-------- Would adding to the existing InstCombine logic folds to handle this kind of pattern be a welcome enhancement? I don't know if it's possible to make the matchers handle this case without adding a new matcher. Eg: // ((~A & B) | A) -> (A | B) if (match(Op0, m_c_And(m_Not(m_Specific(Op1)), m_Value(A)))) return BinaryOperator::CreateOr(A, Op1); Is there a way to make "m_Not(m_Specific())" match an inverted compare? This optimization hole can manifest in strange ways: https://godbolt.org/g/gjpAVo We got it right for C++, but C managed to fall through the cracks!...
2016 Jul 20
2
Hitting assertion failure related to vectorization + instcombine
...r' on module '<stdin>'. >> 2. Running pass 'Combine redundant instructions' on function '@strsave' >> >> --- >> >> Looking at the code, the issue is with this line: >> >> if (TrueVal == X && match(FalseVal, m_And(m_Specific(X), m_APInt(C))) && >> *Y == ~*C) >> >> In this case Y is a 128-bit APInt, and so is the value that C is >> extracted from, but the m_APInt matcher has code that calls getSplatValue() >> if the matched expression has vector type. So C ends up as an 8-bi...
2016 Jul 22
2
Hitting assertion failure related to vectorization + instcombine
...t; 2. Running pass 'Combine redundant instructions' on function '@strsave' >>>> >>>> --- >>>> >>>> Looking at the code, the issue is with this line: >>>> >>>> if (TrueVal == X && match(FalseVal, m_And(m_Specific(X), m_APInt(C))) >>>> && >>>> *Y == ~*C) >>>> >>>> In this case Y is a 128-bit APInt, and so is the value that C is >>>> extracted from, but the m_APInt matcher has code that calls getSplatValue() >>>> if the ma...
2016 Jul 25
2
Hitting assertion failure related to vectorization + instcombine
...; >>>> '@strsave' >> >>>> >> >>>> --- >> >>>> >> >>>> Looking at the code, the issue is with this line: >> >>>> >> >>>> if (TrueVal == X && match(FalseVal, m_And(m_Specific(X), >> >>>> m_APInt(C))) >> >>>> && >> >>>> *Y == ~*C) >> >>>> >> >>>> In this case Y is a 128-bit APInt, and so is the value that C is >> >>>> extracted from, but the m_APInt...
2016 Jul 27
0
Hitting assertion failure related to vectorization + instcombine
...@strsave' >>> >>>> >>> >>>> --- >>> >>>> >>> >>>> Looking at the code, the issue is with this line: >>> >>>> >>> >>>> if (TrueVal == X && match(FalseVal, m_And(m_Specific(X), >>> >>>> m_APInt(C))) >>> >>>> && >>> >>>> *Y == ~*C) >>> >>>> >>> >>>> In this case Y is a 128-bit APInt, and so is the value that C is >>> >>>> extract...
2016 Jul 28
1
Hitting assertion failure related to vectorization + instcombine
...; >>>> > >>> >>>> --- > >>> >>>> > >>> >>>> Looking at the code, the issue is with this line: > >>> >>>> > >>> >>>> if (TrueVal == X && match(FalseVal, m_And(m_Specific(X), > >>> >>>> m_APInt(C))) > >>> >>>> && > >>> >>>> *Y == ~*C) > >>> >>>> > >>> >>>> In this case Y is a 128-bit APInt, and so is the value that C is > >&gt...