[PATCH] D101605: [PowerPC] Remove extra swap for extract+vperm on LE

Maryam Moghadas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 25 07:33:20 PDT 2022


maryammo added a comment.
Herald added a project: All.

This patch is functionally incorrect

one.c:

  #include <stdio.h>
  extern double test10(vector int a, vector int b);
  int main() {
    double res;
                   //   0           1           2           3
    vector int a = {0x404c38d4, 0x40460e14, 0x404c38d4, 0x7ae147ae};
                   //   4           5           6           7
    vector int b = {0x4027fae1, 0xfdf3b646, 0x47ae147b, 0x40563851};
    res = test10(a, b);
    printf("res: %f\n", res);
    return 0;
  }

two.c:

  double test10(vector int a, vector int b) {
    //vector int c = __builtin_shufflevector(a, b, 5, 2, 3, 7);
    //                5     2     3     7
    vector int c = { b[1], a[2], a[3], b[3] };
    return ((vector double)c)[0] + 11.0;
  }

Expected result:
res: 67.444000

Actual result:
res: -45563434706068069391700044011884519815891525610042006390324289980530809059647691943421443695410413568.000000

So we have decided to revert it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D101605/new/

https://reviews.llvm.org/D101605



More information about the llvm-commits mailing list