<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylVMtu2zAQ_Br5sohB0ZEfBx3SpAF6KFD08QGUtLbYUKTKhx3_fYe0m6ZAURStIImkuNqdmd1l54Zz-4mP7JWhu4_vSfl-1JH7mDzTnlUeA1Vyq-xAswtBd-ZMe-fJxZF9sQ8UnavkPXUp0jtyFhb9yP0TD9lnJXcwY7Iukra9SQO-a0v4n6LqDFMK-BIdHZXRg4pMvVH2UMkNIq_FzdTPCSO5OWpnl_R51IEm9QRgGi6nKyzOLsLMvd6f4VzFDCkj5Wc1zYbzMo5p6iSih-hTfyGXsamj0qZgcZYU3X_4QpMb2BQ_NDgOFnAiOPhJGfALaZ6dj5nEtKzEQyXuLu8CDvesfNR9MsrDWlnrztoe6DSyBd08LRwz5N5Ns0ZkFQJPUDfjVIXaSRtDPGHG3jsfyOgnsESEbHMa81-zd0c9ZIfW0Umds0e2hcqV7CVRIGKpO5NP1pbwfY0gg_bINWKu7l6TgNrXuywjh7gMsKnxSDwXPHmibUnai6JIUMFvz1ASau5LmvfOGHcqArhkBtrr5wuNH2Hpek3uSL7OHiq5Er_uVc3b38CpRYaB2uI8uhmVjEqdUojUQVPyfNAhQgBUHLYODD9vvMghfN1UzcPfA_gzEPkaxys5gOBbgszZ7pqSf-D8kpHF0K6G3WqnFirF0fk2aIP2DTmGWSRv2jHGuSgrH3EfNGJ2SxQZFsYcfww3KJyvyD2WOoQEePKxkdvNdjG23ZqbQexWG1z1MDRbsRPrVXfbMK_Wm41YoFXYhBZKVlJaPlFxgTn0XPw_At1KIetayrVYibXYLevtttttZCNZNGseRHUreELHLrOfpfOHhW-Lyy4dAjYNUh5-bqKz9MEyF8BAGHU03F5zkasVvRhKT_mXGcd-WU7El0Mwn1_Xtr8cYJcOLsfTojBoC_zvGreyvw>52878</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            thumb2, aclass, rclass, etc. ARM features not supported in clang -mcpu
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          silversquirl
      </td>
    </tr>
</table>

<pre>
    Several ARM architecture features (and possibly for other archs too, but I only checked ARM) are not included in the table used to validate clang's `-mcpu` option. This makes it impossible to specify that, for example, thumb2 instructures are available on a CPU model that doesn't normally support them.

This is particularly annoying when using clang to compile assembly, as it will emit errors like this, while providing no way to enable thumb2 other than by running cc1as directly:

```
test.s:1:2: error: invalid instruction, any one of the following would fix this:
        mov r1, #0
        ^
test.s:1:10: note: operand must be a register in range [r0, r15]
        mov r1, #0
                ^
test.s:1:2: note: instruction requires: thumb2
        mov r1, #0
        ^
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydVNuOmzAQ_RryMloETsnlgYftblfqQ6Wqlw8wMAR3jU19STZ_32MnTbdSVVVFBtt4mDlnzgydHc7tZz6yk5ruP30g6fpJBe5DdEwjyzR7KsROmoEW673q9JlG68iGiV229xSsLcQDdTHQe7IGFv3E_TMPyWch9jBjMjaQMr2OA94rQ_ieguw0U_R4EywdpVaDDEy9luZQiC0ib6q7uV8iZrJLUNaU9GVSnmb5DGAKLucrLE4u_MK9Gs9wLkOClJDyi5wXzWkbpjh3AtF9cLG_kEvY5FEqnbFYQ5IePn6l2Q6ssx8aLHsDOAEc3Cw1-Pm4LNaFRGIui-qxqO4vzwwOY5EuqD5q6WAtjbFnZQ50mtiAblpmjglyb-dFIbL0nmdkN-GUmdpJaU08Y8XOWedJq2ewRIRkc5rSV4uzRzUkh8bSSZ6TRzaZypXsRSgQMdSdyUVjcvi-RpBBOWiNmOv71ySQ7evI28A-lB42NW6B-4InLZTJot0yCoEyfnNGJpHNMcs8Wq3tKSfARj3QqF4uNH6Gpes12yO5OnkoxLr6_axo3v0BTl0lGKgtTrNdUMmo1Dn6QB1ySo4PygckABWHowPDz1tXpRCuborm8d8B_B2IeI3jVTqA4HtEmpPdVZL_4HxTZDW062G_3stVUEFze_WYco6K8rky3G3FoS9zX99aOXXhtXgvbXipw9xkq-h0O4WwZGHEE8ZBIUBXokax0fr4c7pD3X1D6WCrvI9gJ54asdvuVlNbjWM39nter1nW3bZmWW23lWz2st52DcsVOo21byFEIYThE2UXWEOOlWpFJepaiE21rjbVvqx3u26_FY3gqtnwUBVvKp7RrmXCUVp3WLk2Q-riweNQQ2__6xCZUAfDnMPBv4xhsq71SuOv55M0epXjtxn_D6JXnqU">