<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/61439>61439</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [ARM][clang] Lacking ACLE __ARM_FEATURE_MVE preprocessor #define for Cortex-M55 
        </td>
    </tr>

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

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

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

<pre>
    Hi

I had no luck with enabling MVE for cortex-m55 target:

I've tried what seems to be tested in `clang/test/Preprocessor/arm-target-features.c`
[clang -target arm-arm-none-eabi -march=armv8.1-m.main+mve](https://github.com/llvm/llvm-project/blob/bc14c40dc14b8ab8f6a4ac432f70e17973d92937/clang/test/Preprocessor/arm-target-features.c#L775)
```
clang-17 -target arm-arm-none-eabi -march=armv8.1-m.main+mve -x c -E -dM empty.c -o - |grep __ARM_FEAT
#define __ARM_FEATURE_CLZ 1
#define __ARM_FEATURE_CMSE 1
#define __ARM_FEATURE_DIRECTED_ROUNDING 1
#define __ARM_FEATURE_DSP 1
#define __ARM_FEATURE_IDIV 1
#define __ARM_FEATURE_LDREX 0xf
#define __ARM_FEATURE_NUMERIC_MAXMIN 1
#define __ARM_FEATURE_QBIT 1
#define __ARM_FEATURE_SAT 1
#define __ARM_FEATURE_SIMD32 1
```

Also `+mve.fp` and `corex-m55` which seem to be there do not work.
I've tried clang-15, clang-16, clang-17 from https://apt.llvm.org/

```
clang-17 --version
Ubuntu clang version 17.0.0 (++20230313031335+71e2d7106fe5-1~exp1~20230313151429.801)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
```

No `__ARM_FEATURE_MVE` define in all cases.

Looks it was added 4 years ago in [[ARM] Add ACLE feature macros for MVE](https://github.com/llvm/llvm-project/commit/4ea248eb56cc156aac178d3e7db158f77c4eecf1) https://reviews.llvm.org/D60710

This code is still there (looking at [clang/lib/Basic/Targets/ARM.cpp#L887](https://github.com/llvm/llvm-project/blame/main/clang/lib/Basic/Targets/ARM.cpp#L887)) so expected it to work. I am bit puzzled, but can't build clang from source and debug it on this laptop.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVktv2zwW_TX05kKCRL0XXtiWPWMgznTcpChmY1Dklc2JJAokFbtd9Ld_oKykyfeo0QCWRJOHr3vPOSQzRh47xDlJliQpZ2ywJ6XnvVRWa_Y0q5T4Nv-3JEFJgsX1vYUTE9ApaAb-BGdpT4AdqxrZHWH3ZQ210sCVtnjx2iQBy_QRLYkW78YgNHtGsFqigPOJWTCIrQGroEKwaCwKkB2QNOAN646EblwloZtPGnutOBqjNKEbplvvOoNXI7ODRuNzkgbTZMly7A4TBhzcPZ3q0ENWSfBapvmJRCXT7XPuh17rt0x2hC7bZyRJSWh-srY3bgN0Q-jmKO1pqHyuWkI3TfP88vF6rf6P3K2xalTlPjyMeRwIHsZVzqq8TlnMeBzROgswzIosEgUtoozQzUc2SaO7LEsILaa9psH0G_-OI3ph9tGtg3cBDt4aPLEDbHv7zefgKfCAZKujxh4Oh8V-d9isFw_TAmgksJYdvml53K8Pq7v_QXgDsvu8voUpt_v16mFdHvb_ebwvt_f_utnh86dbkG25_XILc1fu118huNS_ht0_7tb77eqwW3zdbe9vDfrf5fbhFubz4jZkuysj-op6z4Dre9EY5WR0zapf9yQNgHVilJbSV5G6uvNJ8tMowxcVnlAjCAWdsnBW-sn_G-1ONEsIXb2U0zflDGqtWnivINZb3ynGV9px_u1q_5HE3jNqI1V3rX-shs4O10lgaoEw8wM_AEJzQpeELmlAoyAKxydKCF1mIVKRhUFaY-KFP_DShz9eQGESxrTw8yB8FdTDi3HBJU8Paez13GtkN1y8YzdMkJNGJqBVAhsH7JWRlylKnbGsaVCUUrsmQjeDcWKuZPeLdN2PyXqf5d2XtUvQxADZAWsa4Myg8d92vVPqyYC0cGYGmBAoIIZvyLQBdlSjmzqPXy72O5KUsBACFqu7NUyWAi3jWpnRvt2MH7M-rtpWukKMjMY5VknKeZikjPEwy0WEmajCJK-zjMeIvHbh_hM9ND5LPJu3FCnTIAvfxenhJA1wJRCkAWNl00x8JTRvlHpyhxGz8HIAuIVK58lLZiQndHNNriF0s9jvfN73zk7zPPuw47MWCd1c_XPzm3PSwkXBKMBLj3w8-qwT4Sg62AJroZIW-uH79waFk1c1WOCsIzSzUA2ymYR4VZtRg-Y4ilxgNRzdaKoD60LWsN6qfuLNTMwjUUQFm-E8TLO8CIM8C2aneUTzgNI6ymvEOmF5FKd1VfG6imtMqyieyfkknIQGQZYEflHVRZEEYZhUhQh5ROIAWyab1yzOpDEDztMwjopZwypszHjnoLTDM4yNhFJ3BdHzMbjVcDQkDhpp7E8uzKy0zXhZubL4Nb9JCXeMj2kfSf0XBUH_5kyFn4bq6L663lZ2SQKzQTfz307_uHyX2HF7fwQAAP__g-DVOw">