[llvm-commits] [PATCH] RDRAND intrinsics

Eli Friedman eli.friedman at gmail.com
Fri Jul 6 13:52:18 PDT 2012


On Fri, Jul 6, 2012 at 1:00 PM, Benjamin Kramer <benny.kra at gmail.com> wrote:
> The attached patch adds support for intel's rdrand intrinsics to LLVM.
>
> The tricky part is that the intrinsics have to return two values (the random value and the carry flag). This is solved with a pointer argument and a cmov to materialize CF, which matches GCC's output. This approach requires some custom lowering code, but I don't see a way to do it with tablegenerated patterns only.

It would be much more friendly to the optimizer to use multiple return
values... but it might not be worth the hassle, considering that
rdrand is relatively slow.

-Eli




More information about the llvm-commits mailing list