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

    <tr>
        <th>Summary</th>
        <td>
            Use LEA for small immediates when optimizing for size
        </td>
    </tr>

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

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

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

<pre>
    https://stackoverflow.com/questions/76795806/advantage-of-using-lea-over-mov-for-passing-parameters-in-assembly-compiled-from

> `lea r32, [reg+disp8]` is 3 bytes, vs. `mov r32, imm32` being 5 bytes.

> clang `-Oz` use[s] `push imm8/pop reg` for code-size optimization even at significant cost to performance; [Godbolt](https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIApACYAQuYukl9ZATwDKjdAGFUtAK4sGIM6SuADJ4DJgAcj4ARpjEIAAcpAAOqAqETgwe3r7%2ByanpAiFhkSwxcYl2mA4ZQgRMxARZPn4BldUCtfUERRHRsQm2dQ1NOa1D3aG9pf3xAJS2qF7EyOwc5gDMocjeWADUJutuyAoE%2BIIH2CYaAIJX1wBuqHjou1QQuyfoICBeoQTrZgA%2BgRdqQPqdvr9BADgaDwV8fn8YSCwZ9IUigSDZvt1lYbndHs9dgRMCd3oSXrM7iYAOx4667Rmvd5cOFmOHrOGSXbYg702kAEQ481onAArLw/BwtKRUJw3NZrB9FstMPszOseKQCJphfMANYgMU0gB08XWGkkYoAnDSaRouFJrdJRRxJJLdbLOLwFCANNrdfM4LAYIgUKgWEk6LFyJQ0JHo3F7sgkklAfcuNbAQYSSdAaoAGzSLD3PArABqeEwAHcAPJJRicLU0Wgk4i%2BiBRT1RUL1ACeTd4PeYxD7tai2iqOu4vHjbEEtYYtAH0t4WCiXmAbjEtF9M9IWBYhmA4lXB7wxCneHupM9mFUVS8JM9f0wrpltDwUWI/Y8WE9BDEHgLCDvMVAGMACiVjW9aNvu/CCCIYjsFIMiCIoKjqGeuhcPox4oIqlj6F%2BvqQPMqBJI4Ah7gA9GipiWNYXA0rsNG1mYvCoDexBAVgpEQPMbRUX4ECuCMfi4cEkwlGUegpGkwniXJ%2BTCT0Mn9LhQk1OMSmaW%2BV4dOMal9HEmk6Z4zR6CcXTGdMpmCSqKwSCK4oemecocLshbciwCjJrsGbWiaOakiCEC4IQJDqpqsy8NOWizAaRr%2Bq67qkCB6ySCa1pmPEBa5VwYqSDSkjWhoARSjKHk%2Bn6AarkGoYQEg8ZRvQZAUBALWJigBhGMCxBeAw%2BoHpgpYVlWdYNlKzZ0G2HZdmew79oOpBLaO46Tg4K1zowBCLsunrrpu260LuK2Hsep4yvgl7VDee4yvej7Pmer7vrwn7fr%2BGCrDKgHAaBfAQVBE2wdNvAIcIojiKhkMYWonq6AEvXGIRNiffx5GURke4ALS1gonHcbxt5kbY%2BntCJYkWTkkkMOgtmybh8kFJkNMSXkCkZIzGnk/YwmdMM7NWRTAtGdJJlWeZ2Qc9ZDQ8/ZCxLE5XAuRwEqkJVnGcF5eW40WuzbMeuwQIBg36ti4X4EQxDRarcWBmraUZVwJo0us8QaB7YqOtazEFkVmuetVti1fFwqkMGYZdW1sadRGrX9JBzBJAoCCoAQI1jZg0GTXBM2trE83dr2o4rWtY4TlO20RvOe1Liu12YBuW47nuWoXUYV1rheV73XeD7IE%2Bv28G9nqfT%2Bo5/iP2pASBM5gcDudgytkNITD0hw0oCPYSA6x4UYBGMURGPwFjwl47WABeROxCTmN8wZVP07pgT0wrylcwIr8s6pEt2SLfm2kuivy0oZGy/8maDBAcLMyEDiiS1VkrVUzl9CuSDu5HWqg9YG2AMgZAJszZDUthFG2dtYp1QSk7XgGV1gmnWAwxhTCmEYKqt6UO/pw6JVIIaSQZgTRcALNaIq5UzDWniPEMUGgCxoI4OsNybCOAO3qmrDirDtZKMoXqUg3E0jOEkEAA). That's also 3 bytes, but much less efficient.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxcVtuusrwWfRrWjXGFkyIX66IcBUUERMS7AqVWDuVQRH36Hdf3_fn33gkJyewYc44527QDjiPBLUI_3ErjVsYXnNiNDj8RQlE3kBZ_ZbR4_dwY60ZOApxocaI1MphX9IGGsqbzd04bTrT6CY2M0HbkREtZK-pqw6850YLFA7YMYrSk5XIaSYuXNYLLD3nZ0MeypMOy-2ho8bKDA2wQQ8O4JO0SjiNqsvq1zGnTkRoVy3KgDceDzyeZC27N1wguBknkRH3BrbQBYU7UCjJ2G25lcGt-QcaFtMheDI0fyGP8_pAa-viHRJpGEj_ADJEWL1Z_sN__1shr2OIPaem_P7hpRNxKG7mV8Ql203j75NhwotXRbvERsOYXJR0WOS3QciRvtKAdIw15w89sFuiB2gVki8_ISUly2LJFTke2YHTRoaGkQwPbHHGS9mnIpkVGa_ZpRtz87w7gP0vfdMC_AenNScBP9_gGLK0vVoH-BOl8TDVPb7Sw0PbAEgI9B_Bo6sB7zxrzgAKC2WJeoL1AiNUdC1ITvEaS8cEF6M-NpoEd1doTADHYdjPwHsBKTxFzsWA4oAN6CoIpnapavYLTbOzuBbCtmIGdPNqOt44mYLiy4WKQ32UQdnfTASDvAPB70JsnPCNpUDhxJWov2HaAWLcqmp95WosNkK8BDr0nCK_HVtbqItZZGZthuA3HoBGLQDj4UDAkaKtdKT2BG4m9pZgvf85X2PBofkcJMGJ3YtMLUPO3iONsRT2FwHEvwqxN_fZOJyEIpldJHV1DNDgNVwx-oTgs-uDYF49B1YCBoTGfN2W7SSN9vqpOTHBkXB9MqNOsLbajWuDQ0wuJRpfBU0gK_Ke8Xith8yhWuW81_nbw7eiSpVjhxQqYgbwRaAvAsJ850dJmtgtjd5YO10FTrZF5x_Htj2gX6G53Kz1wSLEX81jjN5fErqqUgtaIYEgnyx0KNwyfrrsvsr2_ny0dHA5DUXryHqQOjnc4Mav13nq5Ae9uqWQpI66qGpT5dMhAkEZRASAF9jvaG9IRDEDrkTmDbQ6OrhuSfB_zCa5k8jsTooUnIYz3AtDRqZCPKH0aCoNEJL0_yY_tPTNNlqYMbHkmJzq5NCC7m8xSPdVJtPTWALm-aMr81Fu0nTpPbaz4HG1cTy35eehqZsxx4nCilW4SU9UMc4v3uvHwzsD2gE7O90SFh8fEiZau6056Hy3HI7pDd_feRtMtP9KnTJ2-vq-tX72PPjh6veY6MrgpGKg26UhySC-AH8aDLTTpQ6cGemrgjDszOHpZGF9kU590ryRyblZzbccId3Y1t-Ti_qY86Sfea9X9LagE34samPyGz3Lhe7BWt2ZTra_yO1zr-eVkF17X6FG_myN9J1PUoJzm-_GW5WTW7-4w2llCoA8ropu67ASu0Xf9-Noc_IS8AQyH39z9WukrXVu_Ih0KXXM0Nbg6z2kfGVF1T24UhNF9t61-se0awKGyaRqYeHMNH8EVxBrYJy7B2s329KeGwPyLpNsOd-m5Tor0UO_eV94Wt9eiQbOiUr_T9tCX1ycs74Q3nTV9P07tMHSTuOb3007cjqiTXw9cK2cDIfn1QHfl2KBBeQxzq5R_dNv6YOzwFkCtBMFZM8W5ODyAkzv0Tna3yksT2vZrYD4uthMeSFk-V3YcVkgG-0jAtN3m2ZOtqiz90xnT3bRKTlVVeT5mzSu7bSrLrQ5edKn06uq87bb6HJ25KTxPOSThCTC7cN06QVcxyNWrEXyu6Kv-3JurC5jC2ewr99zaubVCicwn0zvz0DQHjoalNSPyRTaDpxHCIU-0ZoDx9Ty7lJ_GTQA1Je19Bt-mVZ2bCbEzI0JpzX3l2em1SIQRFqE9XFRXe2suoLpOQeAI9yvm7dNF80Q2mBupGEQqDwlL5VPti3z48JGwJ5MgptqUyEo7JfQSp2dhuKGzIl2QoTh_brGHuLHVti9PfzZyxYkWOYodiDRvhXNjKvCLVQfnZPC3maf6MY3A-inHqWZ7cWgfZ-s-17KSAA2F_lM_NYfNfD0feaXDJ34eXnU-O8NmXHcmE6N92YjVRB4vnl7tFydamwYaGsj33ss0CImEczWc43et6lNkTKtt0mM1tUXg4Stwx_fViNnNssWCpZ0QRJVywfZZwE2bgPl5O-mNme56to79z-M5r92z48AouOJTmIP9ATr9Kn4bSUuOphfbWH9SR_bHwyvTfeBLfTMYZDDYdefRSx9jyeTvvlmZAHCi-r043SDjRGVcwHqk_20Bsoktmim_LWo0jgtUliQnqGXfX8WPVKiSCr_Qj6DIkioI0kr6uv0U0orneaEoJKVUsyITFEmCUsYXkiDDVVF-kR-RF1e8zK95SVYF8TtHGS-v4WYN0UbcFCUn86iBpP6u60fzea-_yDhO6EeQ5JUofNUwQ_X4a75EsUXz4neVE8WPFxt-PqRlNuGRk_majGz8Nw0jrEY_8YgWexP8mo6xgXX9MSSoIJChcTHfUPuPAfkYnF8QeaOvaaj_z9Jhwm5T9tfLfWr8_S27gd5Rzj4n7aPsY-_-Sn_8iP8JAAD__0sbWgA">