[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