[llvm-bugs] [Bug 30730] New: use lvx instead of lxvd2x and xxswapd when address is assumed to be aligned

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Oct 18 16:04:14 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=30730

            Bug ID: 30730
           Summary: use lvx instead of lxvd2x and xxswapd when address is
                    assumed to be aligned
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: PowerPC
          Assignee: unassignedbugs at nondot.org
          Reporter: echristo at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Power9 has a little endian load here that it can use for unaligned addresses,
but for power8 this is still important.

---

#include <altivec.h>

struct S {
  vector int v;
  vector int f() const;
};

vector int S::f() const {
  return v;
}
---

AltiVec code:

        .text
        .abiversion 2
        .file   "aligned_load.cc"
        .globl  _ZNK1S1fEv
        .p2align        4
        .type   _ZNK1S1fEv, at function
_ZNK1S1fEv:                             # @_ZNK1S1fEv
.Lfunc_begin0:
# BB#0:
        lvx 2, 0, 3
        blr
        .long   0
        .quad   0
.Lfunc_end0:
        .size   _ZNK1S1fEv, .Lfunc_end0-.Lfunc_begin0

---
VSX code


        .text
        .abiversion 2
        .file   "aligned_load.cc"
        .globl  _ZNK1S1fEv
        .p2align        4
        .type   _ZNK1S1fEv, at function
_ZNK1S1fEv:                             # @_ZNK1S1fEv
.Lfunc_begin0:
# BB#0:
        lxvd2x 0, 0, 3
        xxswapd  34, 0
                                        # kill: %V2<def> %V2<kill> %VSH2<kill>
        blr
        .long   0
        .quad   0
.Lfunc_end0:
        .size   _ZNK1S1fEv, .Lfunc_end0-.Lfunc_begin0

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20161018/99da4d6d/attachment.html>


More information about the llvm-bugs mailing list