|
| 1 | +#include "AArch64RegisterInfo.h" |
1 | 2 | #include "AArch64InstrInfo.h"
|
2 | 3 | #include "AArch64Subtarget.h"
|
3 | 4 | #include "AArch64TargetMachine.h"
|
4 |
| -#include "AArch64RegisterInfo.h" |
5 | 5 | #include "llvm/MC/MCSubtargetInfo.h"
|
6 | 6 | #include "llvm/MC/TargetRegistry.h"
|
7 | 7 | #include "llvm/Support/TargetSelect.h"
|
@@ -51,98 +51,102 @@ TEST(AArch64LaneBitmasks, SubRegs) {
|
51 | 51 |
|
52 | 52 | // Test that the lane masks for the subregisters 'bsub, hsub, ssub, etc'
|
53 | 53 | // are composed correctly.
|
54 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::bsub) | |
55 |
| - TRI.getSubRegIndexLaneMask(AArch64::bsub_hi), |
| 54 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::bsub) | |
| 55 | + TRI.getSubRegIndexLaneMask(AArch64::bsub_hi), |
56 | 56 | TRI.getSubRegIndexLaneMask(AArch64::hsub));
|
57 | 57 |
|
58 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::hsub) | |
59 |
| - TRI.getSubRegIndexLaneMask(AArch64::hsub_hi), |
| 58 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::hsub) | |
| 59 | + TRI.getSubRegIndexLaneMask(AArch64::hsub_hi), |
60 | 60 | TRI.getSubRegIndexLaneMask(AArch64::ssub));
|
61 | 61 |
|
62 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::ssub) | |
63 |
| - TRI.getSubRegIndexLaneMask(AArch64::ssub_hi), |
| 62 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::ssub) | |
| 63 | + TRI.getSubRegIndexLaneMask(AArch64::ssub_hi), |
64 | 64 | TRI.getSubRegIndexLaneMask(AArch64::dsub));
|
65 | 65 |
|
66 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::dsub) | |
67 |
| - TRI.getSubRegIndexLaneMask(AArch64::dsub_hi), |
| 66 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::dsub) | |
| 67 | + TRI.getSubRegIndexLaneMask(AArch64::dsub_hi), |
68 | 68 | TRI.getSubRegIndexLaneMask(AArch64::zsub));
|
69 | 69 |
|
70 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::zsub) | |
71 |
| - TRI.getSubRegIndexLaneMask(AArch64::zsub_hi), |
| 70 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::zsub) | |
| 71 | + TRI.getSubRegIndexLaneMask(AArch64::zsub_hi), |
72 | 72 | TRI.getSubRegIndexLaneMask(AArch64::zsub0));
|
73 | 73 |
|
74 | 74 | // Test that the lane masks for tuples are composed correctly.
|
75 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_bsub) | |
76 |
| - TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_bsub_hi), |
| 75 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_bsub) | |
| 76 | + TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_bsub_hi), |
77 | 77 | TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_hsub));
|
78 | 78 |
|
79 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_hsub) | |
80 |
| - TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_hsub_hi), |
| 79 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_hsub) | |
| 80 | + TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_hsub_hi), |
81 | 81 | TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_ssub));
|
82 | 82 |
|
83 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_ssub) | |
84 |
| - TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_ssub_hi), |
| 83 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_ssub) | |
| 84 | + TRI.getSubRegIndexLaneMask(AArch64::dsub1_then_ssub_hi), |
85 | 85 | TRI.getSubRegIndexLaneMask(AArch64::dsub1));
|
86 | 86 |
|
87 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::dsub1) | |
88 |
| - TRI.getSubRegIndexLaneMask(AArch64::qsub1_then_dsub_hi), |
| 87 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::dsub1) | |
| 88 | + TRI.getSubRegIndexLaneMask(AArch64::qsub1_then_dsub_hi), |
89 | 89 | TRI.getSubRegIndexLaneMask(AArch64::qsub1));
|
90 | 90 |
|
91 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::sub_32) | |
92 |
| - TRI.getSubRegIndexLaneMask(AArch64::sub_32_hi), |
| 91 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::sub_32) | |
| 92 | + TRI.getSubRegIndexLaneMask(AArch64::sub_32_hi), |
93 | 93 | TRI.getSubRegIndexLaneMask(AArch64::sube64));
|
94 | 94 |
|
95 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::subo64_then_sub_32) | |
96 |
| - TRI.getSubRegIndexLaneMask(AArch64::subo64_then_sub_32_hi), |
| 95 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::subo64_then_sub_32) | |
| 96 | + TRI.getSubRegIndexLaneMask(AArch64::subo64_then_sub_32_hi), |
97 | 97 | TRI.getSubRegIndexLaneMask(AArch64::subo64));
|
98 | 98 |
|
99 | 99 | // Test that there is no overlap between different (sub)registers
|
100 | 100 | // in a tuple.
|
101 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::dsub0) & |
102 |
| - TRI.getSubRegIndexLaneMask(AArch64::dsub1) & |
103 |
| - TRI.getSubRegIndexLaneMask(AArch64::dsub2) & |
104 |
| - TRI.getSubRegIndexLaneMask(AArch64::dsub3), |
| 101 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::dsub0) & |
| 102 | + TRI.getSubRegIndexLaneMask(AArch64::dsub1) & |
| 103 | + TRI.getSubRegIndexLaneMask(AArch64::dsub2) & |
| 104 | + TRI.getSubRegIndexLaneMask(AArch64::dsub3), |
105 | 105 | LaneBitmask::getNone());
|
106 | 106 |
|
107 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::qsub0) & |
108 |
| - TRI.getSubRegIndexLaneMask(AArch64::qsub1) & |
109 |
| - TRI.getSubRegIndexLaneMask(AArch64::qsub2) & |
110 |
| - TRI.getSubRegIndexLaneMask(AArch64::qsub3), |
| 107 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::qsub0) & |
| 108 | + TRI.getSubRegIndexLaneMask(AArch64::qsub1) & |
| 109 | + TRI.getSubRegIndexLaneMask(AArch64::qsub2) & |
| 110 | + TRI.getSubRegIndexLaneMask(AArch64::qsub3), |
111 | 111 | LaneBitmask::getNone());
|
112 | 112 |
|
113 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::zsub0) & |
114 |
| - TRI.getSubRegIndexLaneMask(AArch64::zsub1) & |
115 |
| - TRI.getSubRegIndexLaneMask(AArch64::zsub2) & |
116 |
| - TRI.getSubRegIndexLaneMask(AArch64::zsub3), |
| 113 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::zsub0) & |
| 114 | + TRI.getSubRegIndexLaneMask(AArch64::zsub1) & |
| 115 | + TRI.getSubRegIndexLaneMask(AArch64::zsub2) & |
| 116 | + TRI.getSubRegIndexLaneMask(AArch64::zsub3), |
117 | 117 | LaneBitmask::getNone());
|
118 | 118 |
|
119 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::sube32) & |
120 |
| - TRI.getSubRegIndexLaneMask(AArch64::subo32), |
| 119 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::sube32) & |
| 120 | + TRI.getSubRegIndexLaneMask(AArch64::subo32), |
121 | 121 | LaneBitmask::getNone());
|
122 | 122 |
|
123 |
| - ASSERT_EQ(TRI.getSubRegIndexLaneMask(AArch64::sube64) & |
124 |
| - TRI.getSubRegIndexLaneMask(AArch64::subo64), |
| 123 | + EXPECT_EQ(TRI.getSubRegIndexLaneMask(AArch64::sube64) & |
| 124 | + TRI.getSubRegIndexLaneMask(AArch64::subo64), |
125 | 125 | LaneBitmask::getNone());
|
126 | 126 |
|
127 | 127 | // Test that getting a subregister results in the expected subregister.
|
128 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::bsub), AArch64::B0); |
129 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::hsub), AArch64::H0); |
130 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::ssub), AArch64::S0); |
131 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::dsub), AArch64::D0); |
132 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::zsub), AArch64::Q0); |
133 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::zsub0), AArch64::Z0); |
134 |
| - |
135 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::dsub1_then_bsub), AArch64::B8); |
136 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::dsub1_then_hsub), AArch64::H8); |
137 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::dsub1_then_ssub), AArch64::S8); |
138 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::dsub1), AArch64::D8); |
139 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::qsub1), AArch64::Q8); |
140 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::zsub1), AArch64::Z8); |
141 |
| - |
142 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::X0_X1, AArch64::sube64), AArch64::X0); |
143 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::X0_X1, AArch64::subo64), AArch64::X1); |
144 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::X0_X1, AArch64::sub_32), AArch64::W0); |
145 |
| - ASSERT_EQ(TRI.getSubReg(AArch64::X0_X1, AArch64::subo64_then_sub_32), AArch64::W1); |
| 128 | + EXPECT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::bsub), AArch64::B0); |
| 129 | + EXPECT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::hsub), AArch64::H0); |
| 130 | + EXPECT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::ssub), AArch64::S0); |
| 131 | + EXPECT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::dsub), AArch64::D0); |
| 132 | + EXPECT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::zsub), AArch64::Q0); |
| 133 | + EXPECT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::zsub0), AArch64::Z0); |
| 134 | + |
| 135 | + EXPECT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::dsub1_then_bsub), |
| 136 | + AArch64::B8); |
| 137 | + EXPECT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::dsub1_then_hsub), |
| 138 | + AArch64::H8); |
| 139 | + EXPECT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::dsub1_then_ssub), |
| 140 | + AArch64::S8); |
| 141 | + EXPECT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::dsub1), AArch64::D8); |
| 142 | + EXPECT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::qsub1), AArch64::Q8); |
| 143 | + EXPECT_EQ(TRI.getSubReg(AArch64::Z0_Z8, AArch64::zsub1), AArch64::Z8); |
| 144 | + |
| 145 | + EXPECT_EQ(TRI.getSubReg(AArch64::X0_X1, AArch64::sube64), AArch64::X0); |
| 146 | + EXPECT_EQ(TRI.getSubReg(AArch64::X0_X1, AArch64::subo64), AArch64::X1); |
| 147 | + EXPECT_EQ(TRI.getSubReg(AArch64::X0_X1, AArch64::sub_32), AArch64::W0); |
| 148 | + EXPECT_EQ(TRI.getSubReg(AArch64::X0_X1, AArch64::subo64_then_sub_32), |
| 149 | + AArch64::W1); |
146 | 150 | }
|
147 | 151 |
|
148 | 152 | } // namespace
|
0 commit comments