BEGIN:VCALENDAR
VERSION:2.0
PRODID:Linklings LLC
BEGIN:VTIMEZONE
TZID:America/Chicago
X-LIC-LOCATION:America/Chicago
BEGIN:DAYLIGHT
TZOFFSETFROM:-0600
TZOFFSETTO:-0500
TZNAME:CDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0500
TZOFFSETTO:-0600
TZNAME:CST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20260522T150118Z
LOCATION:D175
DTSTART;TZID=America/Chicago:20181112T140000
DTEND;TZID=America/Chicago:20181112T143000
UID:submissions.supercomputing.org_SC18_sess176_ws_llvmf105@linklings.com
SUMMARY:Function/Kernel Vectorization via Loop Vectorizer
DESCRIPTION:Matt Masten, Evgeniy Tyurin, Konstantina Mitropoulou, Hideki S
 aito, and Eric Garcia (Intel Corporation)\n\nCurrently, there are three ve
 ctorizers in the LLVM trunk: Loop Vectorizer, SLP Vectorizer, and Load-Sto
 re Vectorizer. There is a need for vectorizing functions/kernels: 1) Funct
 ion calls are an integral part of programming real world application code 
 and we cannot always rely on fully inlining them. When a function call is 
 made from a vectorized context such as vectorized loop or vectorized funct
 ion, if there are no vectorized callees available, the call has to be made
  to a scalar callee, one vector element at a time. At the programming mode
 l level, OpenMP declare simd is a standardized syntax to address this prob
 lem. LLVM needs a vectorizer to properly vectorize OpenMP declare simd fun
 ctions. 2) Also, in the GPGPU programming model, such as OpenCL, work-item
  (thread) parallelism is not expressed with a loop; it is implicit in the 
 execution of the kernels. In order to exploit SIMD parallelism at this top
 -level (thread-level), we need to start from vectorizing the kernel.\n\nOn
 e of the obvious ways to vectorize functions/kernels is to add a fourth ve
 ctorizer that specifically deals with function vectorization. In this pape
 r, we argue that such a naive approach will lead us to sub-optimal perform
 ance and/or higher maintenance burden. Instead, we present a technique to 
 take advantages of the current functionalities and future improvements of 
 Loop Vectorizer in order to vectorize functions and kernels.\n\nTag: Progr
 am Transformation, Programming Systems\n\nRegistration Category: Workshop 
 Reg Pass\n\n
END:VEVENT
END:VCALENDAR
