37 using TooShort = uint8_t[2];
38 using TooLong = uint16_t[32];
39 using TooLongFloat =
double[4];
40 using EightLong = uint32_t[2];
41 using SixteenLong = uint64_t[2];
42 using EightLongFloat =
float[2];
43 using SixteenLongFloat =
double[2];
45 EXPECT_FALSE(guest_abi::IsAapcs64ShortVectorV<Scalar>);
46 EXPECT_FALSE(guest_abi::IsAapcs64ShortVectorV<TooShort>);
47 EXPECT_FALSE(guest_abi::IsAapcs64ShortVectorV<TooLong>);
48 EXPECT_FALSE(guest_abi::IsAapcs64ShortVectorV<TooLongFloat>);
49 EXPECT_FALSE(guest_abi::IsAapcs64ShortVectorV<void>);
51 EXPECT_TRUE(guest_abi::IsAapcs64ShortVectorV<EightLong>);
52 EXPECT_TRUE(guest_abi::IsAapcs64ShortVectorV<SixteenLong>);
53 EXPECT_TRUE(guest_abi::IsAapcs64ShortVectorV<EightLongFloat>);
54 EXPECT_TRUE(guest_abi::IsAapcs64ShortVectorV<SixteenLongFloat>);
60 EXPECT_TRUE(guest_abi::IsAapcs64HfaV<
float[1]>);
61 EXPECT_TRUE(guest_abi::IsAapcs64HfaV<
float[2]>);
62 EXPECT_TRUE(guest_abi::IsAapcs64HfaV<
float[3]>);
63 EXPECT_TRUE(guest_abi::IsAapcs64HfaV<
float[4]>);
65 EXPECT_TRUE(guest_abi::IsAapcs64HfaV<
double[1]>);
66 EXPECT_TRUE(guest_abi::IsAapcs64HfaV<
double[2]>);
67 EXPECT_TRUE(guest_abi::IsAapcs64HfaV<
double[3]>);
68 EXPECT_TRUE(guest_abi::IsAapcs64HfaV<
double[4]>);
71 EXPECT_FALSE(guest_abi::IsAapcs64HfaV<
float[5]>);
72 EXPECT_FALSE(guest_abi::IsAapcs64HfaV<
double[5]>);
75 EXPECT_FALSE(guest_abi::IsAapcs64HfaV<int32_t[3]>);
76 EXPECT_FALSE(guest_abi::IsAapcs64HfaV<float>);
78 EXPECT_FALSE(guest_abi::IsAapcs64HfaV<Struct>);
79 EXPECT_FALSE(guest_abi::IsAapcs64HfaV<void>);
84 using SvaInt = uint32_t[2];
85 using SvaTiny = uint8_t[16];
86 using SvaFloat =
float[2];
88 EXPECT_TRUE(guest_abi::IsAapcs64HvaV<SvaInt[3]>);
89 EXPECT_TRUE(guest_abi::IsAapcs64HvaV<SvaInt[4]>);
90 EXPECT_FALSE(guest_abi::IsAapcs64HvaV<SvaInt[5]>);
92 EXPECT_TRUE(guest_abi::IsAapcs64HvaV<SvaFloat[3]>);
93 EXPECT_TRUE(guest_abi::IsAapcs64HvaV<SvaFloat[4]>);
94 EXPECT_FALSE(guest_abi::IsAapcs64HvaV<SvaFloat[5]>);
96 EXPECT_TRUE(guest_abi::IsAapcs64HvaV<SvaTiny[3]>);
97 EXPECT_TRUE(guest_abi::IsAapcs64HvaV<SvaTiny[4]>);
98 EXPECT_FALSE(guest_abi::IsAapcs64HvaV<SvaTiny[5]>);
100 EXPECT_FALSE(guest_abi::IsAapcs64HvaV<uint64_t>);
101 EXPECT_FALSE(guest_abi::IsAapcs64HvaV<uint64_t[1]>);
102 EXPECT_FALSE(guest_abi::IsAapcs64HvaV<SvaTiny>);
103 EXPECT_FALSE(guest_abi::IsAapcs64HvaV<void>);
104 EXPECT_FALSE(guest_abi::IsAapcs64HvaV<float>);
109 using SvaInt = uint32_t[2];
111 EXPECT_TRUE(guest_abi::IsAapcs64HxaV<SvaInt[4]>);
112 EXPECT_FALSE(guest_abi::IsAapcs64HxaV<SvaInt[5]>);
114 EXPECT_TRUE(guest_abi::IsAapcs64HxaV<
float[4]>);
115 EXPECT_FALSE(guest_abi::IsAapcs64HxaV<
float[5]>);
117 EXPECT_FALSE(guest_abi::IsAapcs64HxaV<SvaInt>);
118 EXPECT_FALSE(guest_abi::IsAapcs64HxaV<uint64_t>);
119 EXPECT_FALSE(guest_abi::IsAapcs64HxaV<void>);