Re: [Patch AArch64] Add support for vectorizable standard math patterns.

2012-12-17 Thread Richard Earnshaw

On 27/11/12 20:47, Mike Stump wrote:

On Nov 27, 2012, at 8:51 AM, James Greenhalgh james.greenha...@arm.com wrote:

In particular, we add support for vectorizing across:

ceil (), ceilf (), lceil (),



We add testcases ensuring that each of the expected functions are
vectorized. As the i386 and rs6000 backends both ostensibly support
these optimisations we add these tests to the generic testsuites, but
only wire them up for AArch64. As a target may support any subset of
these vectorizations we need a check_effective_target macro for
each of them.

Because of this change to the generic test code I've CCed Janis
Johnson and Mike Stump.


Gosh…  leaves a bad taste in my mouth.I see why you did it that way…  So, 
let me just ping folks, anyone see a better way to do this?  If no one admits 
to having a better solution, I'll approve it.  Let's give them a few days to 
come up with something concrete, if they fail, Ok.




I've been pondering this one for a bit.  I wonder if having a single 
function


check_effective_target_vect_libcall(func)

where func is the name of the function you needed to check, might be 
cleaner.


The idea is that the one function might access an array (set up on the 
first call) and then just use info exists et_vect_libcalls(func) to do 
the body of the check.


Not entirely sure my expect foo is good enough to code this up, though.

R.



RE: [Patch AArch64] Add support for vectorizable standard math patterns.

2012-12-05 Thread James Greenhalgh
  Is this patch OK to commit?
 
 OK
 /Marcus

Thanks Marcus,

I've also back-ported this to AArch64-4.7-branch.
The back-port was clean and passed a regression run on
aarch64-none-elf with no regressions.

Thanks,
James





Re: [Patch AArch64] Add support for vectorizable standard math patterns.

2012-12-04 Thread Marcus Shawcroft

On 27/11/12 16:51, James Greenhalgh wrote:


Hi,

This patch adds support for vectorizing across some of the rounding
functions in the C math library to the AArch64 back-end.

In particular, we add support for vectorizing across:

ceil (), ceilf (), lceil (),
floor (), floorf (), lfloor (),
round (), roundf (),
nearbyint (), nearbyintf (),
trunc (), truncf ()

We add testcases ensuring that each of the expected functions are
vectorized. As the i386 and rs6000 backends both ostensibly support
these optimisations we add these tests to the generic testsuites, but
only wire them up for AArch64. As a target may support any subset of
these vectorizations we need a check_effective_target macro for
each of them.

Because of this change to the generic test code I've CCed Janis
Johnson and Mike Stump.

Is this patch OK to commit?


OK
/Marcus




Re: [Patch AArch64] Add support for vectorizable standard math patterns.

2012-12-03 Thread Marcus Shawcroft

On 27/11/12 20:47, Mike Stump wrote:

On Nov 27, 2012, at 8:51 AM, James Greenhalgh james.greenha...@arm.com wrote:

In particular, we add support for vectorizing across:

ceil (), ceilf (), lceil (),



We add testcases ensuring that each of the expected functions are
vectorized. As the i386 and rs6000 backends both ostensibly support
these optimisations we add these tests to the generic testsuites, but
only wire them up for AArch64. As a target may support any subset of
these vectorizations we need a check_effective_target macro for
each of them.

Because of this change to the generic test code I've CCed Janis
Johnson and Mike Stump.


Gosh…  leaves a bad taste in my mouth.I see why you did it that way…  So, 
let me just ping folks, anyone see a better way to do this?  If no one admits 
to having a better solution, I'll approve it.  Let's give them a few days to 
come up with something concrete, if they fail, Ok.




Mike, Are you happy to go with the proposal from James or would like to 
give folk more time to think this one over?


Cheers
/Marcus




Re: [Patch AArch64] Add support for vectorizable standard math patterns.

2012-12-03 Thread Mike Stump
On Dec 3, 2012, at 8:43 AM, Marcus Shawcroft marcus.shawcr...@arm.com wrote:
 Mike, Are you happy to go with the proposal from James or would like to give 
 folk more time to think this one over?

Good to go.  If people want to improve it, if they see a way, then can submit a 
patch anytime they want.  I didn't see anyone lay down a clearly better way to 
do this.


Re: [Patch AArch64] Add support for vectorizable standard math patterns.

2012-11-27 Thread Mike Stump
On Nov 27, 2012, at 8:51 AM, James Greenhalgh james.greenha...@arm.com wrote:
 In particular, we add support for vectorizing across:
 
 ceil (), ceilf (), lceil (),

 We add testcases ensuring that each of the expected functions are
 vectorized. As the i386 and rs6000 backends both ostensibly support
 these optimisations we add these tests to the generic testsuites, but
 only wire them up for AArch64. As a target may support any subset of
 these vectorizations we need a check_effective_target macro for
 each of them.
 
 Because of this change to the generic test code I've CCed Janis
 Johnson and Mike Stump.

Gosh…  leaves a bad taste in my mouth.I see why you did it that way…  So, 
let me just ping folks, anyone see a better way to do this?  If no one admits 
to having a better solution, I'll approve it.  Let's give them a few days to 
come up with something concrete, if they fail, Ok.


Re: [Patch AArch64] Add support for vectorizable standard math patterns.

2012-11-27 Thread Ramana Radhakrishnan
On Tue, Nov 27, 2012 at 8:47 PM, Mike Stump mikest...@comcast.net wrote:
 On Nov 27, 2012, at 8:51 AM, James Greenhalgh james.greenha...@arm.com 
 wrote:
 In particular, we add support for vectorizing across:

 ceil (), ceilf (), lceil (),

 We add testcases ensuring that each of the expected functions are
 vectorized. As the i386 and rs6000 backends both ostensibly support
 these optimisations we add these tests to the generic testsuites, but
 only wire them up for AArch64. As a target may support any subset of
 these vectorizations we need a check_effective_target macro for
 each of them.

 Because of this change to the generic test code I've CCed Janis
 Johnson and Mike Stump.

 Gosh…  leaves a bad taste in my mouth.I see why you did it that way…
 So, let me just ping folks, anyone see a better way to do this?  If no one 
 admits to having a better solution, I'll approve
  it.  Let's give them a few days to come up with something concrete, if they 
 fail, Ok.

If it's any consolation I expect the ARM port to use a subset of
these, because in the AArch32 world on v8 we only have the single
precision vector variants of these instructions and not the double
precision vector variants once we can get hold of the intrinsic decls
we need :) . So, if someone's thinking who's going to be a consumer of
a subset of these, here's one port that's likely to need this.

That doesn't preclude finding a better way of doing this :)

regards
Ramana