! { dg-do compile } ! { dg-options "-O1 -fdump-tree-optimized" } ! ! Test __attribute__ ((target_clones ("foo", "bar"))) ! module m implicit none !!GCC$ ATTRIBUTES target_clones("avx2", "sse2","default") :: sub2 contains subroutine sub1() !GCC$ ATTRIBUTES target_clones("avx", "sse","default") :: sub1 print *, 4321 end ! subroutine sub2() ! print *, 2345 ! end end module m ! { dg-final { scan-tree-dump-times {void * __m_MOD_sub1.resolver ()} "optimized" 1 } } ! { dg-final { scan-tree-dump-times {void __m_MOD_sub1.avx ()} "optimized" 1 } } ! { dg-final { scan-tree-dump-times {void __m_MOD_sub1.sse ()} "optimized" 1 } } ! { dg-final { scan-tree-dump-times {void __m_MOD_sub1.default ()} "optimized" 1 } } ! { dg-final { scan-tree-dump-not {void sub1 ()} "optimized" } }