Lines Matching refs:ARM
40 template <ARM::ISAKind ISAKind>
44 if (ISAKind == ARM::ISAKind::AARCH64) { in FormatExtensionFlags()
51 if (Flags & ARM::AEK_NONE) in FormatExtensionFlags()
53 ARM::getExtensionFeatures(Flags, Features); in FormatExtensionFlags()
67 template <ARM::ISAKind ISAKind>
108 ARM::ArchKind AK = ARM::parseCPUArch(params.CPUName); in TEST_P()
109 EXPECT_EQ(params.ExpectedArch, ARM::getArchName(AK)); in TEST_P()
111 unsigned FPUKind = ARM::getDefaultFPU(params.CPUName, AK); in TEST_P()
112 EXPECT_EQ(params.ExpectedFPU, ARM::getFPUName(FPUKind)); in TEST_P()
114 uint64_t default_extensions = ARM::getDefaultExtensions(params.CPUName, AK); in TEST_P()
115 EXPECT_PRED_FORMAT2(AssertSameExtensionFlags<ARM::ISAKind::ARM>, in TEST_P()
118 EXPECT_EQ(params.CPUAttr, ARM::getCPUAttr(AK)); in TEST_P()
128 ARMCPUTestParams("invalid", "invalid", "invalid", ARM::AEK_NONE, ""),
129 ARMCPUTestParams("generic", "invalid", "none", ARM::AEK_NONE, ""),
131 ARMCPUTestParams("arm8", "armv4", "none", ARM::AEK_NONE, "4"),
132 ARMCPUTestParams("arm810", "armv4", "none", ARM::AEK_NONE, "4"),
133 ARMCPUTestParams("strongarm", "armv4", "none", ARM::AEK_NONE, "4"),
134 ARMCPUTestParams("strongarm110", "armv4", "none", ARM::AEK_NONE, "4"),
135 ARMCPUTestParams("strongarm1100", "armv4", "none", ARM::AEK_NONE, "4"),
136 ARMCPUTestParams("strongarm1110", "armv4", "none", ARM::AEK_NONE, "4"),
137 ARMCPUTestParams("arm7tdmi", "armv4t", "none", ARM::AEK_NONE, "4T"),
138 ARMCPUTestParams("arm7tdmi-s", "armv4t", "none", ARM::AEK_NONE, "4T"),
139 ARMCPUTestParams("arm710t", "armv4t", "none", ARM::AEK_NONE, "4T"),
140 ARMCPUTestParams("arm720t", "armv4t", "none", ARM::AEK_NONE, "4T"),
141 ARMCPUTestParams("arm9", "armv4t", "none", ARM::AEK_NONE, "4T"),
142 ARMCPUTestParams("arm9tdmi", "armv4t", "none", ARM::AEK_NONE, "4T"),
143 ARMCPUTestParams("arm920", "armv4t", "none", ARM::AEK_NONE, "4T"),
144 ARMCPUTestParams("arm920t", "armv4t", "none", ARM::AEK_NONE, "4T"),
145 ARMCPUTestParams("arm922t", "armv4t", "none", ARM::AEK_NONE, "4T"),
146 ARMCPUTestParams("arm940t", "armv4t", "none", ARM::AEK_NONE, "4T"),
147 ARMCPUTestParams("ep9312", "armv4t", "none", ARM::AEK_NONE, "4T"),
148 ARMCPUTestParams("arm10tdmi", "armv5t", "none", ARM::AEK_NONE, "5T"),
149 ARMCPUTestParams("arm1020t", "armv5t", "none", ARM::AEK_NONE, "5T"),
151 ARM::AEK_NONE | ARM::AEK_DSP, "5TE"),
153 ARM::AEK_NONE | ARM::AEK_DSP, "5TE"),
155 ARM::AEK_NONE | ARM::AEK_DSP, "5TE"),
157 ARM::AEK_NONE | ARM::AEK_DSP, "5TE"),
159 ARM::AEK_NONE | ARM::AEK_DSP, "5TE"),
161 ARM::AEK_NONE | ARM::AEK_DSP, "5TE"),
163 ARM::AEK_NONE | ARM::AEK_DSP, "5TE"),
165 ARM::AEK_NONE | ARM::AEK_DSP, "5TEJ"),
167 ARM::AEK_NONE | ARM::AEK_DSP, "6"),
169 ARM::AEK_NONE | ARM::AEK_DSP, "6"),
171 ARM::AEK_NONE | ARM::AEK_SEC | ARM::AEK_DSP, "6KZ"),
173 ARM::AEK_NONE | ARM::AEK_DSP, "6K"),
175 ARM::AEK_NONE | ARM::AEK_DSP, "6K"),
177 ARM::AEK_NONE | ARM::AEK_SEC | ARM::AEK_DSP, "6KZ"),
179 ARM::AEK_NONE | ARM::AEK_DSP, "6T2"),
181 ARM::AEK_NONE | ARM::AEK_DSP, "6T2"),
182 ARMCPUTestParams("cortex-m0", "armv6-m", "none", ARM::AEK_NONE, "6-M"),
183 ARMCPUTestParams("cortex-m0plus", "armv6-m", "none", ARM::AEK_NONE,
185 ARMCPUTestParams("cortex-m1", "armv6-m", "none", ARM::AEK_NONE, "6-M"),
186 ARMCPUTestParams("sc000", "armv6-m", "none", ARM::AEK_NONE, "6-M"),
188 ARM::AEK_MP | ARM::AEK_SEC | ARM::AEK_DSP, "7-A"),
190 ARM::AEK_HWDIVTHUMB | ARM::AEK_HWDIVARM | ARM::AEK_MP |
191 ARM::AEK_SEC | ARM::AEK_VIRT | ARM::AEK_DSP,
194 ARM::AEK_SEC | ARM::AEK_DSP, "7-A")));
202 ARM::AEK_MP | ARM::AEK_SEC | ARM::AEK_DSP, "7-A"),
204 ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT |
205 ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB |
206 ARM::AEK_DSP,
209 ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT |
210 ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB |
211 ARM::AEK_DSP,
214 ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT |
215 ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB |
216 ARM::AEK_DSP,
219 ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
222 ARM::AEK_NONE | ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
225 ARM::AEK_NONE | ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
228 ARM::AEK_MP | ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB |
229 ARM::AEK_DSP,
232 ARM::AEK_MP | ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB |
233 ARM::AEK_DSP,
236 ARM::AEK_MP | ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB |
237 ARM::AEK_DSP,
240 ARM::AEK_NONE | ARM::AEK_CRC | ARM::AEK_MP |
241 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
242 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
245 ARM::AEK_NONE | ARM::AEK_HWDIVTHUMB, "7-M"),
247 ARM::AEK_NONE | ARM::AEK_HWDIVTHUMB, "7-M"),
249 ARM::AEK_NONE | ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
252 ARM::AEK_NONE | ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
255 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
256 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
257 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
260 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
261 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
262 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
265 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
266 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
267 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
270 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
271 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
272 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP |
273 ARM::AEK_FP16 | ARM::AEK_RAS | ARM::AEK_DOTPROD,
276 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
277 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
278 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
281 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
282 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
283 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
286 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
287 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
288 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
291 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
292 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
293 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP |
294 ARM::AEK_FP16 | ARM::AEK_RAS | ARM::AEK_DOTPROD,
297 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
298 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
299 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP |
300 ARM::AEK_FP16 | ARM::AEK_RAS | ARM::AEK_DOTPROD,
303 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
304 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
305 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP |
306 ARM::AEK_FP16 | ARM::AEK_RAS | ARM::AEK_DOTPROD,
309 ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT |
310 ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB |
311 ARM::AEK_DSP | ARM::AEK_CRC | ARM::AEK_RAS |
312 ARM::AEK_FP16 | ARM::AEK_DOTPROD,
315 ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT |
316 ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB |
317 ARM::AEK_DSP | ARM::AEK_CRC | ARM::AEK_RAS |
318 ARM::AEK_DOTPROD | ARM::AEK_FP16FML |
319 ARM::AEK_BF16 | ARM::AEK_I8MM | ARM::AEK_SB,
322 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
323 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
324 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP |
325 ARM::AEK_FP16 | ARM::AEK_RAS | ARM::AEK_DOTPROD,
328 ARM::AEK_DOTPROD | ARM::AEK_FP16 | ARM::AEK_SEC |
329 ARM::AEK_MP | ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
330 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP | ARM::AEK_CRC |
331 ARM::AEK_RAS,
334 ARM::AEK_RAS | ARM::AEK_FP16 | ARM::AEK_DOTPROD |
335 ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT |
336 ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB |
337 ARM::AEK_DSP | ARM::AEK_CRC,
340 ARM::AEK_RAS | ARM::AEK_FP16 | ARM::AEK_DOTPROD |
341 ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT |
342 ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB |
343 ARM::AEK_DSP | ARM::AEK_CRC,
346 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
347 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
348 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP |
349 ARM::AEK_FP16 | ARM::AEK_RAS | ARM::AEK_DOTPROD,
352 ARM::AEK_CRC | ARM::AEK_HWDIVTHUMB |
353 ARM::AEK_HWDIVARM | ARM::AEK_MP | ARM::AEK_SEC |
354 ARM::AEK_VIRT | ARM::AEK_DSP | ARM::AEK_BF16 |
355 ARM::AEK_DOTPROD | ARM::AEK_RAS | ARM::AEK_I8MM |
356 ARM::AEK_SB,
359 ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT |
360 ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB |
361 ARM::AEK_DSP | ARM::AEK_CRC | ARM::AEK_RAS |
362 ARM::AEK_FP16 | ARM::AEK_BF16 | ARM::AEK_DOTPROD,
365 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
366 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
367 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
370 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
371 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
372 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
375 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
376 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
377 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP |
378 ARM::AEK_DOTPROD | ARM::AEK_FP16 | ARM::AEK_RAS,
381 ARM::AEK_CRC | ARM::AEK_SEC | ARM::AEK_MP |
382 ARM::AEK_VIRT | ARM::AEK_HWDIVARM |
383 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP |
384 ARM::AEK_DOTPROD | ARM::AEK_FP16 | ARM::AEK_RAS,
387 ARM::AEK_NONE | ARM::AEK_HWDIVTHUMB, "8-M.Baseline"),
389 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP, "8-M.Mainline"),
391 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP, "8-M.Mainline"),
394 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP | ARM::AEK_SIMD |
395 ARM::AEK_FP | ARM::AEK_RAS | ARM::AEK_LOB |
396 ARM::AEK_FP16,
400 ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP | ARM::AEK_SIMD |
401 ARM::AEK_FP | ARM::AEK_RAS | ARM::AEK_LOB |
402 ARM::AEK_FP16 | ARM::AEK_PACBTI,
404 ARMCPUTestParams("iwmmxt", "iwmmxt", "none", ARM::AEK_NONE, "iwmmxt"),
405 ARMCPUTestParams("xscale", "xscale", "none", ARM::AEK_NONE, "xscale"),
407 ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP,
414 ARM::fillValidCPUArchList(List); in TEST()
420 EXPECT_NE(ARM::parseCPUArch(CPU), ARM::ArchKind::INVALID); in TEST()
427 EXPECT_EQ(ARM::parseArch(InvalidArch), ARM::ArchKind::INVALID); in TEST()
432 ARM::ArchKind AK = ARM::parseArch(Arch); in testARMArch()
433 bool Result = (AK != ARM::ArchKind::INVALID); in testARMArch()
434 Result &= ARM::getDefaultCPU(Arch).equals(DefaultCPU); in testARMArch()
435 Result &= ARM::getSubArch(AK).equals(SubArch); in testARMArch()
436 Result &= (ARM::getArchAttr(AK) == ArchAttr); in testARMArch()
561 bool testARMExtension(StringRef CPUName,ARM::ArchKind ArchKind, StringRef ArchExt) { in testARMExtension()
562 return ARM::getDefaultExtensions(CPUName, ArchKind) & in testARMExtension()
563 ARM::parseArchExt(ArchExt); in testARMExtension()
567 EXPECT_FALSE(testARMExtension("strongarm", ARM::ArchKind::INVALID, "dsp")); in TEST()
568 EXPECT_FALSE(testARMExtension("arm7tdmi", ARM::ArchKind::INVALID, "dsp")); in TEST()
570 ARM::ArchKind::INVALID, "simd")); in TEST()
571 EXPECT_FALSE(testARMExtension("arm1022e", ARM::ArchKind::INVALID, "simd")); in TEST()
573 ARM::ArchKind::INVALID, "simd")); in TEST()
575 ARM::ArchKind::INVALID, "crypto")); in TEST()
577 ARM::ArchKind::INVALID, "crypto")); in TEST()
579 ARM::ArchKind::INVALID, "crypto")); in TEST()
581 ARM::ArchKind::INVALID, "crypto")); in TEST()
583 ARM::ArchKind::INVALID, "crypto")); in TEST()
585 ARM::ArchKind::INVALID, "crypto")); in TEST()
587 ARM::ArchKind::INVALID, "crypto")); in TEST()
589 ARM::ArchKind::INVALID, "ras")); in TEST()
591 ARM::ArchKind::INVALID, "fp16")); in TEST()
593 ARM::ArchKind::INVALID, "fp16")); in TEST()
595 ARM::ArchKind::INVALID, "fp16fml")); in TEST()
597 ARM::ArchKind::INVALID, "fp16")); in TEST()
599 ARM::ArchKind::INVALID, "fp16fml")); in TEST()
601 ARM::ArchKind::INVALID, "ras")); in TEST()
602 EXPECT_FALSE(testARMExtension("iwmmxt", ARM::ArchKind::INVALID, "crc")); in TEST()
603 EXPECT_FALSE(testARMExtension("xscale", ARM::ArchKind::INVALID, "crc")); in TEST()
604 EXPECT_FALSE(testARMExtension("swift", ARM::ArchKind::INVALID, "crc")); in TEST()
606 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV2, "thumb")); in TEST()
607 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV2A, "thumb")); in TEST()
608 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV3, "thumb")); in TEST()
609 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV3M, "thumb")); in TEST()
610 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV4, "dsp")); in TEST()
611 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV4T, "dsp")); in TEST()
612 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV5T, "simd")); in TEST()
613 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV5TE, "simd")); in TEST()
614 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV5TEJ, "simd")); in TEST()
615 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV6, "crypto")); in TEST()
616 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV6K, "crypto")); in TEST()
618 ARM::ArchKind::ARMV6T2, "crypto")); in TEST()
620 ARM::ArchKind::ARMV6KZ, "crypto")); in TEST()
621 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV6M, "crypto")); in TEST()
622 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV7A, "crypto")); in TEST()
623 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV7R, "crypto")); in TEST()
624 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV7M, "crypto")); in TEST()
626 ARM::ArchKind::ARMV7EM, "crypto")); in TEST()
627 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8A, "ras")); in TEST()
628 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_1A, "ras")); in TEST()
629 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_2A, "profile")); in TEST()
630 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_2A, "fp16")); in TEST()
631 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_2A, "fp16fml")); in TEST()
632 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_3A, "fp16")); in TEST()
633 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_3A, "fp16fml")); in TEST()
634 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_4A, "fp16")); in TEST()
635 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8_4A, "fp16fml")); in TEST()
636 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV8R, "ras")); in TEST()
638 ARM::ArchKind::ARMV8MBaseline, "crc")); in TEST()
640 ARM::ArchKind::ARMV8MMainline, "crc")); in TEST()
641 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::IWMMXT, "crc")); in TEST()
642 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::IWMMXT2, "crc")); in TEST()
643 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::XSCALE, "crc")); in TEST()
644 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV7S, "crypto")); in TEST()
645 EXPECT_FALSE(testARMExtension("generic", ARM::ArchKind::ARMV7K, "crypto")); in TEST()
649 for (ARM::FPUKind FK = static_cast<ARM::FPUKind>(0); in TEST()
650 FK <= ARM::FPUKind::FK_LAST; in TEST()
651 FK = static_cast<ARM::FPUKind>(static_cast<unsigned>(FK) + 1)) in TEST()
652 if (FK == ARM::FK_LAST || ARM::getFPUName(FK) == "invalid" || in TEST()
653 ARM::getFPUName(FK) == "none" || ARM::getFPUName(FK) == "softvfp") in TEST()
654 EXPECT_EQ(ARM::FPUVersion::NONE, ARM::getFPUVersion(FK)); in TEST()
656 EXPECT_NE(ARM::FPUVersion::NONE, ARM::getFPUVersion(FK)); in TEST()
660 for (ARM::FPUKind FK = static_cast<ARM::FPUKind>(0); in TEST()
661 FK <= ARM::FPUKind::FK_LAST; in TEST()
662 FK = static_cast<ARM::FPUKind>(static_cast<unsigned>(FK) + 1)) in TEST()
663 if (FK == ARM::FK_LAST || in TEST()
664 ARM::getFPUName(FK).find("neon") == std::string::npos) in TEST()
665 EXPECT_EQ(ARM::NeonSupportLevel::None, in TEST()
666 ARM::getFPUNeonSupportLevel(FK)); in TEST()
668 EXPECT_NE(ARM::NeonSupportLevel::None, in TEST()
669 ARM::getFPUNeonSupportLevel(FK)); in TEST()
673 for (ARM::FPUKind FK = static_cast<ARM::FPUKind>(0); in TEST()
674 FK <= ARM::FPUKind::FK_LAST; in TEST()
675 FK = static_cast<ARM::FPUKind>(static_cast<unsigned>(FK) + 1)) { in TEST()
676 if (FK == ARM::FK_LAST || in TEST()
677 (ARM::getFPUName(FK).find("d16") == std::string::npos && in TEST()
678 ARM::getFPUName(FK).find("vfpv3xd") == std::string::npos)) in TEST()
679 EXPECT_EQ(ARM::FPURestriction::None, ARM::getFPURestriction(FK)); in TEST()
681 EXPECT_NE(ARM::FPURestriction::None, ARM::getFPURestriction(FK)); in TEST()
688 for (auto &Ext : ARM::ARCHExtNames) { in TEST()
694 Extensions[ARM::AEK_HWDIVARM] = { "+hwdiv-arm", "-hwdiv-arm" }; in TEST()
695 Extensions[ARM::AEK_HWDIVTHUMB] = { "+hwdiv", "-hwdiv" }; in TEST()
699 EXPECT_FALSE(ARM::getExtensionFeatures(ARM::AEK_INVALID, Features)); in TEST()
704 ARM::getExtensionFeatures(E.first, Features); in TEST()
710 ARM::getExtensionFeatures(~E.first, Features); in TEST()
718 for (ARM::FPUKind FK = static_cast<ARM::FPUKind>(0); in TEST()
719 FK <= ARM::FPUKind::FK_LAST; in TEST()
720 FK = static_cast<ARM::FPUKind>(static_cast<unsigned>(FK) + 1)) { in TEST()
721 if (FK == ARM::FK_INVALID || FK >= ARM::FK_LAST) in TEST()
722 EXPECT_FALSE(ARM::getFPUFeatures(FK, Features)); in TEST()
724 EXPECT_TRUE(ARM::getFPUFeatures(FK, Features)); in TEST()
753 EXPECT_EQ(StringRef(ArchExt[i][2]), ARM::getArchExtFeature(ArchExt[i][0])); in TEST()
754 EXPECT_EQ(StringRef(ArchExt[i][3]), ARM::getArchExtFeature(ArchExt[i][1])); in TEST()
764 if (!ARM::appendArchExtFeatures("", ARM::ArchKind::ARMV8_1MMainline, ArchExt, in testArchExtDependency()
784 EXPECT_NE(ARM::AEK_INVALID, ARM::parseHWDiv((StringRef)hwdiv[i])); in TEST()
809 EXPECT_EQ(ARM::EndianKind::BIG, ARM::parseArchEndian(arm_1)); in TEST()
810 EXPECT_EQ(ARM::EndianKind::BIG, ARM::parseArchEndian(arm_2)); in TEST()
811 EXPECT_EQ(ARM::EndianKind::LITTLE, ARM::parseArchEndian(arm_3)); in TEST()
813 EXPECT_EQ(ARM::ISAKind::ARM, ARM::parseArchISA(arm_1)); in TEST()
814 EXPECT_EQ(ARM::ISAKind::ARM, ARM::parseArchISA(arm_2)); in TEST()
815 EXPECT_EQ(ARM::ISAKind::ARM, ARM::parseArchISA(arm_3)); in TEST()
817 EXPECT_EQ(ARM::EndianKind::BIG, ARM::parseArchEndian(thumb_1)); in TEST()
818 EXPECT_EQ(ARM::EndianKind::BIG, ARM::parseArchEndian(thumb_2)); in TEST()
819 EXPECT_EQ(ARM::EndianKind::LITTLE, ARM::parseArchEndian(thumb_3)); in TEST()
821 EXPECT_EQ(ARM::ISAKind::THUMB, ARM::parseArchISA(thumb_1)); in TEST()
822 EXPECT_EQ(ARM::ISAKind::THUMB, ARM::parseArchISA(thumb_2)); in TEST()
823 EXPECT_EQ(ARM::ISAKind::THUMB, ARM::parseArchISA(thumb_3)); in TEST()
827 EXPECT_EQ(ARM::EndianKind::LITTLE, ARM::parseArchEndian("aarch64")); in TEST()
828 EXPECT_EQ(ARM::EndianKind::LITTLE, ARM::parseArchEndian("arm64_32")); in TEST()
829 EXPECT_EQ(ARM::EndianKind::BIG, ARM::parseArchEndian("aarch64_be")); in TEST()
831 EXPECT_EQ(ARM::ISAKind::AARCH64, ARM::parseArchISA("aarch64")); in TEST()
832 EXPECT_EQ(ARM::ISAKind::AARCH64, ARM::parseArchISA("aarch64_be")); in TEST()
833 EXPECT_EQ(ARM::ISAKind::AARCH64, ARM::parseArchISA("arm64")); in TEST()
834 EXPECT_EQ(ARM::ISAKind::AARCH64, ARM::parseArchISA("arm64_be")); in TEST()
835 EXPECT_EQ(ARM::ISAKind::AARCH64, ARM::parseArchISA("arm64_32")); in TEST()
836 EXPECT_EQ(ARM::ISAKind::AARCH64, ARM::parseArchISA("aarch64_32")); in TEST()
841 switch (ARM::parseArch(ARMArch[i])) { in TEST()
842 case ARM::ArchKind::ARMV6M: in TEST()
843 case ARM::ArchKind::ARMV7M: in TEST()
844 case ARM::ArchKind::ARMV7EM: in TEST()
845 case ARM::ArchKind::ARMV8MMainline: in TEST()
846 case ARM::ArchKind::ARMV8MBaseline: in TEST()
847 case ARM::ArchKind::ARMV8_1MMainline: in TEST()
848 EXPECT_EQ(ARM::ProfileKind::M, ARM::parseArchProfile(ARMArch[i])); in TEST()
850 case ARM::ArchKind::ARMV7R: in TEST()
851 case ARM::ArchKind::ARMV8R: in TEST()
852 EXPECT_EQ(ARM::ProfileKind::R, ARM::parseArchProfile(ARMArch[i])); in TEST()
854 case ARM::ArchKind::ARMV7A: in TEST()
855 case ARM::ArchKind::ARMV7VE: in TEST()
856 case ARM::ArchKind::ARMV7K: in TEST()
857 case ARM::ArchKind::ARMV8A: in TEST()
858 case ARM::ArchKind::ARMV8_1A: in TEST()
859 case ARM::ArchKind::ARMV8_2A: in TEST()
860 case ARM::ArchKind::ARMV8_3A: in TEST()
861 case ARM::ArchKind::ARMV8_4A: in TEST()
862 case ARM::ArchKind::ARMV8_5A: in TEST()
863 case ARM::ArchKind::ARMV8_6A: in TEST()
864 case ARM::ArchKind::ARMV8_7A: in TEST()
865 case ARM::ArchKind::ARMV8_8A: in TEST()
866 case ARM::ArchKind::ARMV9A: in TEST()
867 case ARM::ArchKind::ARMV9_1A: in TEST()
868 case ARM::ArchKind::ARMV9_2A: in TEST()
869 case ARM::ArchKind::ARMV9_3A: in TEST()
870 EXPECT_EQ(ARM::ProfileKind::A, ARM::parseArchProfile(ARMArch[i])); in TEST()
873 EXPECT_EQ(ARM::ProfileKind::INVALID, ARM::parseArchProfile(ARMArch[i])); in TEST()
882 EXPECT_EQ((ARMArch[i][4] - 48u), ARM::parseArchVersion(ARMArch[i])); in TEST()
884 EXPECT_EQ(5u, ARM::parseArchVersion(ARMArch[i])); in TEST()
898 EXPECT_PRED_FORMAT2(AssertSameExtensionFlags<ARM::ISAKind::AARCH64>, in TEST_P()
902 EXPECT_EQ(params.ExpectedFPU, ARM::getFPUName(FPUKind)); in TEST_P()