https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116500

--- Comment #4 from Andi Kleen <andi-gcc at firstfloor dot org> ---

It seems sparc doesn't support comparisons in vectorization? 

/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-switch-ifcvt-1.c:13:7:
missed:   not vectorized: relevant stmt not supported: _13 = _1 == 124;

the target check for vect_int is already just hard coded targets, so I don't
hink we can do much better than a architecture skip. otherwise have to put
probes for everything into the target tests.

proc check_effective_target_vect_int { } {
    return [check_cached_effective_target_indexed vect_int {
      expr {
         [istarget i?86-*-*] || [istarget x86_64-*-*]
         || [istarget powerpc*-*-*]
         || [istarget amdgcn-*-*]
         || [istarget sparc*-*-*]
         || [istarget alpha*-*-*]
         || [istarget ia64-*-*]
         || [istarget aarch64*-*-*]
         || [is-effective-target arm_neon]
         || ([istarget mips*-*-*]
             && ([et-is-effective-target mips_loongson_mmi]
             || [et-is-effective-target mips_msa]))
         || ([istarget s390*-*-*]
             && [check_effective_target_s390_vx])
         || ([istarget riscv*-*-*]
             && [check_effective_target_riscv_v])
         || ([istarget loongarch*-*-*]
             && [check_effective_target_loongarch_sx])
        }}]
}


Proposed patch:

diff --git a/gcc/testsuite/gcc.dg/vect/vect-switch-ifcvt-1.c
b/gcc/testsuite/gcc.dg/vect/vect-switch-ifcvt-1.c
index f5352ef8ed7a..6d2a5ce52f20 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-switch-ifcvt-1.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-switch-ifcvt-1.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target vect_int } */
+/* { dg-skip-if "no support for vector comparison in optab" { sparc*-*-* } }
*/
 #include "tree-vect.h"

 extern void abort (void);

Reply via email to