public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 0/6] Automatically use vector optabs
@ 2015-11-09 16:20 Richard Sandiford
  2015-11-09 16:21 ` [PATCH 1/6] Use IFN_SQRT in tree-vect-patterns.c Richard Sandiford
                   ` (5 more replies)
  0 siblings, 6 replies; 19+ messages in thread
From: Richard Sandiford @ 2015-11-09 16:20 UTC (permalink / raw)
  To: gcc-patches

The main goal of this series is to allow functions to be vectorised
simply by defining the associated optab.  At the moment you can get
a scalar square root instruction by defining an md pattern like sqrtdf2.
But if you want to have vectorised sqrt, you need to have a target-
specific C-level built-in function for the vector form of sqrt,
implement TARGET_BUILTIN_VECTORIZED_FUNCTION, and expand the sqrt in
the same way that the target expands other directly-called built-in
functions.  That seems unnecessarily indirect, especially when in
practice those target-specific functions tend to use patterns like
sqrtv2df2 anyway.  It also means GCC has less idea what the vector
function is doing.

The series uses the combined_fn enum and internal functions from
the patches I posted on Saturday to make the vectoriser pick up
vector optabs automatically and represent the result as a vector
internal function call.  For example, we can convert BUILT_IN_SQRT{F,,L}
or a scalar IFN_SQRT into a vector IFN_SQRT if the appropriate sqrtM2
optab is defined.

Tested on x86_64-linux-gnu, aarch64-linux-gnu, arm-linux-gnu and
powerpc64-linux-gnu.

Thanks,
Richard

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2015-11-17 14:33 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-09 16:20 [PATCH 0/6] Automatically use vector optabs Richard Sandiford
2015-11-09 16:21 ` [PATCH 1/6] Use IFN_SQRT in tree-vect-patterns.c Richard Sandiford
2015-11-10 10:21   ` Richard Biener
2015-11-10 10:57     ` Richard Sandiford
2015-11-10 14:42       ` Richard Biener
2015-11-10 17:29     ` Joseph Myers
2015-11-10 19:10       ` Richard Biener
2015-11-09 16:25 ` [PATCH 2/6] Make builtin_vectorized_function take a combined_fn Richard Sandiford
2015-11-10 10:36   ` Richard Biener
2015-11-13 12:27     ` Richard Sandiford
2015-11-16 13:58       ` Richard Biener
2015-11-09 16:27 ` [PATCH 3/6] Vectorize internal functions Richard Sandiford
2015-11-17  9:30   ` Ping: " Richard Sandiford
2015-11-17 14:33     ` Richard Biener
2015-11-09 16:28 ` [PATCH 4/6] Simplify ix86_builtin_vectorized_function Richard Sandiford
2015-11-09 19:55   ` Uros Bizjak
2015-11-09 16:30 ` [PATCH 5/6] Simplify rs6000_builtin_vectorized_function Richard Sandiford
2015-11-09 17:47   ` David Edelsohn
2015-11-09 16:32 ` [PATCH 6/6] Simplify aarch64_builtin_vectorized_function Richard Sandiford

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).