-
Notifications
You must be signed in to change notification settings - Fork 256
Open
Open
Enhancement
Copy link
Labels
Component: CoreIssue needs changes to the coreIssue needs changes to the coreCore: HLILIssue involves High Level ILIssue involves High Level ILEffort: LowIssues require < 1 week of workIssues require < 1 week of workIL OptimizationIssue involving optimization of representation (not correctness)Issue involving optimization of representation (not correctness)Impact: LowIssue is a papercut or has a good, supported workaroundIssue is a papercut or has a good, supported workaround
Description
Optimized modulus that combines the steps of an optimized divide with a multiplication using shifts, adds,
and masking of lower bits can fail to simplify into a modulus expression. An example is given below:

Binaries with examples:
u32_mod_4k_x86.so: See 3, 5, 17, 36, and others
u64_mod_4k_arm64.so: See 3, 5, 9, 11, 17, and others
u64_mod_4k_x64.dylib: See 6, 10, 12, 18, 20, and others
u64_mod_4k_x64.so: See 3, 5, 9, 17, 22, and others
0xdevalias
Metadata
Metadata
Assignees
Labels
Component: CoreIssue needs changes to the coreIssue needs changes to the coreCore: HLILIssue involves High Level ILIssue involves High Level ILEffort: LowIssues require < 1 week of workIssues require < 1 week of workIL OptimizationIssue involving optimization of representation (not correctness)Issue involving optimization of representation (not correctness)Impact: LowIssue is a papercut or has a good, supported workaroundIssue is a papercut or has a good, supported workaround