Changes between Version 1 and Version 2 of SSERemoval


Ignore:
Timestamp:
Mar 19, 2014, 1:54:17 AM (5 years ago)
Author:
cameron
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SSERemoval

    v1 v2  
    11= Eliminating the SSE2 operations from llvm-re.ll =
     2
     3In this exercise, we explore the possibility of replacing SSE2 operations
     4with equivalent LLVM IR operations in order to make a program more
     5portable (able to be mapped to different architectures).
     6
     7One approach is to replace each call to an sse2 operation by
     8a call to a routine written to emulate it entirely using
     9LLVM operations.   However, it may be that this approach
     10creates extra complexity and slows down performance.
     11The reason is that a general emulation may be much more
     12complex than is necessary in the context of the use of a
     13specific operation.
     14
     15Most of the operations in the llvm-re.ll file actually
     16fall into the category that the sse2 operations can be
     17replaced by a single LLVM operation, plus some rearrangement
     18and bitcasting.
    219
    320== Eliminating Shifts ==
     
    1633becomes
    1734{{{
    18    %2147 = lshr <2 x i64> %2146, <i64 32, i64 32>
     35   %2129 = lshr <2 x i64> %2128, <i64 32, i64 32>
    1936}}}
    2037
     
    6481}}}
    6582
     83== General Question ==
     84
     85Can we build software tools that automatically identify such conversions
     86to replace sse2 operations by LLVM IR such that performance is not degraded?
     87
     88Can there be cases in which performance may actually be improved?
     89