https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82847
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|missed-optimization | Priority|P3 |P1 --- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> --- sse3a_enabled of course requires us to manually put that at the dg-scan* lines and thus in the end requires quite some target knowledge... But yes, it would at least make it possible to properly select what we expect. I'm testing whether sticking it to vect_perm_short works, even if not 100% correct. Index: gcc/testsuite/lib/target-supports.exp =================================================================== --- gcc/testsuite/lib/target-supports.exp (revision 258851) +++ gcc/testsuite/lib/target-supports.exp (working copy) @@ -5828,6 +5828,8 @@ proc check_effective_target_vect_perm_sh && ![check_effective_target_vect_variable_length]) || [istarget powerpc*-*-*] || [istarget spu-*-*] + || (([istarget i?86-*-*] || [istarget x86_64-*-*] + && [check_ssse3_available])) || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) || ([istarget s390*-*-*] @@ -8012,6 +8014,19 @@ proc check_avx_available { } { #error unsupported #endif } ""] } { + return 1; + } + return 0; +} + +# Return true if we are compiling for SSSE3 target. + +proc check_ssse3_available { } { + if { [check_no_compiler_messages sse3a_available assembly { + #ifndef __SSSE3__ + #error unsupported + #endif + } ""] } { return 1; } return 0;