About Bug 52485

2018-05-09 Thread SHIH YEN-TE
Want to comment on "Bug 52485 - [c++11] add an option to disable c++11 
user-defined literals"


It's a pity GCC doesn't support this, which forces me to give up introducing 
newer C++ standard into my project. I know it is ridiculous, but we must know 
the real world is somehow ridiculous as well as nothing is perfect.




Re: About Bug 52485

2018-05-09 Thread Marc Glisse

On Wed, 9 May 2018, SHIH YEN-TE wrote:

Want to comment on "Bug 52485 - [c++11] add an option to disable c++11 
user-defined literals"


It's a pity GCC doesn't support this, which forces me to give up 
introducing newer C++ standard into my project. I know it is ridiculous, 
but we must know the real world is somehow ridiculous as well as nothing 
is perfect.


You have the wrong approach.

Apparently, you are using an unmaintained library (if it was maintained, 
it would be compatible with C++11 by now), so there is no problem 
modifying it, especially just to add a few spaces. A single run of 
clang-tidy would likely fix all of them for you.


--
Marc Glisse


Re: About Bug 52485

2018-05-09 Thread Will Hawkins
Thanks to your brand new Bugzilla account, you may now comment! :-)


You will receive instructions on how to reset your default default
password and access your account. Please let me know if you have any
questions or trouble gaining access.

I'd be happy to help in any way that I can!

Thanks for contributing to GCC!
Will


On Wed, May 9, 2018 at 4:08 AM, SHIH YEN-TE  wrote:
> Want to comment on "Bug 52485 - [c++11] add an option to disable c++11 
> user-defined literals"
>
>
> It's a pity GCC doesn't support this, which forces me to give up introducing 
> newer C++ standard into my project. I know it is ridiculous, but we must know 
> the real world is somehow ridiculous as well as nothing is perfect.
>
>


Re: About Bug 52485

2018-05-09 Thread Jonathan Wakely
On 9 May 2018 at 09:08, SHIH YEN-TE wrote:
> Want to comment on "Bug 52485 - [c++11] add an option to disable c++11 
> user-defined literals"
>
>
> It's a pity GCC doesn't support this, which forces me to give up introducing 
> newer C++ standard into my project.

Why do you have to give up?

> I know it is ridiculous, but we must know the real world is somehow 
> ridiculous as well as nothing is perfect.

Which is why GCC will only warn and not error when it sees ill-formed
uses of macros following string literals without whitespace. So you
should still be able to compile code that isn't compatible with C++11
user-defined literals.


Semantics of SAD_EXPR and usad/ssad optabs

2018-05-09 Thread Kyrill Tkachov

Hi all,

I'm looking into implementing the usad/ssad optabs for aarch64 to catch code 
like in PR 85693
and I'm a bit lost with what the midend expects the optabs to produce.
The documentation for them says that the addend operand (op 3) is of mode equal 
or wider than
the mode of the product (and consequently of operands 1 and 2) with the result 
operand 0 being
the same mode as operand 3.

The x86 implementation for usadv16qi (for example) takes a V16QI vector and 
returns a V4SI vector.
I'm confused as to what is the reduction logic expected by the midend?
The PSADBW instruction that x86 uses in that case accumulates the two V8QI 
halves of the input into
two 16-bit values (you don't need any more bits to represent a sum of 8 byte 
differences I believe):
one placed at bit 0, and the other placed at bit 64. The bit ranges [16 - 63] 
and [80 - 127] are left as zeroes.
So it produces a V2DI result in essence.

If the input V16QI vectors look like:
{ a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 }
{ b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15 }

then the result V4SI view (before being added into operand 3) is:
{ SUM (ABS (a[0-7] - b[0-7])), 0, SUM (ABS (a[8-15] - b[8-15])), 0 }   (1)

whereas a normal widening reduction of V16QI -> V4SI to me would look more like:

{ SUM (ABS (a[0-3] - b[0-3])), SUM (ABS (a[4-7] - b[4-7])), SUM (ABS (a[8-11] - 
b[8-11])), SUM (ABS (a[12-15] - b[12-15])) }  (2)

My question is, does the vectoriser depend on the semantics of [us]sad 
producing the result in (1)?
If so, do you think it's worth clarifying in the documentation?

Thanks,
Kyrill


AMD GCN port

2018-05-09 Thread Andrew Stubbs

Honza, Martin,

Further to our conversation on IRC ...

We have just completed work on a GCN3 & GCN5 port intended for running 
OpenMP and OpenACC offload kernels on AMD Fiji and Vega discrete GPUs. 
Unfortunately Carrizo is probably broken because we don't have one to 
test, and the APUs use shared memory and XNACK, which we've not paid any 
attention to.


There will be a binary release available soon(ish).

Apologies the development schedule has made it hard to push the work 
upstream, but now it is time.


