Automation of program code vectorization for the use of SIMD instructions

Authors

  • M.O. Bohdiuk https://orcid.org/0009-0000-4743-4023 , National University of Life and Environmental Sciences of Ukraine image/svg+xml
  • O.Ye. Kovalenko https://orcid.org/0000-0002-9639-3544 , National University of Life and Environmental Sciences of Ukraine image/svg+xml

DOI:

https://doi.org/10.34121/1028-9763-2026-1-21-28

Keywords:

parallel computing, SIMD, code optimization, code vectorization, vectorization automation

Abstract

A significant slowdown in processor performance growth is associated with approaching the physical limits of reducing transistor size. This has led to the situation where traditional ways of increasing performance (increasing the clock frequency or the number of cores) no longer fully deliver performance gains. In modern processors, SIMD (Single Instruction, Multiple Data) instruction-set architectures play an important role in increasing computing performance. They allow a processor to perform one operation on multiple data streams simultaneously on a single core. In such a situation, parallel processing at the data level, implemented using SIMD instructions, becomes key. Directing the compilation process with special directives, options, and proper data organization makes it possible to obtain an optimized, vectorized code without explicitly using SIMD instructions in the program source code. However, the effectiveness of such mechanisms largely depends on a number of factors: the processor architectural features, the compiler version, the source code quality, and the optimizer state. The article analyzes some existing methods and tools for vectorizing code using SIMD instructions and proposes an approach to automating vectorization by inserting labels into source code, detecting section boundaries in compiled code, analyzing instructions within sections, and generating a report with a link to the source code. A comparative analysis of existing vectorization tools and the developed prototype is conducted. The proposed approach allows for automating the verification of code vectorization with line-level accuracy and works even with aggressive optimization, including function embedding.

References

1. Intel, Intel Advanced Vector Extensions 10 Architecture Specification, rev 1.0, order no. 355989-001US, July 2023. URL: https://cdrdv2-public.intel.com/784267/355989-intel-avx10-spec.pdf.

2. Introduction to ARM NEON SIMD Intrinisics. URL: https://masterchef2209.wordpress.com/2020/08/12/introduction-to-arm-neon-simd-intrinisics-guide-for-simde-neon-impls/. 28 ISSN 1028-9763. Математичні машини і системи. 2026. № 1

3. Coyle D., Hampton L. 21st century progress in computing. Telecommunications Policy. 2024. N 48 (1). P.102649. URL: https://doi.org/10.1016/j.telpol.2023.102649.

4. Burg D., Ausubel J.H. Moore’s Law revisited through Intel chip density. PLoS ONE. 2021. N 16 (8). e0256245. DOI: https://doi.org/10.1371/journal.pone.0256245.

5. Siso S., Armour W., Thiyagalingam J. Evaluating auto-vectorizing compilers through objective withdrawal of useful information. ACM Transactions on Architecture and Code Optimization (TACO). 2019. Vol. 16, N 4. P. 1–23. DOI: https://doi.org/10.1145/3356842.

6. Liu B., Laird A., Tsang W.H., Mahjour B., Dehnavi M.M. Combining Run-Time Checks and CompileTime Analysis to Improve Control Flow Auto-Vectorization. Proc. of the International Conference on Parallel Architectures and Compilation Techniques (PACT '22). Association for Computing Machinery. New York, NY, USA, 2023. P. 439–450. DOI: https://doi.org/10.1145/3559009.3569663.

7. Taneja J., Laird A., Yan C., Musuvathi M., Lahiri S.K. Llm-vectorizer: Llm-based verified loop vectorizer. Proc. of the 23rd ACM/IEEE International Symposium on Code Generation and Optimization. 2025. March. P. 137–149. DOI: https://doi.org/10.48550/arXiv.2406.04693.

8. Zheng Z., Wu K., Cheng L., Li L., Rocha R.C., Liu T., Wei W., Zeng J., Zhang X., Gao Y. VecTrans: Enhancing Compiler Auto-Vectorization through LLM-Assisted Code Transformations. 2025. arXiv preprint. DOI: https://doi.org/10.48550/arXiv.2503.19449.

9. Богдюк М.О., Коваленко О.Є. Перевірка векторизації інструкцій. Теоретичні та прикладні аспекти розробки комп’ютерних систем 2025 (TAACSD-2025): VII Всеукр. наук.-практ. інтернет конф. студентів і аспірантів. Київ: Національний університет біоресурсів і природокористування України, 2025. URL: https://drive.google.com/file/d/179dsQND4mvTZLH4_MR-0gpSwwKJ35u6Y/view?usp=sharing.

10. Rust. A language empowering everyone to build reliable and efficient software. URL: https://rustlang.org/.

11. Crate goblin. URL: https://docs.rs/goblin/latest/goblin/.

12. Crate iced_x86. URL: https://docs.rs/iced-x86/latest/iced_x86/.

Downloads

Views: 141
Downloads: 40

Published

2026-03-13

Issue

Section

INFORMATION AND TELECOMMUNICATION TECHNOLOGY

How to Cite

Automation of program code vectorization for the use of SIMD instructions. (2026). Mathematical Machines and Systems, 1, 21-28. https://doi.org/10.34121/1028-9763-2026-1-21-28