Skip to content

Commit a6354f2

Browse files
[AArch64] Implement FP8 Neon reinterpret intrinsics
1 parent 7e2cd37 commit a6354f2

File tree

4 files changed

+859
-3
lines changed

4 files changed

+859
-3
lines changed

clang/include/clang/Basic/arm_neon.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1304,7 +1304,7 @@ def VQTBX4_A64 : WInst<"vqtbx4", "..(4Q)U", "UccPcQUcQcQPc">;
13041304
// NeonEmitter implicitly takes the cartesian product of the type string with
13051305
// itself during generation so, unlike all other intrinsics, this one should
13061306
// include *all* types, not just additional ones.
1307-
def VVREINTERPRET : REINTERPRET_CROSS_SELF<"csilUcUsUiUlhfdPcPsPlQcQsQiQlQUcQUsQUiQUlQhQfQdQPcQPsQPlQPk"> {
1307+
def VVREINTERPRET : REINTERPRET_CROSS_SELF<"csilUcUsUiUlmhfdPcPsPlQcQsQiQlQUcQUsQUiQUlQmQhQfQdQPcQPsQPlQPk"> {
13081308
let ArchGuard = "defined(__aarch64__) || defined(__arm64ec__)";
13091309
let BigEndianSafe = 1;
13101310
}

clang/lib/AST/Type.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2787,7 +2787,8 @@ static bool isTriviallyCopyableTypeImpl(const QualType &type,
27872787
return false;
27882788

27892789
// As an extension, Clang treats vector types as Scalar types.
2790-
if (CanonicalType->isScalarType() || CanonicalType->isVectorType())
2790+
if (CanonicalType->isScalarType() || CanonicalType->isVectorType() ||
2791+
CanonicalType->isNeonVectorBuiltinType())
27912792
return true;
27922793

27932794
if (const auto *RT = CanonicalType->getAs<RecordType>()) {

0 commit comments

Comments
 (0)