sebpop wrote: > I suspect we want to do something with llvm.assume, or something like that, > not use a select.
No. `assume` is used as "optimization hint". `undef` is used as "semantic undefined load". See https://llvm.org/docs/UndefinedBehavior.html#undef-values > Undef values are deprecated and should be used only when strictly necessary. > Uses of undef values should be restricted to representing loads of > uninitialized memory. This is the only part of the IR semantics that cannot > be replaced with alternatives yet (work in ongoing). ISEL discards `undef` and `assume`, which brings the code to the back-ends with no `select`, see llc pipeline in https://godbolt.org/z/MPdz4qYvW https://github.com/llvm/llvm-project/pull/159046 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits