[llvm-commits] [llvm] r125357 - in /llvm/trunk: lib/Target/ARM/ARMISelLowering.cpp test/CodeGen/ARM/fcopysign.ll

Evan Cheng evan.cheng at apple.com
Fri Feb 11 13:13:03 PST 2011


On Feb 10, 2011, at 9:51 PM, Chris Lattner wrote:

> 
> On Feb 10, 2011, at 6:28 PM, Evan Cheng wrote:
> 
>> Author: evancheng
>> Date: Thu Feb 10 20:28:55 2011
>> New Revision: 125357
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=125357&view=rev
>> Log:
>> Fix buggy fcopysign lowering.
>> This
>> define float @foo(float %x, float %y) nounwind readnone {
>> entry:
>> %0 = tail call float @copysignf(float %x, float %y) nounwind readnone
>> ret float %0
>> }
> 
> Hey Evan,
> 
> Is there something wrong with the generic lowering code for copysign?  Why does arm have its own implementation?
> 
> -Chris

The generic implementation isn't going to be performant. The custom lowering make use of ARM specific nodes to split / combine D registers to / from GPRs when it's profitable.

Evan



More information about the llvm-commits mailing list