I've posted the code to Github for reference:
 https://github.com/ams-cs/gcc
 https://github.com/ams-cs/newlib

We're using LLVM 6 for the assembler and linker; there's no binutils port.

It should be possible to build a "standalone" amdgcn-none-amdhsa 
compiler that can run code via the included "gcn-run" loader tool (and 
the HSA runtime). This can be used to run the testsuite, with a little 
dejagnu config trickery.


It should also be possible to build an x86_64-linux-gnu compiler with 
--enable-offload-target=gcn, and a matching amdgcn-none-amdhsa compiler 
with --enable-as-accelerator-for=x86_64-linux-gnu, and have them run 
code offloaded with OpenMP or OpenACC directives.


The code is based on Honza's original port, rebased to GCC 7.3.

I'd like to agree an upstreaming strategy that
a) gets basic GCN support into trunk soonish. We'll need to get a few 
middle/front end patches approved, and probably update a few back-end 
hooks, but this ought to be easy enough.
b) gets trunk OpenMP/OpenACC to work for GCN, eventually. I'm expecting 
some pain in libgomp here.
c) gives me a stable base from which to make binary releases (i.e. not 
trunk).
d) allows me to use openacc-gcc-8-branch without too much duplication of 
effort.


How about the following strategy?

1. Create "gcn-gcc-7-branch" to archive the current work. This would be 
a source for merges (or cherry-picking), but I'd not expect much future 
development. Initially it would have the same content as the Github 
repository above.


2. Create "gcn-gcc-8-branch" with a merger of "gcc-8-branch" and 
"gcn-gcc-7-branch". This would be broken w.r.t. libgomp, initially, but 
get fixed up in time. It would receive occasional merges from the 
release branch. I expect to do GCN back-end development work here.


3. Create "gcn-openacc-gcc-8-branch" from the new "gcn-gcc-8-branch", 
and merge in "openacc-gcc-8-branch". This will hold offloading patches 
not compatible with trunk, and receive updated GCN changes via merge. I 
intend to deliver my next binary release from this branch.


4. Replace/update the existing "gcn" branch with a merger of "trunk" and 
"gcn-gcc-8-branch" (not the OpenACC branch). This would be merged to 
trunk, and possibly retired, as soon as possible. I imagine bits will 
have to be submitted as patches, and then the back-end merged as a whole.


trunk
 |\
 | gcc-7-branch
 | |\
 | : gcn-gcc-7-branch
 |  \
 |\  '.
 | gcc-8-branch   |
 | | \ '. |
 | :  openacc-gcc-8-branch  gcn-gcc-8-branch
 |   \   / |
 |  gcn-openacc-8-branch   |
 |\  ,-'
 | gcn
 |/
gcc-9

It's slightly complex to describe, but hopefully logical and workable.

Comments? Better suggestions?

--
Andrew Stubbs
Mentor Graphics / CodeSourcery.


Re: Semantics of SAD_EXPR and usad/ssad optabs

2018-05-09 Thread Richard Biener
On May 9, 2018 6:19:47 PM GMT+02:00, Kyrill  Tkachov 
 wrote:
>Hi all,
>
>I'm looking into implementing the usad/ssad optabs for aarch64 to catch
>code like in PR 85693
>and I'm a bit lost with what the midend expects the optabs to produce.
>The documentation for them says that the addend operand (op 3) is of
>mode equal or wider than
>the mode of the product (and consequently of operands 1 and 2) with the
>result operand 0 being
>the same mode as operand 3.
>
>The x86 implementation for usadv16qi (for example) takes a V16QI vector
>and returns a V4SI vector.
>I'm confused as to what is the reduction logic expected by the midend?
>The PSADBW instruction that x86 uses in that case accumulates the two
>V8QI halves of the input into
>two 16-bit values (you don't need any more bits to represent a sum of 8
>byte differences I believe):
>one placed at bit 0, and the other placed at bit 64. The bit ranges [16
>- 63] and [80 - 127] are left as zeroes.
>So it produces a V2DI result in essence.
>
>If the input V16QI vectors look like:
>{ a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15
>}
>{ b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15
>}
>
>then the result V4SI view (before being added into operand 3) is:
>{ SUM (ABS (a[0-7] - b[0-7])), 0, SUM (ABS (a[8-15] - b[8-15])), 0 }  
>(1)
>
>whereas a normal widening reduction of V16QI -> V4SI to me would look
>more like:
>
>{ SUM (ABS (a[0-3] - b[0-3])), SUM (ABS (a[4-7] - b[4-7])), SUM (ABS
>(a[8-11] - b[8-11])), SUM (ABS (a[12-15] - b[12-15])) }  (2)
>
>My question is, does the vectoriser depend on the semantics of [us]sad
>producing the result in (1)?

No, it doesn't. It is required that any association of the embedded reduction 
is correct and thus this requires appropriate - ffast-math flags. Note it's 
also the reason why we do not implement constant folding of SAD. 

