Skip to content

Commit 257075d

Browse files
committed
use getPrimType() instead & formatting
1 parent 491504e commit 257075d

File tree

2 files changed

+13
-20
lines changed

2 files changed

+13
-20
lines changed

clang/lib/AST/ByteCode/InterpBuiltin.cpp

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2924,39 +2924,33 @@ static bool interp__builtin_x86_insert_subvector(InterpState &S, CodePtr OpPC,
29242924
uint64_t Index = ImmAPS.getZExtValue();
29252925

29262926
const Pointer &SubVec = S.Stk.pop<Pointer>();
2927-
if (!SubVec.getFieldDesc()->isPrimitiveArray()) {
2928-
return Invalid(S, OpPC);
2929-
}
2927+
if (!SubVec.getFieldDesc()->isPrimitiveArray())
2928+
return false;
29302929

29312930
const Pointer &DstVec = S.Stk.pop<Pointer>();
2932-
if (!DstVec.getFieldDesc()->isPrimitiveArray()) {
2933-
return Invalid(S, OpPC);
2934-
}
2931+
if (!DstVec.getFieldDesc()->isPrimitiveArray())
2932+
return false;
29352933

29362934
const Pointer &Result = S.Stk.peek<Pointer>();
29372935

29382936
unsigned DstElements = DstVec.getNumElems();
29392937
unsigned SubElements = SubVec.getNumElems();
29402938

29412939
if (SubElements == 0 || DstElements == 0 || (DstElements % SubElements) != 0)
2942-
return Invalid(S, OpPC);
2940+
return false;
29432941

29442942
unsigned NumLanes = DstElements / SubElements;
29452943
unsigned Lane = static_cast<unsigned>(Index % NumLanes);
2946-
2947-
QualType ElemType = DstVec.getFieldDesc()->getElemQualType();
2948-
PrimType ElemPT = *S.getContext().classify(ElemType);
2949-
29502944
unsigned InsertPos = Lane * SubElements;
29512945

2946+
PrimType ElemPT = DstVec.getFieldDesc()->getPrimType();
2947+
29522948
TYPE_SWITCH(ElemPT, {
2953-
for (unsigned i = 0; i < DstElements; ++i) {
2954-
Result.elem<T>(i) = DstVec.elem<T>(i);
2955-
}
2949+
for (unsigned I = 0; I != DstElements; ++I)
2950+
Result.elem<T>(I) = DstVec.elem<T>(I);
29562951

2957-
for (unsigned i = 0; i < SubElements; ++i) {
2958-
Result.elem<T>(InsertPos + i) = SubVec.elem<T>(i);
2959-
}
2952+
for (unsigned I = 0; I != SubElements; ++I)
2953+
Result.elem<T>(InsertPos + I) = SubVec.elem<T>(I);
29602954
});
29612955

29622956
Result.initializeAllElements();

clang/lib/AST/ExprConstant.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12169,11 +12169,10 @@ bool VectorExprEvaluator::VisitCallExpr(const CallExpr *E) {
1216912169
ResultElements.reserve(DstLen);
1217012170

1217112171
for (unsigned EltNum = 0; EltNum < DstLen; ++EltNum) {
12172-
if (EltNum >= LaneIdx && EltNum < LaneIdx + SubLen) {
12172+
if (EltNum >= LaneIdx && EltNum < LaneIdx + SubLen)
1217312173
ResultElements.push_back(SourceSub.getVectorElt(EltNum - LaneIdx));
12174-
} else {
12174+
else
1217512175
ResultElements.push_back(SourceDst.getVectorElt(EltNum));
12176-
}
1217712176
}
1217812177

1217912178
return Success(APValue(ResultElements.data(), ResultElements.size()), E);

0 commit comments

Comments
 (0)