diff options
author | Jinsong Ji <jji@us.ibm.com> | 2019-09-04 14:01:47 +0000 |
---|---|---|
committer | Jinsong Ji <jji@us.ibm.com> | 2019-09-04 14:01:47 +0000 |
commit | 5309189d9b3e03f68fdd04b4372fc73ddc07f98e (patch) | |
tree | 561f8a503c9aaa0c088a6af1493fdfd249f8a7c6 /clang/lib/Headers | |
parent | 791949afe56027404a4c0bc605f7e72cc272b41a (diff) | |
download | bcm5719-llvm-5309189d9b3e03f68fdd04b4372fc73ddc07f98e.tar.gz bcm5719-llvm-5309189d9b3e03f68fdd04b4372fc73ddc07f98e.zip |
[PowerPC][Altivec] Fix constant argument for vec_dss
Summary:
This is similar to vec_ct* in https://reviews.llvm.org/rL304205.
The argument must be a constant, otherwise instruction selection
will fail. always_inline is not enough for isel to always fold
everything away at -O0.
The fix is to turn the function into macros in altivec.h.
Fixes https://bugs.llvm.org/show_bug.cgi?id=43072
Reviewers: nemanjai, hfinkel, #powerpc, wuzish
Reviewed By: #powerpc, wuzish
Subscribers: wuzish, kbarton, MaskRay, shchenz, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D66699
llvm-svn: 370902
Diffstat (limited to 'clang/lib/Headers')
-rw-r--r-- | clang/lib/Headers/altivec.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/clang/lib/Headers/altivec.h b/clang/lib/Headers/altivec.h index 4008440b2bc..a7f480e45d8 100644 --- a/clang/lib/Headers/altivec.h +++ b/clang/lib/Headers/altivec.h @@ -3286,9 +3286,7 @@ static __inline__ vector double __ATTRS_o_ai vec_div(vector double __a, /* vec_dss */ -static __inline__ void __attribute__((__always_inline__)) vec_dss(int __a) { - __builtin_altivec_dss(__a); -} +#define vec_dss __builtin_altivec_dss /* vec_dssall */ |