https://github.com/bcardosolopes requested changes to this pull request.

`emitStdcBitWidth` only works when the argument is `unsigned int`, which is the 
one type the test covers. Details inline.

Answering your question to @andykaylor: yes, cover all the typed variants. 
`uc`/`us`/`ul`/`ull` are exactly the cases where the argument type and the 
result type differ, and that is where this falls over.

Shape question too. OG covers all 13 stdbit families with three helpers in 
CGBuiltin.cpp: `emitStdcCountIntrinsic`, `emitStdcBitWidthMinus`, 
`emitStdcFirstBit`. `count_zeros` is the same bitwidth-minus-popcount you are 
writing here, `leading_ones`/`trailing_ones` are the same count with the 
argument inverted. Worth mirroring that split now so the rest of #214443 slots 
in instead of one helper per family. Alternatively, you can postpone some of 
them, but the mechanism needs to be in place to fail if those paths are used in 
the meantime (erroNYI, etc)

https://github.com/llvm/llvm-project/pull/214931
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to