Displaying 2 results from an estimated 2 matches for "__builtin_special".
2020 Feb 19
2
i1 true ^= -1 in DAG matcher?
...I do think there is _some_
> kind of issue somewhere because I do see a BUILD_VECTOR of i1 -1 on our
> target which I set to setBooleanVectorContents(ZeroOrOneBooleanContent).
> The backend is not open source, but the i1 vector is an input to a clang
> builtin which takes V8i like
> __builtin_special(~mask) where mask is an vector of i1 form a setne (cmp),
> and the vector of i1 -1 is from the ~ that does an xor of those two
> vectors. I would have expected a vector of 1, not -1. I would love to send
> in a better open source reproducer, will try to construct one.
>
> On Wed, Feb...
2020 Feb 19
2
i1 true ^= -1 in DAG matcher?
The vnot PatFrag uses ImmAllOnesV which should put an OPC_CheckImmAllOnesV
in the matcher table. And the matcher table should call
ISD::isBuildVectorAllOnes. I believe we use vnot with vXi1 vectors on X86
and I haven't seen any issues.
The FIXME you pointed to seems related to a scalar patcher not a vector
pattern. In that case the issue is that the immediate matcher for scalars
calls