Ping

2015-11-23 16:05 GMT+03:00 Ilya Enkovich <enkovich....@gmail.com>:
> Ping
>
> 2015-11-13 16:17 GMT+03:00 Ilya Enkovich <enkovich....@gmail.com>:
>> 2015-11-13 13:03 GMT+03:00 Richard Biener <richard.guent...@gmail.com>:
>>> On Thu, Nov 12, 2015 at 5:08 PM, Ilya Enkovich <enkovich....@gmail.com> 
>>> wrote:
>>>> Hi,
>>>>
>>>> When we use LTO for fortran we may have a mix 32bit and 1bit scalar 
>>>> booleans. It means we may have conversion of one scalar type to another 
>>>> which confuses vectorizer because values with different scalar boolean 
>>>> type may get the same vectype.
>>>
>>> Confuses aka fails to vectorize?
>>
>> Right.
>>
>>>
>>>>  This patch transforms such conversions into comparison.
>>>>
>>>> I managed to make a small fortran test which gets vectorized with this 
>>>> patch but I didn't find how I can run fortran test with LTO and then scan 
>>>> tree dump to check it is vectorized.  BTW here is a loop from the test:
>>>>
>>>>       real*8 a(18)
>>>>       logical b(18)
>>>>       integer i
>>>>
>>>>       do i=1,18
>>>>          if(a(i).gt.0.d0) then
>>>>             b(i)=.true.
>>>>          else
>>>>             b(i)=.false.
>>>>          endif
>>>>       enddo
>>>
>>> This looks the the "error" comes from if-conversion - can't we do
>>> better there then?
>>
>> No, this loop is transformed into a single BB before if-conversion by
>> cselim + phiopt.
>>
>> Ilya
>>
>>>
>>> Richard.
>>>
>>>> Bootstrapped and tested on x86_64-unknown-linux-gnu.  OK for trunk?
>>>>
>>>> Thanks,
>>>> Ilya

Reply via email to