[llvm-branch-commits] [clang] fdb501e - Work around PR43337: don't try to use the vec_sel overloads for vector long long, since clang's <altivec.h> doesn't provide it yet!

Hans Wennborg via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Jan 17 00:52:00 PST 2020


Author: Richard Smith
Date: 2020-01-17T09:45:35+01:00
New Revision: fdb501e59f25e59b9dff7d51db468d590909cfef

URL: https://github.com/llvm/llvm-project/commit/fdb501e59f25e59b9dff7d51db468d590909cfef
DIFF: https://github.com/llvm/llvm-project/commit/fdb501e59f25e59b9dff7d51db468d590909cfef.diff

LOG: Work around PR43337: don't try to use the vec_sel overloads for vector long long, since clang's <altivec.h> doesn't provide it yet!

(cherry picked from commit 388eaa1270c2762d61b756759b6db8cf15bd3a83)

Added: 
    

Modified: 
    clang/lib/Headers/ppc_wrappers/emmintrin.h

Removed: 
    


################################################################################
diff  --git a/clang/lib/Headers/ppc_wrappers/emmintrin.h b/clang/lib/Headers/ppc_wrappers/emmintrin.h
index 293276cc9be0..4dcb8485e2e9 100644
--- a/clang/lib/Headers/ppc_wrappers/emmintrin.h
+++ b/clang/lib/Headers/ppc_wrappers/emmintrin.h
@@ -1749,7 +1749,7 @@ _mm_sll_epi64 (__m128i __A, __m128i __B)
   lshift = vec_splat ((__v2du) __B, 0);
   shmask = vec_cmplt (lshift, shmax);
   result = vec_sl ((__v2du) __A, lshift);
-  result = vec_sel ((__v2du) shmask, result, shmask);
+  result = (__v2du)vec_sel ((__v2df) shmask, (__v2df)result, shmask);
 
   return (__m128i) result;
 }
@@ -1843,7 +1843,7 @@ _mm_srl_epi64 (__m128i __A, __m128i __B)
   rshift = vec_splat ((__v2du) __B, 0);
   shmask = vec_cmplt (rshift, shmax);
   result = vec_sr ((__v2du) __A, rshift);
-  result = vec_sel ((__v2du) shmask, result, shmask);
+  result = (__v2du)vec_sel ((__v2df) shmask, (__v2df)result, shmask);
 
   return (__m128i) result;
 }


        


More information about the llvm-branch-commits mailing list