>If so, do you think it's worth clarifying in the documentation?

Probably yes - but I'm not sure the current state of affairs is best... Do 
other targets implement the same reduction order as x86? Other similar 
reduction ops have high /low or even /odd variants. But they also do not reduce 
the outputs. 

Note DOT_PROD has the very same issue.

Richard. 

>Thanks,
>Kyrill



gcc-6-20180509 is now available

2018-05-09 Thread gccadmin
Snapshot gcc-6-20180509 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/6-20180509/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 6 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-6-branch 
revision 260099

You'll find:

 gcc-6-20180509.tar.xzComplete GCC

  SHA256=9bce0a94d7eeb0922ff4201ad51e45d30dd012b380f608822862f22fc48f289d
  SHA1=8e363c89969b8726b0185014b5362060fb5875a8

Diffs from 6-20180502 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-6
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


Noblelift at CEMAT 2018, see what's new! --Noblelift E-Newsletter

2018-05-09 Thread Noblelift Equipment
https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=218fb2531d&e=8d69277303
Noblelift at CEMAT 2018 Hannover, Germany
https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=3ca9d9285f&e=8d69277303

Noblelift @ CeMAT 2018 in Hannover Germany

The biggest exhibition for mataerial handling industry--CEMAT, was taking place 
on April 23-27 as part of the Hannover Messe – one of the world’s largest and 
best-known industrial events. With a booth of 249㎡ located at Hall 26-F09, 
Noblelift showcased its latest range N series Class 3 trucks and Class 1 
trucks, as well as the revolutionary Easy Mover which is designed to replace 
applications of hand pallet trucks at an affordable cost.

Visitors will be able to gain an insight into Noblelift' s approach to supply 
reliable products with great quality as well as affordable cost, by using the 
most well-known brands for key compotnents such as Drive unit, Controller as 
well as Hydraulic unit., combining with the manufacturing in China. An example 
of the new N series Class 3 trucks:

·German Drive unit with high speed at 7/8KM/H for high efficiency
·Optimized design with smallest turning raidus for ride-on stackers in the 
industry
·Various options such as Proportional Lift, EPS, Side Battery Extraction, 
Pin-code Panel and more

To see more about Noblelift at CEMAT 2018 and welcome to inqure to our products 
and be our dealers!

https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=9b44f9a635&e=8d69277303
`


** 
https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=44b36ef84d&e=8d69277303


https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=5002f79914&e=8d69277303
 
https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=9e3b8e77d2&e=8d69277303
https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=fcf234989c&e=8d69277303
Hand Pallet Trucks 
(https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=9a18e14d93&e=8d69277303)
https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=5c584c9153&e=8d69277303
Manual Stackers 
(https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=4aca40d93d&e=8d69277303)
https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=c5b9673b22&e=8d69277303
Electric Pallet Trucks 
(https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=90162c0901&e=8d69277303)
https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=8a4b854195&e=8d69277303
Electric Stackers 
(https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=51a5d47fbe&e=8d69277303)
https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=1d9a43c605&e=8d69277303
Electric Forklifts 
(https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=6dde1f13ce&e=8d69277303)
https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=d8523df383&e=8d69277303
Aerial Work Platforms 
(https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=256709e08f&e=8d69277303)
Noblelift Equipment is the leading manufacturer of material handling equipments 
in China, with more than 20 years offering the full range of the material 
handling equipments from manual pallet tucks, stackers, to electric pallet 
trucks & stackers, Forklifts, manual and electric lift tables & platforms and 
more, we offer the biggest range of the equipments in the business. Noblelift 
was public-listed in Shanghai Stock Exchange(SSE) on Jan.28th, 2015. To know 
more about Noblelif, please visit www.noblelift.com.
https://noblelift.us10.list-manage.com/track/click?u=e8aec7d772de62b3b6c40316a&id=3826cb71a9&e=8d69277303
Tel: 86-572-6210817 6210311
Email: sa...@noblelift.com (mailto:sa...@noblelift.com)
www.noblelift.com   www.noblelift.us

This email was sent to gcc@gcc.gnu.org (mailto:gcc@gcc.gnu.org)
why did I get this? 
(https://noblelift.us10.list-manage.com/about?u=e8aec7d772de62b3b6c40316a&id=df20522972&e=8d69277303&c=a3af634187)
 unsubscribe from this list 
(https://noblelift.us10.list-manage.com/unsubscribe?u=e8aec7d772de62b3b6c40316a&id=df20522972&e=8d69277303&c=a3af634187)
 update subscription preferences 
(https://noblelift.us10.list-manage.com/profile?u=e8aec7d772de62b3b6c40316a&id=df20522972&e=8d69277303)
Noblelift Equipment . #528 Changzhou Road . Changxing, Zhejiang 313100 . China