> On May 10, 2016, at 3:25 AM, Segher Boessenkool <seg...@kernel.crashing.org> 
> wrote:
> 
> Hi Bill,
> 
> On Mon, May 09, 2016 at 10:00:31PM -0500, Bill Schmidt wrote:
>> PR70963 reports a problem with vec_cts when used to convert vector double to 
>> vector long long.
>> This is due to a register with an undefined value that is generated only 
>> when the scale factor is
>> zero.  This patch adds logic to provide the correct value when the scale 
>> factor is zero.
>> 
>> The problem from the PR is in the define_expand for vsx_xvcvdpsxds_scale.  
>> The define_expand
>> for vsx_xvcvdpuxds_scale clearly has the same problem, although it is not 
>> possible to reach this
>> via a call to vec_cts.  The raw builtin __builtin_vsx_xvcvdpuxds_scale can 
>> be used, however, and
>> I’ve shown this in the test case.
>> 
>> Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no 
>> regressions.  Is this ok for
>> trunk, and eventual backport to 6 and 5?
> 
> Okay.  A few thingies...
> 
>> 2016-05-09  Bill Schmidt  <wschm...@linux.vnet.ibm.com>
> 
> You should mention the PR here, like
> 
>       PR target/70963
>>        * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
>>        code for a zero scale factor.
>>        (vsx_xvcvdpuxds_scale): Likewise.
> 
> This way an automatic comment is made in bugzilla, too. It's magic!

Yeah, I actually noticed this after I sent it.  Fixed in my local copy of the 
change log...

> 
>> +++ gcc/config/rs6000/vsx.md    (working copy)                               
>>    
>> @@ -1717,10 +1717,15 @@
>> {                                                                            
>>   
>>   rtx op0 = operands[0];                                                     
>>   
> 
> Huge amount of trailing space everywhere here (but not in the tree);
> seems like you need to fix your mail client (or its settings).

Yeah, first post from a new mail client on a new laptop.  I need to find a 
different solution as this one has been a pain.

> 
>>   rtx op1 = operands[1];                                                     
>>   
>> -  rtx tmp = gen_reg_rtx (V2DFmode);                                         
>>    
>> +  rtx tmp;                                                                  
>>    
>>   int scale = INTVAL(operands[2]);                                           
>>   
> 
> This is the only line you didn't change, and it has a missing space (before
> the paren open); you might want to fix that while you're at it :-)

Will do!  Thanks!

Bill

> 
> 
> Segher
> 

Reply via email to