openmp: Fix up vectorization simd call badness computation [PR99100]
authorJakub Jelinek <jakub@redhat.com>
Tue, 16 Feb 2021 07:59:03 +0000 (08:59 +0100)
committerJakub Jelinek <jakub@redhat.com>
Tue, 16 Feb 2021 07:59:03 +0000 (08:59 +0100)
commit1531f39268c8973cf9478585fba5c5bbdb6e9c4c
tree5a9e9e29cdc883a2258dc42cf008893d6f1fa634
parent0b5c58c2dc3734005d4d5e4be4e6920f2dada64f
openmp: Fix up vectorization simd call badness computation [PR99100]

As mentioned in the PR, ix86_simd_clone_usable didn't make it more desirable
to use 'e' mangled AVX512F entrypoints over 'd' mangled ones (AVX2) with the
same simdlen.  This patch fixes that.  I have tweaked the generic code too
to make more room for these target specific badness factors.

2021-02-16  Jakub Jelinek  <jakub@redhat.com>

PR target/99100
* tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
multiply by 4096 and for inbranch by 8192.
* config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.

* gcc.target/i386/pr99100.c: New test.
gcc/config/i386/i386.c
gcc/testsuite/gcc.target/i386/pr99100.c [new file with mode: 0644]
gcc/tree-vect-stmts.c