<grammar>

<machine name="generic">
<archs>generic orc|</archs>
</machine>

<machine name="neon">
<archs>generic neon orc|</archs>
</machine>

<machine name="neonv7">
<archs>generic neon neonv7 softfp|hardfp orc|</archs>
</machine>

<machine name="neonv8">
<archs>generic neon neonv8</archs>
</machine>

<!-- trailing | bar means generate without either for MSVC -->
<machine name="sse2">
<archs>generic 32|64| mmx| sse sse2 orc|</archs>
</machine>

<machine name="sse3">
<archs>generic 32|64| mmx| sse sse2 sse3 orc|</archs>
</machine>

<machine name="ssse3">
<archs>generic 32|64| mmx| sse sse2 sse3 ssse3 orc|</archs>
</machine>

<machine name="sse4_a">
<archs>generic 32|64| mmx| sse sse2 sse3 sse4_a popcount orc|</archs>
</machine>

<machine name="sse4_1">
<archs>generic 32|64| mmx| sse sse2 sse3 ssse3 sse4_1 orc|</archs>
</machine>

<machine name="sse4_2">
<archs>generic 32|64| mmx| sse sse2 sse3 ssse3 sse4_1 sse4_2 popcount orc|</archs>
</machine>

<!-- trailing | bar means generate without either for MSVC -->
<machine name="avx">
<archs>generic 32|64| mmx| sse sse2 sse3 ssse3 sse4_1 sse4_2 popcount avx orc|</archs>
</machine>

<!-- trailing | bar means generate without either for MSVC -->
<machine name="avx2">
<archs>generic 32|64| mmx| sse sse2 sse3 ssse3 sse4_1 sse4_2 popcount avx fma avx2 orc|</archs>
</machine>

<!-- trailing | bar means generate without either for MSVC -->
<machine name="avx512f">
<archs>generic 32|64| mmx| sse sse2 sse3 ssse3 sse4_1 sse4_2 popcount avx fma avx2 avx512f orc|</archs>
</machine>

<!-- trailing | bar means generate without either for MSVC -->
<machine name="avx512cd">
<archs>generic 32|64| mmx| sse sse2 sse3 ssse3 sse4_1 sse4_2 popcount avx fma avx2 avx512f avx512cd orc|</archs>
</machine>

</grammar>
