diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2025-01-18 19:33:16 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2025-01-19 22:10:39 -0500 |
| commit | 5cfcb015033864c769235726975ab9919c217ef9 (patch) | |
| tree | 10f027ac4086056f6f422cdd4f7e52e0d2d64af3 /lib/std/Build/Step/Run.zig | |
| parent | b074fb7ddaefaa6ed9c5235d22b2f7378e3b80e8 (diff) | |
| download | zig-5cfcb015033864c769235726975ab9919c217ef9.tar.gz zig-5cfcb015033864c769235726975ab9919c217ef9.zip | |
llvm: convert `@divFloor` and `@mod` to forms llvm will recognize
On x86_64, the `@divFloor` change is a strict improvement, and the
`@mod` change adds one zero latency instruction. In return, once we
upgrade to LLVM 20, when the optimizer discovers one of these operations
has a power-of-two constant rhs, it will be able to optimize the entire
operation into an `ashr` or `and`, respectively.
#I CPL CPT
old `@divFloor` | 8 | 15 | .143 |
new `@divFloor` | 7 | 15 | .148 |
old `@mod` | 9 | 17 | .134 | (rip llvm
new `@mod` | 10 | 17 | .138 | scheduler)
Diffstat (limited to 'lib/std/Build/Step/Run.zig')
0 files changed, 0 insertions, 0 deletions
