May 22, 2015
Kai has just fixed it. Please don't expect the few of us to always react so quickly to every LLVM API change (and there's a whole lot of them) on its master branch though. ;)
May 23, 2015
On Wednesday, 20 May 2015 at 13:34:50 UTC, Temtaime wrote:
> Hi all !
> http://goo.gl/0JI4qJ
> Why ldc cannot optimize it ?
> Should i create an issue ?
> For example gdc uses only one mulfps.

Should be fixed. Now ldc generates:

	movups	(%r8), %xmm0
	shufps	$0, %xmm1, %xmm1
	mulps	%xmm0, %xmm1
	movups	%xmm1, (%rcx)
	movq	%rcx, %rax
	retq

Regards,
Kai
May 23, 2015
On Thursday, 21 May 2015 at 19:05:33 UTC, John Colvin wrote:
> On Wednesday, 20 May 2015 at 13:34:50 UTC, Temtaime wrote:
>> Hi all !
>> http://goo.gl/0JI4qJ
>> Why ldc cannot optimize it ?
>> Should i create an issue ?
>> For example gdc uses only one mulfps.
>
> Rule of thumb: don't use array ops for short arrays. They are quite well optimised for large arrays, but aren't great in cases like your example.

Now ldc should inline the arrayops. If you have some benchmarks you could re-run them.

Regards,
Kai
May 24, 2015
Update:

* LLVM master (1fd101c)
* LDC: branch merge-2.067
** *.conf.in files hacked to include
   "-L/LARGEADDRESSAWARE:NO" as default option
** druntime: branch ldc-merge-2.067 +
https://github.com/ldc-developers/druntime/pull/29 (VS 2015 only)
** phobos: branch ldc-merge-2.067 +
https://github.com/JohanEngelen/phobos/commit/2ac2581fe49da475bf6f687cfb7bcb9c9ddf8b71
https://github.com/kinke/phobos/commit/86511b3ca9f4a6b5358b7983ee64d0a688c63216

Due to https://github.com/ldc-developers/ldc/issues/930,
you'll need to hack your <buildDir>\build.ninja file and
exclude the -g switch when building
runtime\std\string-unittest-debug.obj.

Except for a Win64-specific core.thread unittest
(testNonvolatileRegister), which fails in the release build,
all druntime & phobos unittests pass, at least with VS 2015. :)
May 24, 2015
With VS 2013, 2 std.conv unittests fail, due to strtod()/strtold() not being able to parse hex strings, otherwise same as for VS 2015.

May 24, 2015
On Sunday, 24 May 2015 at 01:49:14 UTC, kinke wrote:
> Update:
>
> * LLVM master (1fd101c)
> * LDC: branch merge-2.067
> ** *.conf.in files hacked to include
>    "-L/LARGEADDRESSAWARE:NO" as default option
> ** druntime: branch ldc-merge-2.067 +
> https://github.com/ldc-developers/druntime/pull/29 (VS 2015 only)
> ** phobos: branch ldc-merge-2.067 +
> https://github.com/JohanEngelen/phobos/commit/2ac2581fe49da475bf6f687cfb7bcb9c9ddf8b71
> https://github.com/kinke/phobos/commit/86511b3ca9f4a6b5358b7983ee64d0a688c63216
>
> Due to https://github.com/ldc-developers/ldc/issues/930,
> you'll need to hack your <buildDir>\build.ninja file and
> exclude the -g switch when building
> runtime\std\string-unittest-debug.obj.
>
> Except for a Win64-specific core.thread unittest
> (testNonvolatileRegister), which fails in the release build,
> all druntime & phobos unittests pass, at least with VS 2015. :)

Wonderful!
1 2 3
Next ›   Last »