28 #include <gtest/gtest.h>
34 using Scalar = uint64_t;
35 using TooShort = uint8_t[2];
36 using TooLong = uint16_t[32];
37 using TooLongFloat =
double[4];
38 using EightLong = uint32_t[2];
39 using SixteenLong = uint64_t[2];
40 using EightLongFloat =
float[2];
41 using SixteenLongFloat =
double[2];
82 using SvaInt = uint32_t[2];
83 using SvaTiny = uint8_t[16];
84 using SvaFloat =
float[2];
86 EXPECT_TRUE(GuestABI::IsAapcs64Hva<SvaInt[3]>::value);
87 EXPECT_TRUE(GuestABI::IsAapcs64Hva<SvaInt[4]>::value);
88 EXPECT_FALSE(GuestABI::IsAapcs64Hva<SvaInt[5]>::value);
90 EXPECT_TRUE(GuestABI::IsAapcs64Hva<SvaFloat[3]>::value);
91 EXPECT_TRUE(GuestABI::IsAapcs64Hva<SvaFloat[4]>::value);
92 EXPECT_FALSE(GuestABI::IsAapcs64Hva<SvaFloat[5]>::value);
94 EXPECT_TRUE(GuestABI::IsAapcs64Hva<SvaTiny[3]>::value);
95 EXPECT_TRUE(GuestABI::IsAapcs64Hva<SvaTiny[4]>::value);
96 EXPECT_FALSE(GuestABI::IsAapcs64Hva<SvaTiny[5]>::value);
98 EXPECT_FALSE(GuestABI::IsAapcs64Hva<uint64_t>::value);
99 EXPECT_FALSE(GuestABI::IsAapcs64Hva<uint64_t[1]>::value);
100 EXPECT_FALSE(GuestABI::IsAapcs64Hva<SvaTiny>::value);
101 EXPECT_FALSE(GuestABI::IsAapcs64Hva<void>::value);
102 EXPECT_FALSE(GuestABI::IsAapcs64Hva<float>::value);
107 using SvaInt = uint32_t[2];
109 EXPECT_TRUE(GuestABI::IsAapcs64Hxa<SvaInt[4]>::value);
110 EXPECT_FALSE(GuestABI::IsAapcs64Hxa<SvaInt[5]>::value);
112 EXPECT_TRUE(GuestABI::IsAapcs64Hxa<
float[4]>::value);
113 EXPECT_FALSE(GuestABI::IsAapcs64Hxa<
float[5]>::value);
115 EXPECT_FALSE(GuestABI::IsAapcs64Hxa<SvaInt>::value);
116 EXPECT_FALSE(GuestABI::IsAapcs64Hxa<uint64_t>::value);
117 EXPECT_FALSE(GuestABI::IsAapcs64Hxa<void>::value);