https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99464
Bug ID: 99464 Summary: #pragma GCC target("arch=cannonlake") does not work with a -msha builtin Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org Target Milestone: --- Host: x86_64-linux-gnu The following does not work: $ cat pragma.c #pragma GCC target("arch=cannonlake") #include <immintrin.h> volatile __m128i x; void extern sha_test (void) { x = _mm_sha1msg1_epu32 (x, x); } $ gcc pragma.c -c In file included from /home/marxin/bin/gcc/lib64/gcc/x86_64-pc-linux-gnu/11.0.1/include/immintrin.h:97, from pragma.c:3: /home/marxin/bin/gcc/lib64/gcc/x86_64-pc-linux-gnu/11.0.1/include/shaintrin.h: In function ‘sha_test’: /home/marxin/bin/gcc/lib64/gcc/x86_64-pc-linux-gnu/11.0.1/include/shaintrin.h:41:20: error: ‘__builtin_ia32_sha1msg1’ needs isa option -msha 41 | return (__m128i) __builtin_ia32_sha1msg1 ((__v4si) __A, (__v4si) __B); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I've got patch for it.