Skip to content
  • Cameron Zwarich's avatar
    Add support to scalar replacement for partial vector accesses of an alloca, e.g. · 3b649f4d
    Cameron Zwarich authored
    a union of a float, <2 x float>, and <4 x float>. This mostly comes up with the
    use of vector intrinsics, especially in NEON when programmers know the layout of
    the register file. This enables codegen to eliminate a lot of the subregister
    traffic it would otherwise generate.
    
    This commit only enables this for a small number of floating-point cases, but a
    lot more integer cases. I assume this is okay for all ports, but I did not do
    extensive testing of the quality of code involving i512 vectors and the like. If
    there is a use case where this generates worse code than before, let me know and
    we can scale it back.
    
    This fixes <rdar://problem/9036264>.
    
    llvm-svn: 127317
    3b649f4d
Loading