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

            Bug ID: 105055
           Summary: pr95483-1.c makes incorrect assumption of SSE2 being
                    enabled.
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: testsuite
          Assignee: unassigned at gcc dot gnu.org
          Reporter: poulhies at adacore dot com
  Target Milestone: ---

Using a compiler without sse/sse2 enabled by default, the test emits the
following warning:

gcc/testsuite/gcc.target/i386/pr95483-1.c: In function 'foo':
...../11.2.1/include/emmintrin.h:762:1: error: inlining failed in call to
'always_inline' '_mm_storeu_si16': target specific option mismatch
.../gcc/testsuite/gcc.target/i386/pr95483-1.c:15:4: note: called from here
.../11.2.1/include/emmintrin.h:725:1: error: inlining failed in call to
'always_inline' '_mm_loadu_si16': target specific option mismatch
...gcc/testsuite/gcc.target/i386/pr95483-1.c:14:7: note: called from here

The reason is that the test is built using -msse only, but the emmintrin.h has:

 #ifndef __SSE2__
 #pragma GCC push_options
 #pragma GCC target("sse2")
 #define __DISABLE_SSE2__
 #endif /* __SSE2__ */

preventing the inlining.

Seeing how other tests pr95483-{1..7}.c are built using different options, I'm
not really sure how to fix this correctly (I would add -msse2 in this
particular test..).

Thanks,
Marc

Reply via email to