[Bug testsuite/95900] [11 Regression] New test case gcc.dg/vect/bb-slp-pr95866.c in r11-1647 fails
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jun 26 07:23:55 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95900
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rsandifo at gcc dot gnu.org
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
/space/rguenther/src/gcc/gcc/testsuite/gcc.dg/vect/bb-slp-pr95866.c:13:1: note:
vector/vector shift/rotate found.
Indeed it uses a vector-vector shift ...
The odd thing is we have
# Return 1 if the target supports hardware vector shift by register operation.
proc check_effective_target_vect_var_shift { } {
return [check_cached_effective_target_indexed vect_var_shift {
expr {(([istarget i?86-*-*] || [istarget x86_64-*-*])
&& [check_avx2_available])
and
# Return 1 if the target supports hardware vector shift operation.
proc check_effective_target_vect_shift { } {
return [check_cached_effective_target_indexed vect_shift {
expr {([istarget powerpc*-*-*]
&& ![istarget powerpc-*-linux*paired*])
|| [istarget ia64-*-*]
|| [istarget i?86-*-*] || [istarget x86_64-*-*]
|| [istarget aarch64*-*-*]
|| [is-effective-target arm_neon]
|| ([istarget mips*-*-*]
&& ([et-is-effective-target mips_msa]
|| [et-is-effective-target mips_loongson_mmi]))
|| ([istarget s390*-*-*]
&& [check_effective_target_s390_vx])
|| [istarget amdgcn-*-*] }}]
vect_var_shift is only used by g++.dg/vect/pr87914.cc:
// { dg-final { scan-tree-dump "OUTER LOOP VECTORIZED" "vect" { target {
vect_var_shift && vect_int } } } }
but that would also have passed with powerpc vect_shift. Looks like
aarch64 has ashl expanders in aarch64-simd.md.
And the target selectors as usual are a bit of a mess ... :/
And looks like I added vect_var_shift. Not sure if it is now time to
add vect_scalar_shift (and maybe rename vect_var_shift to vect_vect_shift)
and leave it to others to sort out vect_shift (meaning then whether a
target supports either variant).
Easiest would be to change the target selector on the new testcase to
{ x86_64-*-* i?86-*-* } ...
More information about the Gcc-bugs
mailing list