{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:19:14Z","timestamp":1750306754818,"version":"3.41.0"},"reference-count":29,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2013,9,16]],"date-time":"2013-09-16T00:00:00Z","timestamp":1379289600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2013,9,16]]},"abstract":"<jats:p>SIMD vector units implement only a subset of the operations used by vectorizing compilers, and there are multiple conflicting techniques to legalize arbitrary vector types into register-sized data types. Traditionally, type legalization is performed using a set of predefined rules, regardless of the operations used in the program. This method is not suitable to sparse SIMD instruction sets and often prevents the vectorization of programs. In this work we introduce a new technique for type legalization, namely vector element promotion, as well as a hybrid method for combining multiple techniques of type legalization. Our hybrid type legalization method makes decisions based on the knowledge of the available instruction set as well as the operations used in the program. Our experimental results demonstrate that program-dependent hybrid type legalization improves the execution time of vector programs, outperforms the existing legalization method, and allows the vectorization of workloads which were not vectorized before.<\/jats:p>","DOI":"10.1145\/2509420.2509422","type":"journal-article","created":{"date-parts":[[2013,9,17]],"date-time":"2013-09-17T19:57:05Z","timestamp":1379447825000},"page":"1-14","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Hybrid type legalization for a sparse SIMD instruction set"],"prefix":"10.1145","volume":"10","author":[{"given":"Yosi Ben","family":"Asher","sequence":"first","affiliation":[{"name":"Haifa University, Haifa, Israel"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Nadav","family":"Rotem","sequence":"additional","affiliation":[{"name":"Haifa University, Haifa, Israel"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2013,9,16]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2006.37"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2010.38"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1014230429447"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1134760.1134769"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2007.32"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1007\/11688839_12"},{"key":"e_1_2_1_7_1","unstructured":"Duncan Sands Dragonegg. 2011. A GCC plugin for the LLVM backend. http:\/\/dragonegg.llvm.org\/.  Duncan Sands Dragonegg. 2011. A GCC plugin for the LLVM backend. http:\/\/dragonegg.llvm.org\/."},{"key":"e_1_2_1_8_1","unstructured":"Courtois E. and Bodin F. 2008. MILEPOST gcc: Machine learning based research compiler. http:\/\/gcc-ici.sourceforge.net\/papers\/fmtp2008.pdf.  Courtois E. and Bodin F. 2008. MILEPOST gcc: Machine learning based research compiler. http:\/\/gcc-ici.sourceforge.net\/papers\/fmtp2008.pdf."},{"volume-title":"Proceedings of the 1st International Workshop on Polyhedral Compilation Techniques (IMPACT'11)","author":"Grosser T.","key":"e_1_2_1_9_1"},{"key":"e_1_2_1_10_1","unstructured":"Intel Corp. 2011a. Intel openCL SDK. http:\/\/software.intel.com\/en-us\/articles\/opencl-sdk\/.  Intel Corp. 2011a. Intel openCL SDK. http:\/\/software.intel.com\/en-us\/articles\/opencl-sdk\/."},{"key":"e_1_2_1_11_1","unstructured":"Intel Corp. 2011b. Advanced vector extensions (AVX) programming reference. http:\/\/software.intel.com\/en-us\/avx\/.  Intel Corp. 2011b. Advanced vector extensions (AVX) programming reference. http:\/\/software.intel.com\/en-us\/avx\/."},{"volume-title":"Proceedings of the 9th Annual IEEE\/ACM International Symposium on Code Generation and Optimization. 141--150","author":"Karrenberg R.","key":"e_1_2_1_12_1"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/543552.512552"},{"key":"e_1_2_1_14_1","unstructured":"Kleinberg J. and Tardos E. 2005. Image segmentation. In Algorithm Design. Addison-Wesley Longman Boston MA 392--395.   Kleinberg J. and Tardos E. 2005. Image segmentation. In Algorithm Design. Addison-Wesley Longman Boston MA 392--395."},{"volume-title":"Handbook of Open Source Tools","author":"Koranne S.","key":"e_1_2_1_15_1","doi-asserted-by":"crossref","DOI":"10.1007\/978-1-4419-7719-9"},{"volume-title":"Proceedings of the 14th International Conference on VLSI Design (VLSID'01)","author":"Jain M. K.","key":"e_1_2_1_16_1"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/349299.349320"},{"volume-title":"Proceedings of the International Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization (CGO'04)","author":"Lattner C.","key":"e_1_2_1_18_1"},{"volume-title":"Proceedings of the 10th International Conference on Artificial Intelligence: Methodology, Systems, and Applications (AIMSA'02)","author":"Monsifrot A.","key":"e_1_2_1_19_1"},{"volume-title":"Proceedings of the 9th Annual IEEE\/ACM International Symposium on Code Generation and Optimization (CGO'11)","author":"Nuzman D.","key":"e_1_2_1_20_1"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1454115.1454119"},{"volume-title":"Proceedings of the Conference on Innovative Parallel Computing (InPar'12)","author":"Pharr M.","key":"e_1_2_1_22_1"},{"volume-title":"Proceedings of the 13th International Conference on Compiler Construction.","author":"Redwine K.","key":"e_1_2_1_23_1"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669170"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/359327.359336"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/781131.781141"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1084834.1084909"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1535\/itj.1104.01"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2009.18"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2509420.2509422","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2509420.2509422","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T07:28:35Z","timestamp":1750231715000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2509420.2509422"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013,9,16]]},"references-count":29,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2013,9,16]]}},"alternative-id":["10.1145\/2509420.2509422"],"URL":"https:\/\/doi.org\/10.1145\/2509420.2509422","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2013,9,16]]},"assertion":[{"value":"2012-11-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-04-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-09-16","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}