Issue 132601
Summary Add explicit support for u512's
Labels new issue
Assignees
Reporter Validark
    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)
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to