-
- Херова гора операций получается из-за того, что компилятор
почему-то не догадывается сообразить, что u16*u16=u32 и не хочет
оптимизировать u8*u16 или u8*u32, вместо этого приводит все к u32 и
вызывает библиотечную функцию. - AlexBi(16.04.2024 15:30)
- На сайте кейла приводился пример на асме как подсунуть ему оптимизированную под себя функцию умножения. Например uint16*uint16=uint32 без преобразования операндов в uint32 POV(600 знак., 16.04.2024 16:25)
- Может код в студию? Я по своим давним воспоминаниям сужу - тоже у
меня было беспокойство насчет неадекватных вызовов функций
умножения/деления "не той разрядности". Но в большинстве (не во
всех) случаях оказывалось что компилятор поступал правильно, не
оптимизируя мои выражения в соответствии с моими представлениями. - il-2(16.04.2024 15:38)
- Немного ниже мой пример. Там u16*u8. Кстати, что бы получить u32 после u16*u16 надо превратить u16 в u32 и выполнять умножение u32*u32. AlexBi(1 знак., 16.04.2024 16:17, ссылка)
- Херова гора операций получается из-за того, что компилятор
почему-то не догадывается сообразить, что u16*u16=u32 и не хочет
оптимизировать u8*u16 или u8*u32, вместо этого приводит все к u32 и
вызывает библиотечную функцию. - AlexBi(16.04.2024 15:30)