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

    <tr>
        <th>Summary</th>
        <td>
            Backport request for Fix AArch64_SVE_VectorCall calling convention
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            release:backport
      </td>
    </tr>

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

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

<pre>
    In 5166345f50412f1a380948c18809545c4b7a9bd3, changes to and removals of hasSVEArgsOrReturn exposed a case where SVE callers calling non-SVE functions incorrectly deduce that callees with SVE arguments outside of the z0-z7 range preserve the SVE register state, when they infact do not. To address this, this commit corrects the calling convention deduction logic in AArch64TargetLowering::LowerCall.

/cherry-pick d48e63074f7831cc8e52ac51d446076706b6fa66
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxtkk1v2zAMhn-NfSESyLbkj4MPabsAAzYM2IpeC1miba2KlEly0vTXj3Zb7DJAMEVRIp-X5uD1rf_qQBR1XXExCsaLcixk1bKOt6poyQouFB8a2Q26ysp7ULN0E0ZIHqTTEPDkL9JG8CPMMv56-nIIU_wRfmJaggN8PfuIGiQoGRGuMwYEukSutRjiZo2bwHm3W8_HxalkvItgnPIhoEr2Bhr1ohDSLNP7SwK4mjRvqWSYlhO6RAxLikbjypJmhDe2e2sgrLxwDhgxXHALrK8CTiYmDBCTTLgqIzi3hm9UepQqgfaElfbwSFK1pgSkejZxvbtaUP50MgT0jhm31J96lHcXYiIl7_DbzvrJKMoOh0NQc80fCR3TN3_FQG-y6kBr8-4pyz5jDxk7fHzLo6LehdvubNQLaN5iXbGGj01bFUq1KEqpRKE5r1lTN6we6lHWdY49_Voh2pJXItd9pbuqk3kyyWJ_J9XL2YdErfizYEww-gBH8_pJ90xten4iZX7j-Y-0fAm2n1M6x5W9PNKa6K8sw55aQ461l0-zOwf_m3KRa2KkcrQRxN7lcz8wjiPnirW6ofFTTcG1kLJpheo6hjK3ckAb-0zcZWUZ0CLNElUcPgTQYSYectOXrCwLVpRFxZtC7AvJ-ViMSK1APQrMOMOTNHa_Au19mPLQb2zDMkUKWhqI-C8oYzSTQ9zqUn65pNmH_vsDXmiK5ZJvQvpNxV8tixiC">