diff options
author | 2019-11-06 16:15:31 +0000 | |
---|---|---|
committer | 2019-11-20 09:18:26 +0000 | |
commit | 142816a6ac2a9261d37cffb7a7367a96f712fde2 (patch) | |
tree | de5be36fdf80681d3ce517b095e9f2058918a498 | |
parent | 986914bfd60c1cace9726e9029598d72cbf279e1 (diff) |
ARM64: Pass simd half floating point feature to VIXL macroassembler.
VIXL requires NEONHalf CPUFeature to emit half floating points
NEON instructions.
Test: codegen_test
Change-Id: I797d7a27087103491871e86d283f9860d3f20624
-rw-r--r-- | compiler/optimizing/codegen_test.cc | 2 | ||||
-rw-r--r-- | compiler/utils/arm64/assembler_arm64.cc | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/compiler/optimizing/codegen_test.cc b/compiler/optimizing/codegen_test.cc index 26d07bd592..e562a8e34a 100644 --- a/compiler/optimizing/codegen_test.cc +++ b/compiler/optimizing/codegen_test.cc @@ -834,6 +834,7 @@ TEST_F(CodegenTest, ARM64IsaVIXLFeaturesA75) { EXPECT_TRUE(features->Has(vixl::CPUFeatures::kCRC32)); EXPECT_TRUE(features->Has(vixl::CPUFeatures::kDotProduct)); EXPECT_TRUE(features->Has(vixl::CPUFeatures::kFPHalf)); + EXPECT_TRUE(features->Has(vixl::CPUFeatures::kNEONHalf)); EXPECT_TRUE(features->Has(vixl::CPUFeatures::kAtomics)); } @@ -847,6 +848,7 @@ TEST_F(CodegenTest, ARM64IsaVIXLFeaturesA53) { EXPECT_TRUE(features->Has(vixl::CPUFeatures::kCRC32)); EXPECT_FALSE(features->Has(vixl::CPUFeatures::kDotProduct)); EXPECT_FALSE(features->Has(vixl::CPUFeatures::kFPHalf)); + EXPECT_FALSE(features->Has(vixl::CPUFeatures::kNEONHalf)); EXPECT_FALSE(features->Has(vixl::CPUFeatures::kAtomics)); } diff --git a/compiler/utils/arm64/assembler_arm64.cc b/compiler/utils/arm64/assembler_arm64.cc index 0523797322..d722e00646 100644 --- a/compiler/utils/arm64/assembler_arm64.cc +++ b/compiler/utils/arm64/assembler_arm64.cc @@ -49,6 +49,7 @@ static void SetVIXLCPUFeaturesFromART(vixl::aarch64::MacroAssembler* vixl_masm_, } if (art_features->HasFP16()) { features->Combine(vixl::CPUFeatures::kFPHalf); + features->Combine(vixl::CPUFeatures::kNEONHalf); } if (art_features->HasLSE()) { features->Combine(vixl::CPUFeatures::kAtomics); |