<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/132601>132601</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Add explicit support for u512's
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Validark
</td>
</tr>
</table>
<pre>
It would be cool if I could do any of the following operations on a u512 and get a single instruction:
```
a ^ b -> vxorps zmm0, zmm0, zmm1
a & b -> vandps zmm0, zmm0, zmm1
a | b -> vandps zmm0, zmm0, zmm1
a & ~b -> vandnps zmm0, zmm0, zmm1
```
Etc etc. I would also like to be able to do bitshifts and addition and subtraction and have it be optimized. Here is how a shift-right by 1 (a constant) would work.
```asm
vpxor xmm2, xmm2, xmm2
...
...
vpsrlq zmm1, zmm0, 1
vpsllq zmm0, zmm0, 63
valignq zmm0, zmm0, zmm2, 7
vporq zmm0, zmm0, zmm1
```
And here is how addition would work:
```asm
vpaddq zmm1, zmm1, zmm0
vpcmpltuq k0, zmm1, zmm0
vpternlogd zmm0, zmm0, zmm0, 255 # obvs this could be reused by subsequent additions or subtractions
kshiftlw k0, k0, 1
vpcmpeqq k1, zmm1, zmm0
kaddw k0, k0, k1
kxorb k1, k1, k0
vpsubq zmm1 {k1}, zmm1, zmm0
```
Full code for shifts and adds/subs at this [Zig Godbolt](https://zig.godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYgAzKVpMGoAF55gpJfWQE8Ayo3QBhVLQCuLBhNJOAMngMmAByngBGmMQSegYADqgKhPYMrh5ePvGJdgIBQaEsEVFcMVaYNtkMQgRMxASpnt5cpeXJVTUEuSHhkdEGCtW19elN/e2d%2BYW9AJRWqO7EyOwcaAz9ANT96GsApHoAImsAAngs8bUQ2wBMl5tXl1O7AELbGgCCL6%2BYqmcEa1QMayY6HQAFYuJcAPpfAgQV4gI4ANUwthIEAAHKQ1u4AGySGZrR7ww5IlHEdGYnF4qaI5FEMkYrG46nbADszzea05awAbjU1qJiMQAJ7w9xcbE7fZrDRPD5ctbETAEeYAoGg8EXS7YgXCzGvTGPB56dnvFl7D4ff6A4Fgy4QHUitYAKjF2L1RJJdPJjLxBo9tNRDMpU2pxID9IpTJ2bLlXJW6wAsq8ABoQgDqAHkAEp7f2k73ByUHQ4KWJGGEaVRUas12t1qhGk07DlxgTrBRFtavHaXZ6XEEE2Utzm84j80XizuHJgKCDuBmHMKEZwzmEd3bOLshofdrmjtYsUVoqdLuqriDr/a7A5J1OZnONuWxzmspvyuOdgDWCgQeCoBFoe1MS4R9h3fZBOwg1lNwdAA6J0d3fD9rzWT9UFiTVLjVO5MWQTEWFA3ckLgp0vx/P8CDJPC1jRQikM5Fgv3QzDVBIHCD0xadZ3nTjKPcBhRAITB7RDOiuVZc03mfBUlRVHlYgUdwwgARwhFgZ0/TB0AhGcWAgFhMQUTFb3TbM9kIgB6Cz5UVZViABEsylpOdcU4mcIDDfMGTCVA3HxRdl3PAj8Q7ABaK4BxM%2B89kMwiJItN4rLWZRFSoSJFS2blIkSBxLQBcj/1oW0ICYPMvSDJlcNQU47DYNYKEZUNPUDSM8WjN9OT/NYIDwIsUI0albLkphEK5Ib7O6phJWcDcjlLcsepDaNN02WDEhYdA1t/f9sHoNhBAUPxMH/ErJWwXZsDmssmBhbE9DWUL6p7R41hA4DMQGnd4qkt4vh%2BP58u2gDbShVQYVKmkvNapbPPK6H2uk8bAYooqNSYYC4rNBLXitArKOKiHYZan18TQGqTkwerRWxJrwwLKNX2krqer6qUBpkuzVVGzkkcms6Lquha8CW6CNgITb1oloHdswfaCAULMLAQcHptmktrtu%2B7Ht6q4Xre16PsxyT3l%2B74SF%2BXGlJB6FYTK4ngz9SG4ZJ2moZJhGwP3B0JwlfruY5uTFLCYqrm1GpdS7A0jexv7zYBjYgeIa2wZKu2Ixdp37YZmMwN5vGk7RjGvqxn7XiS5WCFiEArIAdzr2CGG6Yga5IWhNpIYALKFULkGIfjkAQSILMCIT7LEBQLLVJIBFg5WWFoPKNitjVvedV13Uz9OHYJNP6apTe9%2BZHOiP5Ntfiiszd4qtqUPVhbK3rR%2BazEzl41%2BS8Dm7cL%2B0HY1pK9n2U53I8SOKeFc/QLxnS3C/HkfJDxYmPLfMB54P633cocAAKkKWImAMxUAvP5eaN0IADW3H/Dk0lGZgXlFBKU34gaAWoiBf2NDILLX5OHIU8EWHITocxO42Fri4XwjAmhnD4JkUTkBGioiuSMRQmhDCdxWLEHYgZI4wCFx8QEjdYSyBRL%2B2%2BibE%2BvNuSxDVKpdSChNLaV0vpQyxkUymQfDuJKAcJqOXKC5aQGjZxE3Tj5PynFkEQOCoZZ6EU1gXxzLFYuxtF5mKDpYjSWkdIKD0lYz8R5MRZWQBCLgV9oY5ORBCS4hSM7%2BMPh7E%2B%2B5FSKVoL8FCuT8n%2B10t1aS8ptgghmt0%2BSSSewgi6Y8ZplwukxQGUM5pXAxmYgikMxSLAxkI37EMzJYyjH0TWPCeZngll3F1qoO43U6nuAaTMDpXJtkgmGSU6ZIIDjKKORAKZ%2BJJklNGfcnslxDnXG6iM151y1mfP2SCbAABNT8TzMkPGoZc6SMDeYnIaXE7GVozEWLUik2x6T9IaWyTyW55Tt4jKJUyV2ztCxUJqXyJFjSpRTNaek9psKXzdK6ZudFwJlITOuSMmZPKbl5LueMuZ1yFl7JjCswFGl1klxPvKK5jxxXAuuAcp5tLzksq2TsXlty9nXB%2BZcP5tyAWCtKfq75Tz/mzOldYi1XTwWQt%2Bbi6xML5VwrAgi2SE1aUotLlaRR9pqqxFqpTdCiqxlvwQYZBY8JjBCgINgzA%2BE8VHCwTgvBF4Fgw3Tbg/BChs3VJst61UTLMJOqNbrXWax0IRN7BsGuhAB4eVzZmgt%2Bij4dXfPOVml07hhBwhczkrpe1fJroOrV7g9CVqvHoPt1x0ATvdcO3Eo67jKSXZssoShR2HDJrEOgOBBSojuAASQYLyWgeAtiJpwWscxCglA3tQKhFRdxNUnwknWl6RzRWPCBSKqVSqFj8r/bZdZqqtWKvAyq0Z%2BwK3dXCnOtNSa23Zo/ZsxV7aLUIazfo0gQ7xK2shbB3D0KCOer9cYgNeNALtrjQwBNSaqrkzqg1Va6kCAIFgn4VAwBLjnphJg1D%2Bb0OhlbaJ/RRaxolsBGWu49CUa/t7NWhQjaCDNuExmyTItj6bJ7deAW/bN30RHYZ5Ddxx1CMI1Omd5oLMLpM0hSka7rgbus1q7dlNzOXT3cGw92Bj1kjPResQ161i3spg%2Bp9EWX2fjfdcDD4kzTfq%2BQKgDsygPYfuZlwZ1yYPmkg8u7VQyCtfOvLhpDvmJN4ZDBR4rWGQOkaee2pLmzVkytg3gJ5XE5wMmFm1tY0d/UAkU/%2BMk9HASMciyxkNFMqZi02px7jvH%2BOCZbSJ2rObNutekzzWTbTy352U32F6amm0IA29prbe3u2INnfOy4A6PPFbMw9sdTnu3Ttc5cRdL39Orp8189zlx6tbtoDuoHfnTgBaC5hc9l7wuRfvTOGLRBX1sUS2D5LDyVP1uU3l/9nXAOE%2ByyT0rSoIOjKgzqx4ZX9nwaeVVlD13WuDYVbTsnXzcOtex%2B14jFruvOt6yAgbfOhtUY4DMWgnAQS8G8BwLQpBUCcAAFoWA2HMBY3nLgxF4AQTQUuZiDyBD0CAMwskgg0LBbE2JLgaHtwATg0CCR3uu9DSBlxwSQvBDxcA0BoUgCulcq44LwBQIBA8G8V1L0gcBYBIH3YesgFAg0w/oFEUw2jPx8DoKPCPEAwiG9IEuZgwpOA8BL4EGoQoMxhG0LSCvvAyZywzAwWgIoY%2BkCwGEdwwAVy0Ah037vstjDAHEF3/AipbB4CyhHrvXxkTuCEsPkeZRi9XrCMQGvrgsDF8oicYfWViA%2BSUHsUfJgr0mENzMKgRhgAKARHgTANcMw4IV5X/gggRBiHYFIGQggigKg6gXeugoORg1%2B5glgm%2BEekAMw6EFQ8%2BoUGYawWYTkM4mAAAYquA9AMMAEqGsKoGiNiBCLiKFFfu4KoA9CwMgLEO4NeKYBepEHLsrsfsQNepgLAebs0LSMkI4AwC4G4A0D4P4IEF0AUD0E0JkNPCkEIcMKQNIRUOME3D4NYLwQIG0IMHIY0DwTPhoQMB0GIRMJIVYAYUMDoaMLUMoRIUUDMAoFrosPoNLrLvLsXqHmsFARFn3AwJ%2BN1LgIQCQD2DEFMPrjfsbpgKblENwVkpII7rBDECyI7okRoI7pIBoCyLbm6F7j7qQH7gHkHm4ZwOHpHqQNHloHVl7pcL7hIPkcHrwKHqETHnVsfjlN4JIEAA%3D)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUeMfyo8jy9dOoN8R04JEWvSi890aww6lAeCeQFt-zfyH9-s50z507EX-FouyprJMni8Sky1LDvix_nCj2RPHf0m2thvlHmLZ1kc7Nt2wonj-UFdmHrS2QrETyYWiR-oYoSP4ZKgYk7Z_IcEPWqkRuQ9sOe91DZBjLOV3roV-QoUdSZKMwHEn7AoHliqTIUvewLZG6X9Z5y9-4EwFO6OdPoz__KEiREyUgGfLHiRCQxzHM44Igr65DTzj3a419YXEayZCf4LQv_h3McP8HME4j_y_7C9yPy_8C_0r_hAJhzZFyzb8jyk8N03YZkLZuSmQd3oKmWftpFgOS1etS1bd1-QiVFkX9FubTWbZsndP8z36VPkqkXt8GhnGtu_pVFt8RuZxLpF6QatjfGr9t_THXsFqR7IlgyAk_p0g-9Mua9usJv_xktA9z8_1v2qdLd0IB8vP3GI9hRhDk6Dr87epvNQq-f__-Z_nXkmVupy9RfhEJ-x3SttN_q04Tv4LStob99E9qfygwvxkc5gn5n2H8W2TAW8ZfBfuP3n-p8t9n8u-6pEXx5QH250b_2fhXWN6N7bpNSIP-K2wt574dYPHV_wc3PjVOUcgJJ5AheyzIWtXLz0sxK5G53JayeEd72bKlnLayX_90bEGG-deDtPyyd_M5LO3-k2HzD8HKu7Gcpj8X_JvDTVoU-7v-xVjzq7XmGObsTys_y9-1WLbsp7LIiWEb7MTw_7Dj32Iqbm2L5EPxzkQz8vvFtJxw8a0Kkq5fqp0oNqkhIg1FNrTrieJP-Lla13F5hx0XT7j4quF3-DX9fZjhZ5B4nQhgxTqsgMhOBeVwB4h3O2YNrmPdgtWBiDlcDlJb4IDx2tnVAAxwdnE1HPYJXHjRVicWwHOpM9S5Au44syzQBrb3AQiAPO7AeAAxhuClhaMhDUCkKDiqt8gRzuA5EA5bhbrDbTpbmaoFjB4aHWCfPWSlznC8EsaAn6BW2bExV1RpPyS1gArrpMIihGJuhGlsro3hQNc4gDf2K5WP5VUN_UDYPLlqCkHi1gi7lK15wsUSL044hbNxdAGqG00WIzytPU_B6wJM_0JLCxjlASjdAkAPl3MWOPjOGi21XlvMYoCgZxLkOJ3-sjJ1uZBijpE-Y1p2gBhvag7s8QagE5JQIYEZ7GulCADImoNtJJCenpTMLrPvlNLKQiHFvUhOqUKJgtHEs0TSfQb45fUqU5RKd5DdA2xSa8MBKrNfjjwTmFsy867NU_maCT4QyhgMEjwLV4-J4ZV7SQ9fslmKLvqH2DI8ebvRgBThk3TkoF5joN1FXMdcVS1s9a4f7HBZTZc3xgAfD4W_KKOv4pneXtWI3sEynQE7OJCfgNwAYWRueMMQ7DOQHVKLVEkS0tAN0gXDV2yqpAZl-PaA_sy64po-5PSa0FdBEPBgfXVn8n5Gr_Vrk1WocfzGdrKhCcn-6oSCyCx9qYZbMXf3NV6CcJgKfZvmmp9PuJgygFIxK-ktc4uOV7eMj-dmFZCPOOiU3MCKQ4kZHuleKuKWsNYOsdbcCwBoFS2IG3-ZX5F_CcTaD_V7aFFG5PhCJAIib3Q4oo_jhIv2meNVm8PurlM3BiXCB-G8-JBVZI5Hj7RIiN6_a3bOVi5QfJZxeavewiRHie7GBq0bym0Mg2LfIXD3SoQJesJFn0VBJeURgGJlOIEvZoSfGZdGgSzNvaggTMIasMLybEeryAOyyxWevxmSz4WAkA-3aAkb3M8OA9hUI9nD-Jy686Ux9lpVVpOc9ShxRW_wVNHDs1ZpPPbQHTa_n3ARGyJU4WLbeHi82uamE5AMH5uxJiSBaQe8Z5yju3mx_BMumrHC78oSKGjaZnozVoJGKRlj0WOlRjmf31s9X8qRT00TxSNeqOICYOsJF2-XRR7MigWBfRjyCReFWY32a7Lw3bJ0bJUJFz4KdHpkXBKrAMkbjtQX5NSs5KP6eGNT5w2HfOZVoROHWtc8zHTMbFujZXxrzhmIh2EyvTjmyNlk9Wu9glmztFqOk7THzr4jTX6zl7MbHeq877pmXvFmnsqZngJ2bLZXGEqvpsm7hdanrUrPXERzJlT8DBvaQS6W_ZZyINANHTi5PK5ds87r9qHGyCs9kde5xGh7OZ4-0X4Nk574aVylVmVpMfY1soeviyeRiYp3Q6JW0m4TLKru7W3eYmrzRZ2Lp7nDpLHwGIDey-PBvGL2HsNSSfE90TZcOYqRYOKkM3aTekgN496lx3T0zLX2qIgTawHMCiheM85JEh3DlFKiyhyVGOiaGOiNpNzuDXA8RTc4xWd0gXV0PVQVVoRUFImDrZn1eg8fZRFiRPC6WHKsmjadjn55-XiTyFZtU-Z6q-vlVZDTOgV2WGUaMbuf-fQlvFoS-7S9M98xuf5po3KMjdqlxwOKUM6epZVifsJFRz96j-BOuCg3N5U_4s7WbwZLkTZNEPmQA6A1WqR0wDgC8LCpMjVRBfAR8T5FfIO2UgKvrchqAUHCFERDzd5wk1d0_UpZshKchUhW_CE_LBIX55q87nfQVT1Pqk3gN6xUD_XmGa7TVTxXHJEuyDFMFHLnxOPsCPci9p6s--UB_inrTPjUD3PzDj7UxsLjKlNPQ_QxOs-jCZ6dc-M3VQO5OllXjaNSR7onh0D4d8p-9mIjOBY3JAktBBi8Hi9djLdjFalO48f47kVNoWg82savs0sZbhI5LKfD8DLElOWynEdWnsF8GBh2xXxx-RSU6GnhoJ9FbvPP_WcIQ1cs9c7jCmHVrehXTDyv3GFNx-dkbPetORwpMKjxCo4uhnVjHJ4OjkYhGMF4qfHzLqN-ZHNl0sO2JURsGiySCOh-A6lv8ONVXRvYSV5AJ4rC3zXNcoGWfDZS1aY1pVveL-3B91eJrg2Mwp5Yd7Nxj8sAYE3_7L-MxpaGJKc9gy_jXkmvAiOFw0uI9KBu8IP2L0oaPf1nRFH-St41NXiG-GvljkCdrk9VvHuj65tp2VzGRbu-Co1OtkLc1Vbxrc0zusTWspbSt9LYEuwptox655ZdlFqsaQ_7oWnU_TiuYNtAPlKr_mqWCfeXa7s-L_31S9kkt6n1CSJu1W4TQ_mvEy52L6st4hq7-nvkrB9YVtOHoVPhPgNY456ApcGw6m3qupdxmg5xGv2Cq6ejfexOnLDxWb2zHFRM-AKf9cI5lLndhw9WJEW4E372fvZiuWohQnVZaSzwdUO1JjObr1F6oIprMuwibRVgyTJ8JR384lHfyeJ6s62wa1Gmqti9yl_NPJbYTZ0Haw4ZeOHC6SEP9oodKPAfRW4RwkAzd827JssyeJWLy7w6Cxa0WNYb7hsAnhPrzwiWYK3VcY-W_OBgC4jV0SrRLQ4z6Pemj1rafbmRzbGeNoXeJN7P7xtzlhTJNK2R9gDPCf06HbtGFFeut1bTS3EiGU64mCxHyKR6oKSv24BChzk0fKkyluBRjbPK-ZLH0CxNoK_z3dlZ00unuXlNEAtTuuGAIsKeDMHO6vd-rFSI8V9RQa2qzVL1hIuumx5Du7BStJEXLkhPuLgyZlQ595TjzU04uqevrHc6U5miBNGbuUmgrhwnFF8cB8YZCmZ1BTXohj4aaOU1KTPDbFuwiSla82VdfSKX9gvO3rHmbrvl4mA0VhPLCD9UxosQXfHb_VbkPE82L_82fcYdDfLLE9rxbUvaPcGesd018LwxofPk1pv10KuRf3SqSSY865JzJDlWk5YlPurdK2yeKySgSl0Fajc6scPWGC1OuBiAJvg8u79TRXORgWfk9fNoTNGYkhrFx4O5P-TPtMUlmafis5WZ21o2r1fkZ_6ToPCAwEU67TpUAfhlnLOS2HDF7G_WkwS0bYuZsV-Wwu83wl9zKncLnbhY83jGzpdXe9Brtg78Nsi33odsylFVfmmZfXNvD9-SdJe9Ykvg4Tyl88_QxrbgfecUL_0VWF957fn00dkbFOuuwdd0kMn10u9pGYYtjxHRxsdh5i_99ZVba3l8ZTzyLs7bw1rpJ4DZzarWICZ5I4I9cLyzdGZ33RnZgMsBEIcI4LLBxkSvw0MkgeM7wZbU_JPlUQ4Y-9JAiOpsJuCqDlN53YEPUY5ziW278B7bHrvnPFj-yAHKDgHktjafSFLfWUdhwVk6h5iOwpyNWUUm4nKBIoDofsLFQRSCHb_bx5kfNJuzBbDX0kURtgTuowXOrE4K0uAMxlFJqO5xjwd4Js_9BfYIKkP88bPhdkko9h2ETxRUKME8lvXOA1kQiRMugnrMWJJ7VvL8uB6Nv3HCYjdl4taX68wZjvSY4cKL56HO41sU1l_5xwvkJbipcEY7wXwZGnQrCDTgytAHZm7spBJS1xMuQghdtpZjUZEcCGuoQRpeyw0Olgu_7vsUbGH3ldPKBhg7LYjO-dMfAilO9yj2G4PsAADxtIELMAwgTNKiDVJt1iyn15oo3jZSG8CF2w2oCxZpllrMlqMg68u83BbHLEeogzJbUN0zGoUEO0dKJEB50iYVQURBwKMCqjamzTWCkhuaYypuYBkCwZNmrO-OIqGKISsxyu--XQ2OwaKS4hqqEsYgDgx-SA09MAZXCQLeAIM4D4s9mPqsP_TlOsndIgJX7Amwqx_HTEyHisM5PM4LomHP99uSjVDLWsHcw2ZUFGZmeYF7KszQuIPCjAo7cE8962iRuTOTIzNQbuSOTHZLHuXJMeV2kMOWGXOdqRS7yeV51-RJ8OU-XG731iTV9_viCacI_oRfvhU_iOJCXNJv5Q-MIXEGRzGc-lb9KNMLhV3oC01hKU7RaUnlKYbdKDQv6RRPs2_1DxzFKZTACfRMUTj1HSXwG33JUQZnivRM4ycSLbu0br-37aP7PszwW70sW_kDI3Aaxb61aVa2y-dLKo735Y58Zk84fqL4b_OP96I_sg0uJxJt62Vd_jKz1mtb_gBFgZTH2NZ5vSLLNo7DvH6-Y2wUhp9wZvm2ze2P379QwHqttux7PnQnXHzb-1n9Mc7DvczfbxwfFsv7_eaL5uMH_v8DAAD__6sl_Y0">