[LLVMdev] X86 rsqrt instruction generated

Eli Friedman eli.friedman at gmail.com
Wed Nov 14 23:29:26 PST 2012


On Wed, Nov 14, 2012 at 10:43 PM, Chakraborty, Soham
<Soham.Chakraborty at amd.com> wrote:
> Hi,
>
>
>
> We have implemented the rsqrt instruction generation for X86 target
> architecture. We have introduced a flag -fp-rsqrt flag which controls the
> generatation of X86 rsqrt instruction generation.
>
> We have observed minor effects on precision due to rsqrt and hence has put
> these transformations under the mentioned flag.
>
> Note that –fp-rsqrt is only enabled with -enable-unsafe-fp-math flag
> presently.
>
> Moreover we have achieved some derived optimizations along with rsqrt
> generations.
>
> Following is the details of the -fp-rsqrt flag along with its values and
> enabled optimizations.

We already have a way to indicate the expected accuracy of
floating-point operations; see
http://llvm.org/docs/LangRef.html#fpmath .  Please use that rather
than adding more options; floating-point math is complicated enough
without adding unnecessary options.

We also already have ways to tell CodeGen to form FMA instructions; if
those aren't working for you, the answer is to fix them, not to add
special-case for the case where one of the operands happens to be an
rsqrt.

The code you're adding isn't in the right place; it should probably be
a target-specific DAGCombine, somewhere in X86ISelLowering.cpp.

Also, please take the time to read http://llvm.org/docs/CodingStandards.html .

-Eli




More information about the llvm-dev mailing list