mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-27 23:51:56 +00:00
[PowerPC] Emit warn_deprecated_lax_vec_conv_all warning only for PPC
This patch is to isolate the lax vector conversions warning only for PPC, the reason is that SystemZ wants different logic in terms of vector bool compatibility. Reviewed By: lei Differential Revision: https://reviews.llvm.org/D145506
This commit is contained in:
parent
382eb7c2c7
commit
155abd0678
@ -9856,7 +9856,8 @@ Sema::CheckAssignmentConstraints(QualType LHSType, ExprResult &RHS,
|
||||
// The default for lax vector conversions with Altivec vectors will
|
||||
// change, so if we are converting between vector types where
|
||||
// at least one is an Altivec vector, emit a warning.
|
||||
if (anyAltivecTypes(RHSType, LHSType) &&
|
||||
if (Context.getTargetInfo().getTriple().isPPC() &&
|
||||
anyAltivecTypes(RHSType, LHSType) &&
|
||||
!Context.areCompatibleVectorTypes(RHSType, LHSType))
|
||||
Diag(RHS.get()->getExprLoc(), diag::warn_deprecated_lax_vec_conv_all)
|
||||
<< RHSType << LHSType;
|
||||
@ -9873,9 +9874,10 @@ Sema::CheckAssignmentConstraints(QualType LHSType, ExprResult &RHS,
|
||||
const VectorType *VecType = RHSType->getAs<VectorType>();
|
||||
if (VecType && VecType->getNumElements() == 1 &&
|
||||
isLaxVectorConversion(RHSType, LHSType)) {
|
||||
if (VecType->getVectorKind() == VectorType::AltiVecVector ||
|
||||
VecType->getVectorKind() == VectorType::AltiVecBool ||
|
||||
VecType->getVectorKind() == VectorType::AltiVecPixel)
|
||||
if (Context.getTargetInfo().getTriple().isPPC() &&
|
||||
(VecType->getVectorKind() == VectorType::AltiVecVector ||
|
||||
VecType->getVectorKind() == VectorType::AltiVecBool ||
|
||||
VecType->getVectorKind() == VectorType::AltiVecPixel))
|
||||
Diag(RHS.get()->getExprLoc(), diag::warn_deprecated_lax_vec_conv_all)
|
||||
<< RHSType << LHSType;
|
||||
ExprResult *VecExpr = &RHS;
|
||||
@ -10836,7 +10838,8 @@ QualType Sema::CheckVectorOperands(ExprResult &LHS, ExprResult &RHS,
|
||||
QualType OtherType = LHSVecType ? RHSType : LHSType;
|
||||
ExprResult *OtherExpr = LHSVecType ? &RHS : &LHS;
|
||||
if (isLaxVectorConversion(OtherType, VecType)) {
|
||||
if (anyAltivecTypes(RHSType, LHSType) &&
|
||||
if (Context.getTargetInfo().getTriple().isPPC() &&
|
||||
anyAltivecTypes(RHSType, LHSType) &&
|
||||
!Context.areCompatibleVectorTypes(RHSType, LHSType))
|
||||
Diag(Loc, diag::warn_deprecated_lax_vec_conv_all) << RHSType << LHSType;
|
||||
// If we're allowing lax vector conversions, only the total (data) size
|
||||
|
@ -1775,7 +1775,8 @@ static bool IsVectorConversion(Sema &S, QualType FromType, QualType ToType,
|
||||
if (S.Context.areCompatibleVectorTypes(FromType, ToType) ||
|
||||
(S.isLaxVectorConversion(FromType, ToType) &&
|
||||
!ToType->hasAttr(attr::ArmMveStrictPolymorphism))) {
|
||||
if (S.isLaxVectorConversion(FromType, ToType) &&
|
||||
if (S.getASTContext().getTargetInfo().getTriple().isPPC() &&
|
||||
S.isLaxVectorConversion(FromType, ToType) &&
|
||||
S.anyAltivecTypes(FromType, ToType) &&
|
||||
!S.Context.areCompatibleVectorTypes(FromType, ToType) &&
|
||||
!InOverloadResolution && !CStyle) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: %clang_cc1 -triple s390x-linux-gnu -target-cpu z13 -fzvector \
|
||||
// RUN: -emit-llvm -o - -W -Wall -Werror -Wno-error=deprecate-lax-vec-conv-all \
|
||||
// RUN: -emit-llvm -o - -W -Wall -Werror \
|
||||
// RUN: %s | opt -S -passes=mem2reg | FileCheck %s
|
||||
|
||||
volatile vector signed char sc, sc2;
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: %clang_cc1 -triple s390x-linux-gnu -target-cpu z14 -fzvector \
|
||||
// RUN: -O -emit-llvm -o - -W -Wall -Werror -Wno-error=deprecate-lax-vec-conv-all %s | FileCheck %s
|
||||
// RUN: -O -emit-llvm -o - -W -Wall -Werror %s | FileCheck %s
|
||||
|
||||
volatile vector float ff, ff2;
|
||||
volatile vector bool int bi;
|
||||
|
Loading…
Reference in New Issue
Block a user