aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2019-07-29 08:46:46 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2019-07-29 08:46:46 +0000
commit4d706ff86ea86868615558e92407674a4f4b4af9 (patch)
tree74dec2539f4b43e34c43b95439896bec5b92e6ab /gcc/tree-vrp.c
parent708cc6132bb374e2c5bd1c4f43f9fe7306d20970 (diff)
downloadgcc-4d706ff86ea86868615558e92407674a4f4b4af9.zip
gcc-4d706ff86ea86868615558e92407674a4f4b4af9.tar.gz
gcc-4d706ff86ea86868615558e92407674a4f4b4af9.tar.bz2
Add dg test for matching function bodies
There isn't a 1:1 mapping from SVE intrinsics to SVE instructions, but the intrinsics are still close enough to the instructions for there to be a specific preferred sequence (or sometimes choice of preferred sequences) for a given combination of operands. Sometimes these sequences will be one instruction, sometimes they'll be several. I therefore wanted a convenient way of matching the exact assembly implementation of a given function. It's possible to do that using single scan-assembler lines, but: (a) they become hard to read for multiline matches (b) the PASS/FAIL lines tend to be overly long (c) it's useful to have a single place that skips over uninteresting lines, such as entry block labels and .cfi_* directives, without being overly broad This patch therefore adds a new check-function-bodies dg-final test that looks for specially-formatted comments. As a demo, the patch converts the SVE vec_init tests to use the new harness instead of scan-assembler. The regexps in parse_function_bodies are fairly general, but might still need to be extended in future for targets like Darwin or AIX. 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> gcc/ * doc/sourcebuild.texi (check-function-bodies): Document. gcc/testsuite/ * lib/scanasm.exp (parse_function_bodies, check_function_body) (check-function-bodies): New procedures. * gcc.target/aarch64/sve/init_1.c: Use check-function-bodies instead of scan-assembler. * gcc.target/aarch64/sve/init_2.c: Likewise. * gcc.target/aarch64/sve/init_3.c: Likewise. * gcc.target/aarch64/sve/init_4.c: Likewise. * gcc.target/aarch64/sve/init_5.c: Likewise. * gcc.target/aarch64/sve/init_6.c: Likewise. * gcc.target/aarch64/sve/init_7.c: Likewise. * gcc.target/aarch64/sve/init_8.c: Likewise. * gcc.target/aarch64/sve/init_9.c: Likewise. * gcc.target/aarch64/sve/init_10.c: Likewise. * gcc.target/aarch64/sve/init_11.c: Likewise. * gcc.target/aarch64/sve/init_12.c: Likewise. From-SVN: r273869
Diffstat (limited to 'gcc/tree-vrp.c')
0 files changed, 0 insertions, 0 deletions