]> granicus.if.org Git - clang/commit
[PowerPC][Altivec] Fix constant argument for vec_dss
authorJinsong Ji <jji@us.ibm.com>
Wed, 4 Sep 2019 14:01:47 +0000 (14:01 +0000)
committerJinsong Ji <jji@us.ibm.com>
Wed, 4 Sep 2019 14:01:47 +0000 (14:01 +0000)
commit5b56244be35fb5c7666bf4c06dfb5ba4a7dd7028
treea2ccf9d51fc7e7d0005a070ff2bc045f0690a556
parente59f3f34afdd71a752b54cf5298f3a1ddba1f5a8
[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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@370902 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/BuiltinsPPC.def
lib/Headers/altivec.h
lib/Sema/SemaChecking.cpp
test/CodeGen/altivec-dss.c [new file with mode: 0644]
test/CodeGen/builtins-ppc-error.c