February 15, 2014 Re: LDC 0.13.0 alpha released! Please help test! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kai Nacke | Hi Kai, It is still does not vectorize with merge-2.064 (merge-2.065) I use ldc2 -03 -release ldmd2 output: LDC - the LLVM D compiler (27c078): based on DMD v2.064 and LLVM 3.4 Default target: x86_64-pc-linux-gnu Host CPU: core-avx-i Examples: ========================================================== void scale(T)(T[] a, T b) { foreach(ref ae; a) ae *= b; } ========================================================== .cfi_startproc testq %rdi, %rdi je .LBB7_2 .align 16, 0x90 .LBB7_1: vmulss (%rsi), %xmm0, %xmm1 vmovss %xmm1, (%rsi) addq $4, %rsi decq %rdi jne .LBB7_1 .LBB7_2: ret ========================================================== void substract(T)(T[] c, in T[] a, in T[] b) { foreach(i, ref ce; c) ce = a[i]-b[i]; } ========================================================== .cfi_startproc pushq %rax .Ltmp33: .cfi_def_cfa_offset 16 xorl %eax, %eax testq %r8, %r8 je .LBB6_4 .align 16, 0x90 .LBB6_1: cmpq %rdx, %rax jae .LBB6_5 cmpq %rdi, %rax jae .LBB6_5 vmovsd (%rcx,%rax,8), %xmm0 vsubsd (%rsi,%rax,8), %xmm0, %xmm0 vmovsd %xmm0, (%r9,%rax,8) incq %rax cmpq %r8, %rax jb .LBB6_1 .LBB6_4: popq %rax ret ========================================================== Regards, Ilya On Tuesday, 4 February 2014 at 06:24:02 UTC, Kai Nacke wrote: > On Monday, 3 February 2014 at 17:57:50 UTC, Kai Nacke wrote: >> On Monday, 3 February 2014 at 07:37:50 UTC, Ilya Yaroshenko wrote: >>> On Monday, 3 February 2014 at 00:12:08 UTC, bearophile wrote: >>>> Ilya Yaroshenko: >>>> >>>>> There is only -vectorize-slp but no -vectorize. >>>> >>>> Isn't -vectorize implicit in -O3 (Perhaps even in -O2)? >>>> >>>> Bye, >>>> bearophile >>> >>> No, even with -03 -release =(. >>> >>> Best Regards, >>> Ilya >> >> Hi Ilya, >> >> your command line looks ok. I think there is a bug in the command line arguments. >> I try to fix it now. >> >> Regards, >> Kai > > Is fixed in the merge-2.064 branch and will be in next alpha release. > > Regards, > Kai |
March 05, 2014 Re: LDC 0.13.0 alpha released! Please help test! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ilya Yaroshenko | Hi Ilya!
Sorry for the long delay - I was on vacation.
I'll have another look at this. Thanks for the test case.
Regards,
Kai
On Saturday, 15 February 2014 at 20:15:00 UTC, Ilya Yaroshenko wrote:
> Hi Kai,
>
> It is still does not vectorize with merge-2.064 (merge-2.065)
> I use ldc2 -03 -release
>
>
> ldmd2 output:
>
> LDC - the LLVM D compiler (27c078):
> based on DMD v2.064 and LLVM 3.4
> Default target: x86_64-pc-linux-gnu
> Host CPU: core-avx-i
>
> Examples:
> ==========================================================
> void scale(T)(T[] a, T b)
> {
> foreach(ref ae; a)
> ae *= b;
> }
> ==========================================================
>
> .cfi_startproc
> testq %rdi, %rdi
> je .LBB7_2
> .align 16, 0x90
> .LBB7_1:
> vmulss (%rsi), %xmm0, %xmm1
> vmovss %xmm1, (%rsi)
> addq $4, %rsi
> decq %rdi
> jne .LBB7_1
> .LBB7_2:
> ret
> ==========================================================
> void substract(T)(T[] c, in T[] a, in T[] b)
> {
> foreach(i, ref ce; c)
> ce = a[i]-b[i];
> }
> ==========================================================
> .cfi_startproc
> pushq %rax
> .Ltmp33:
> .cfi_def_cfa_offset 16
> xorl %eax, %eax
> testq %r8, %r8
> je .LBB6_4
> .align 16, 0x90
> .LBB6_1:
> cmpq %rdx, %rax
> jae .LBB6_5
> cmpq %rdi, %rax
> jae .LBB6_5
> vmovsd (%rcx,%rax,8), %xmm0
> vsubsd (%rsi,%rax,8), %xmm0, %xmm0
> vmovsd %xmm0, (%r9,%rax,8)
> incq %rax
> cmpq %r8, %rax
> jb .LBB6_1
> .LBB6_4:
> popq %rax
> ret
>
> ==========================================================
>
> Regards,
> Ilya
>
> On Tuesday, 4 February 2014 at 06:24:02 UTC, Kai Nacke wrote:
>> On Monday, 3 February 2014 at 17:57:50 UTC, Kai Nacke wrote:
>>> On Monday, 3 February 2014 at 07:37:50 UTC, Ilya Yaroshenko wrote:
>>>> On Monday, 3 February 2014 at 00:12:08 UTC, bearophile wrote:
>>>>> Ilya Yaroshenko:
>>>>>
>>>>>> There is only -vectorize-slp but no -vectorize.
>>>>>
>>>>> Isn't -vectorize implicit in -O3 (Perhaps even in -O2)?
>>>>>
>>>>> Bye,
>>>>> bearophile
>>>>
>>>> No, even with -03 -release =(.
>>>>
>>>> Best Regards,
>>>> Ilya
>>>
>>> Hi Ilya,
>>>
>>> your command line looks ok. I think there is a bug in the command line arguments.
>>> I try to fix it now.
>>>
>>> Regards,
>>> Kai
>>
>> Is fixed in the merge-2.064 branch and will be in next alpha release.
>>
>> Regards,
>> Kai
|
March 12, 2014 Re: LDC 0.13.0 alpha released! Please help test! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ilya Yaroshenko | Hi Ilya!
On Saturday, 15 February 2014 at 20:15:00 UTC, Ilya Yaroshenko wrote:
> Hi Kai,
>
> It is still does not vectorize with merge-2.064 (merge-2.065)
> I use ldc2 -03 -release
>
With LLVM 3.5 it should work now. I still need to check if it works with LLVM 3.4, too.
Reason is a change in the way the passes are registered. I missed this change. :-(
Regards,
Kai
|
July 01, 2014 Re: LDC 0.13.0 alpha released! Please help test! | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | On Thursday, 30 January 2014 at 11:17:14 UTC, bearophile wrote: > > I suggest to also generate the line numbers where the GC is used. > > Bye, > bearophile Should be fixed with this PR: https://github.com/ldc-developers/ldc/pull/660 Regards, Kai |
Copyright © 1999-2021 by the D Language Foundation