1 // Copyright 2018, VIXL authors 2 // All rights reserved. 3 // 4 // Redistribution and use in source and binary forms, with or without 5 // modification, are permitted provided that the following conditions are met: 6 // 7 // * Redistributions of source code must retain the above copyright notice, 8 // this list of conditions and the following disclaimer. 9 // * Redistributions in binary form must reproduce the above copyright notice, 10 // this list of conditions and the following disclaimer in the documentation 11 // and/or other materials provided with the distribution. 12 // * Neither the name of ARM Limited nor the names of its contributors may be 13 // used to endorse or promote products derived from this software without 14 // specific prior written permission. 15 // 16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND 17 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 20 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 27 #include <cstring> 28 #include <iostream> 29 #include <string> 30 31 #include "test-runner.h" 32 #include "test-utils.h" 33 #include "aarch64/test-utils-aarch64.h" 34 35 #include "aarch64/macro-assembler-aarch64.h" 36 37 #define __ masm-> 38 #define TEST(name) TEST_(AARCH64_CPUFeatures_##name) 39 40 41 namespace vixl { 42 namespace aarch64 { 43 44 class CPUFeaturesTest { 45 public: CPUFeaturesTest(const CPUFeatures & features,const char * description)46 CPUFeaturesTest(const CPUFeatures& features, const char* description) 47 : description_(description), 48 features_(features), 49 auditor_(&decoder_, features) {} 50 Run()51 void Run() { 52 auditor_.ResetSeenFeatures(); 53 54 // Positive test: the instruction must assemble with the specified features. 55 RunWithFeatures(features_); 56 // Positive test: extra features are ignored. 57 RunWithFeatures(CPUFeatures::All()); 58 #ifdef VIXL_DEBUG 59 #ifdef VIXL_NEGATIVE_TESTING 60 // Negative tests: any one missing feature causes the Assembler to fail in 61 // debug mode. 62 std::vector<CPUFeatures> errors; 63 for (CPUFeatures::const_iterator it = features_.begin(); 64 it != features_.end(); 65 ++it) { 66 try { 67 CPUFeatures reduced = features_.Without(*it); 68 RunWithFeatures(reduced); 69 errors.push_back(reduced); 70 } catch (const std::runtime_error&) { 71 } 72 } 73 if (!errors.empty()) { 74 std::cerr << "Negative CPUFeatures test failed for:\n"; 75 std::cerr << " " << description_ << ";"; 76 std::cerr << " // Requires: {" << features_ << "}\n"; 77 std::cerr << "with feature sets:\n"; 78 for (std::vector<CPUFeatures>::iterator it = errors.begin(); 79 it != errors.end(); 80 ++it) { 81 std::cerr << " {" << *it << "}\n"; 82 } 83 abort(); 84 } 85 #endif // VIXL_NEGATIVE_TESTING 86 #else // VIXL_DEBUG 87 // In release mode, the {Macro}Assembler doesn't check CPUFeatures. 88 RunWithFeatures(CPUFeatures::None()); 89 #endif // VIXL_DEBUG 90 91 // Check that the CPUFeaturesAuditor detected the correct features. 92 VIXL_CHECK(auditor_.GetSeenFeatures() == features_); 93 } 94 95 virtual void GenerateTestInstruction(MacroAssembler* masm) const = 0; 96 97 protected: 98 const char* description_; 99 100 private: 101 CPUFeatures features_; 102 103 Decoder decoder_; 104 CPUFeaturesAuditor auditor_; 105 106 // Use a separate context (and MacroAssembler) for each test, because the 107 // MacroAssembler does not guarantee any particular exception safety in 108 // negative testing mode. RunWithFeatures(const CPUFeatures & features)109 void RunWithFeatures(const CPUFeatures& features) { 110 // Use PositionDependentCode to allow the likes of adrp. 111 MacroAssembler masm(PositionDependentCode); 112 masm.SetCPUFeatures(features); 113 { 114 SingleEmissionCheckScope guard(&masm); 115 GenerateTestInstruction(&masm); 116 } 117 masm.FinalizeCode(); 118 119 // Pass the generated code through the CPUFeaturesAuditor. 120 VIXL_ASSERT(masm.GetBuffer()->GetSizeInBytes() == kInstructionSize); 121 decoder_.Decode(masm.GetInstructionAt(0)); 122 123 // Check that the CPUFeaturesAuditor detected the correct features for this 124 // instruction. A simple assertion would do, but printing the missing or 125 // superfluous features is useful for debugging. 126 if (auditor_.GetInstructionFeatures() != features_) { 127 CPUFeatures missing = 128 features_.Without(auditor_.GetInstructionFeatures()); 129 if (missing.Count() > 0) { 130 std::cout << "Error: the auditor should have detected CPUFeatures { " 131 << missing << " }\n"; 132 } 133 CPUFeatures extra = auditor_.GetInstructionFeatures().Without(features_); 134 if (extra.Count() > 0) { 135 std::cout << "Error: the auditor detected superfluous CPUFeatures { " 136 << extra << " }\n"; 137 } 138 VIXL_ABORT(); 139 } 140 } 141 }; 142 143 #define STRINGIFY(x) #x 144 145 #define TEST_TEMPLATE(FEATURES, NAME, ASM) \ 146 TEST(NAME) { \ 147 class TestCase : public CPUFeaturesTest { \ 148 public: \ 149 explicit TestCase(const CPUFeatures& features) \ 150 : CPUFeaturesTest(features, STRINGIFY(ASM)) {} \ 151 \ 152 void GenerateTestInstruction(MacroAssembler* masm) const VIXL_OVERRIDE { \ 153 /* Some tests need a label. */ \ 154 Label label; \ 155 __ bind(&label); \ 156 __ ASM; \ 157 } \ 158 }; \ 159 TestCase test((FEATURES)); \ 160 test.Run(); \ 161 } 162 163 164 #define TEST_NONE(NAME, ASM) \ 165 TEST_TEMPLATE(CPUFeatures::None(), NONE_##NAME, ASM) 166 TEST_NONE(adc_0, adc(w0, w1, w2)) 167 TEST_NONE(adc_1, adc(x0, x1, x2)) 168 TEST_NONE(adcs_0, adcs(w0, w1, w2)) 169 TEST_NONE(adcs_1, adcs(x0, x1, x2)) 170 TEST_NONE(adds_0, adds(w0, w1, Operand(w2, UXTH, 0))) 171 TEST_NONE(adds_1, adds(x0, x1, Operand(x2, SXTX, 4))) 172 TEST_NONE(adds_2, adds(x0, x1, Operand(w2, SXTB, 1))) 173 TEST_NONE(adds_3, adds(w0, w1, 0x905 << 12)) 174 TEST_NONE(adds_4, adds(x0, x1, 0x35a)) 175 TEST_NONE(adds_5, adds(w0, w1, Operand(w2, LSL, 10))) 176 TEST_NONE(adds_6, adds(x0, x1, Operand(x2, LSR, 11))) 177 TEST_NONE(add_0, add(w0, w1, Operand(w2, UXTW, 3))) 178 TEST_NONE(add_1, add(x0, x1, Operand(x2, UXTX, 4))) 179 TEST_NONE(add_2, add(x0, x1, Operand(w2, UXTH, 4))) 180 TEST_NONE(add_3, add(w0, w1, 0xb7e << 12)) 181 TEST_NONE(add_4, add(x0, x1, 0x6d2)) 182 TEST_NONE(add_5, add(w0, w1, Operand(w2, LSL, 6))) 183 TEST_NONE(add_6, add(x0, x1, Operand(x2, LSR, 25))) 184 TEST_NONE(adr_0, adr(x0, &label)) 185 TEST_NONE(adrp_0, adrp(x0, &label)) 186 TEST_NONE(ands_0, ands(w0, w1, 0x3c0000)) 187 TEST_NONE(ands_1, ands(x0, x1, 0x3c0000)) 188 TEST_NONE(ands_2, ands(w0, w1, Operand(w2, ASR, 6))) 189 TEST_NONE(ands_3, ands(x0, x1, Operand(x2, ASR, 33))) 190 TEST_NONE(and_0, and_(w0, w1, 0x3c0)) 191 TEST_NONE(and_1, and_(x0, x1, 0xf)) 192 TEST_NONE(and_2, and_(w0, w1, Operand(w2, LSL, 1))) 193 TEST_NONE(and_3, and_(x0, x1, Operand(x2, LSL, 58))) 194 TEST_NONE(asrv_0, asrv(w0, w1, w2)) 195 TEST_NONE(asrv_1, asrv(x0, x1, x2)) 196 TEST_NONE(bfi_0, bfi(w0, w1, 5, 11)) 197 TEST_NONE(bfi_1, bfi(x0, x1, 25, 36)) 198 TEST_NONE(bfm_0, bfm(w0, w1, 27, 31)) 199 TEST_NONE(bfm_1, bfm(x0, x1, 54, 57)) 200 TEST_NONE(bfxil_0, bfxil(w0, w1, 14, 13)) 201 TEST_NONE(bfxil_1, bfxil(x0, x1, 22, 6)) 202 TEST_NONE(bics_0, bics(w0, w1, Operand(w2, LSR, 10))) 203 TEST_NONE(bics_1, bics(x0, x1, Operand(x2, LSL, 42))) 204 TEST_NONE(bic_0, bic(w0, w1, Operand(w2, LSL, 17))) 205 TEST_NONE(bic_1, bic(x0, x1, Operand(x2, LSR, 16))) 206 TEST_NONE(bl_0, bl(&label)) 207 TEST_NONE(blr_0, blr(x0)) 208 TEST_NONE(br_0, br(x0)) 209 TEST_NONE(brk_0, brk(0x97b0)) 210 TEST_NONE(b_0, b(&label, pl)) 211 TEST_NONE(b_1, b(&label)) 212 TEST_NONE(cbnz_0, cbnz(w0, &label)) 213 TEST_NONE(cbnz_1, cbnz(x0, &label)) 214 TEST_NONE(cbz_0, cbz(w0, &label)) 215 TEST_NONE(cbz_1, cbz(x0, &label)) 216 TEST_NONE(ccmn_0, ccmn(w0, 28, NZVFlag, lt)) 217 TEST_NONE(ccmn_1, ccmn(x0, 12, ZFlag, ge)) 218 TEST_NONE(ccmn_2, ccmn(w0, w1, NZCFlag, gt)) 219 TEST_NONE(ccmn_3, ccmn(x0, x1, ZCFlag, cs)) 220 TEST_NONE(ccmp_0, ccmp(w0, 8, NVFlag, mi)) 221 TEST_NONE(ccmp_1, ccmp(x0, 19, ZVFlag, cc)) 222 TEST_NONE(ccmp_2, ccmp(w0, w1, NVFlag, ne)) 223 TEST_NONE(ccmp_3, ccmp(x0, x1, NZVFlag, cs)) 224 TEST_NONE(cinc_0, cinc(w0, w1, eq)) 225 TEST_NONE(cinc_1, cinc(x0, x1, le)) 226 TEST_NONE(cinv_0, cinv(w0, w1, cs)) 227 TEST_NONE(cinv_1, cinv(x0, x1, cc)) 228 TEST_NONE(clrex_0, clrex(10)) 229 TEST_NONE(cls_0, cls(w0, w1)) 230 TEST_NONE(cls_1, cls(x0, x1)) 231 TEST_NONE(clz_0, clz(w0, w1)) 232 TEST_NONE(clz_1, clz(x0, x1)) 233 TEST_NONE(cmn_0, cmn(w0, Operand(w1, UXTH, 2))) 234 TEST_NONE(cmn_1, cmn(x0, Operand(x1, SXTX, 1))) 235 TEST_NONE(cmn_2, cmn(x0, Operand(w1, SXTW, 3))) 236 TEST_NONE(cmn_3, cmn(w0, 0x2e5 << 12)) 237 TEST_NONE(cmn_4, cmn(x0, 0xb48)) 238 TEST_NONE(cmn_5, cmn(w0, Operand(w1, LSR, 9))) 239 TEST_NONE(cmn_6, cmn(x0, Operand(x1, LSL, 50))) 240 TEST_NONE(cmp_0, cmp(w0, Operand(w1, UXTB, 3))) 241 TEST_NONE(cmp_1, cmp(x0, Operand(x1, SXTX, 0))) 242 TEST_NONE(cmp_2, cmp(x0, Operand(w1, SXTB, 0))) 243 TEST_NONE(cmp_3, cmp(w0, 0xb44 << 12)) 244 TEST_NONE(cmp_4, cmp(x0, 0x48 << 12)) 245 TEST_NONE(cmp_5, cmp(w0, Operand(w1, LSL, 1))) 246 TEST_NONE(cmp_6, cmp(x0, Operand(x1, ASR, 4))) 247 TEST_NONE(cneg_0, cneg(w0, w1, mi)) 248 TEST_NONE(cneg_1, cneg(x0, x1, cs)) 249 TEST_NONE(csdb_0, csdb()) 250 TEST_NONE(csel_0, csel(w0, w1, w2, cs)) 251 TEST_NONE(csel_1, csel(x0, x1, x2, cc)) 252 TEST_NONE(csetm_0, csetm(w0, vc)) 253 TEST_NONE(csetm_1, csetm(x0, pl)) 254 TEST_NONE(cset_0, cset(w0, vc)) 255 TEST_NONE(cset_1, cset(x0, lt)) 256 TEST_NONE(csinc_0, csinc(w0, w1, w2, lt)) 257 TEST_NONE(csinc_1, csinc(x0, x1, x2, cs)) 258 TEST_NONE(csinv_0, csinv(w0, w1, w2, cc)) 259 TEST_NONE(csinv_1, csinv(x0, x1, x2, ne)) 260 TEST_NONE(csneg_0, csneg(w0, w1, w2, ge)) 261 TEST_NONE(csneg_1, csneg(x0, x1, x2, cc)) 262 TEST_NONE(dc_0, dc(CIVAC, x0)) 263 TEST_NONE(eon_0, eon(w0, w1, Operand(w2, ASR, 3))) 264 TEST_NONE(eon_1, eon(x0, x1, Operand(x2, LSL, 28))) 265 TEST_NONE(eor_0, eor(w0, w1, 0xf0)) 266 TEST_NONE(eor_1, eor(x0, x1, 0x1e000)) 267 TEST_NONE(eor_2, eor(w0, w1, Operand(w2, LSL, 24))) 268 TEST_NONE(eor_3, eor(x0, x1, Operand(x2, ASR, 16))) 269 TEST_NONE(extr_0, extr(w0, w1, w2, 17)) 270 TEST_NONE(extr_1, extr(x0, x1, x2, 8)) 271 TEST_NONE(extr_2, extr(x0, x1, x2, 50)) 272 TEST_NONE(hlt_0, hlt(0x7fb7)) 273 TEST_NONE(ic_0, ic(IVAU, x0)) 274 TEST_NONE(ldar_0, ldar(w0, MemOperand(x1, 0))) 275 TEST_NONE(ldar_1, ldar(x0, MemOperand(x1, 0))) 276 TEST_NONE(ldarb_0, ldarb(w0, MemOperand(x1, 0))) 277 TEST_NONE(ldarh_0, ldarh(w0, MemOperand(x1, 0))) 278 TEST_NONE(ldaxp_0, ldaxp(w0, w1, MemOperand(x2, 0))) 279 TEST_NONE(ldaxp_1, ldaxp(x0, x1, MemOperand(x2, 0))) 280 TEST_NONE(ldaxr_0, ldaxr(w0, MemOperand(x1, 0))) 281 TEST_NONE(ldaxr_1, ldaxr(x0, MemOperand(x1, 0))) 282 TEST_NONE(ldaxrb_0, ldaxrb(w0, MemOperand(x1, 0))) 283 TEST_NONE(ldaxrh_0, ldaxrh(w0, MemOperand(x1, 0))) 284 TEST_NONE(ldnp_0, ldnp(w0, w1, MemOperand(x2, 12))) 285 TEST_NONE(ldnp_1, ldnp(x0, x1, MemOperand(x2, 304))) 286 TEST_NONE(ldpsw_0, ldpsw(x0, x1, MemOperand(x2, -212))) 287 TEST_NONE(ldpsw_1, ldpsw(x0, x1, MemOperand(x2, -36, PostIndex))) 288 TEST_NONE(ldpsw_2, ldpsw(x0, x1, MemOperand(x2, 104, PreIndex))) 289 TEST_NONE(ldp_0, ldp(w0, w1, MemOperand(x2, -212))) 290 TEST_NONE(ldp_1, ldp(w0, w1, MemOperand(x2, -212, PostIndex))) 291 TEST_NONE(ldp_2, ldp(w0, w1, MemOperand(x2, -252, PreIndex))) 292 TEST_NONE(ldp_3, ldp(x0, x1, MemOperand(x2, 336))) 293 TEST_NONE(ldp_4, ldp(x0, x1, MemOperand(x2, 8, PostIndex))) 294 TEST_NONE(ldp_5, ldp(x0, x1, MemOperand(x2, 360, PreIndex))) 295 TEST_NONE(ldrb_0, ldrb(w0, MemOperand(x1, -219, PostIndex))) 296 TEST_NONE(ldrb_1, ldrb(w0, MemOperand(x1, -137, PreIndex))) 297 TEST_NONE(ldrb_2, ldrb(w0, MemOperand(x1, 4022))) 298 TEST_NONE(ldrb_3, ldrb(w0, MemOperand(x1, x2, LSL, 0))) 299 TEST_NONE(ldrb_4, ldrb(w0, MemOperand(x1, w2, SXTW, 0))) 300 TEST_NONE(ldrb_5, ldrb(w0, MemOperand(x1, x2, SXTX, 0))) 301 TEST_NONE(ldrh_0, ldrh(w0, MemOperand(x1, -135, PostIndex))) 302 TEST_NONE(ldrh_1, ldrh(w0, MemOperand(x1, 52, PreIndex))) 303 TEST_NONE(ldrh_2, ldrh(w0, MemOperand(x1, 4410))) 304 TEST_NONE(ldrh_3, ldrh(w0, MemOperand(x1, w2, UXTW, 1))) 305 TEST_NONE(ldrh_4, ldrh(w0, MemOperand(x1, x2, SXTX, 1))) 306 TEST_NONE(ldrsb_0, ldrsb(w0, MemOperand(x1, 160, PostIndex))) 307 TEST_NONE(ldrsb_1, ldrsb(w0, MemOperand(x1, -253, PreIndex))) 308 TEST_NONE(ldrsb_2, ldrsb(w0, MemOperand(x1, 147))) 309 TEST_NONE(ldrsb_3, ldrsb(x0, MemOperand(x1, 33, PostIndex))) 310 TEST_NONE(ldrsb_4, ldrsb(x0, MemOperand(x1, 11, PreIndex))) 311 TEST_NONE(ldrsb_5, ldrsb(x0, MemOperand(x1, 2742))) 312 TEST_NONE(ldrsb_6, ldrsb(w0, MemOperand(x1, x2, LSL, 0))) 313 TEST_NONE(ldrsb_7, ldrsb(w0, MemOperand(x1, w2, UXTW, 0))) 314 TEST_NONE(ldrsb_8, ldrsb(w0, MemOperand(x1, x2, SXTX, 0))) 315 TEST_NONE(ldrsb_9, ldrsb(x0, MemOperand(x1, x2, LSL, 0))) 316 TEST_NONE(ldrsb_10, ldrsb(x0, MemOperand(x1, w2, SXTW, 0))) 317 TEST_NONE(ldrsb_11, ldrsb(x0, MemOperand(x1, x2, SXTX, 0))) 318 TEST_NONE(ldrsh_0, ldrsh(w0, MemOperand(x1, 11, PostIndex))) 319 TEST_NONE(ldrsh_1, ldrsh(w0, MemOperand(x1, -34, PreIndex))) 320 TEST_NONE(ldrsh_2, ldrsh(w0, MemOperand(x1, 6212))) 321 TEST_NONE(ldrsh_3, ldrsh(x0, MemOperand(x1, -78, PostIndex))) 322 TEST_NONE(ldrsh_4, ldrsh(x0, MemOperand(x1, 72, PreIndex))) 323 TEST_NONE(ldrsh_5, ldrsh(x0, MemOperand(x1, 6232))) 324 TEST_NONE(ldrsh_6, ldrsh(w0, MemOperand(x1, w2, UXTW, 0))) 325 TEST_NONE(ldrsh_7, ldrsh(w0, MemOperand(x1, x2, LSL, 0))) 326 TEST_NONE(ldrsh_8, ldrsh(x0, MemOperand(x1, w2, SXTW, 0))) 327 TEST_NONE(ldrsh_9, ldrsh(x0, MemOperand(x1, x2, SXTX, 1))) 328 TEST_NONE(ldrsw_0, ldrsw(x0, MemOperand(x1, 73, PostIndex))) 329 TEST_NONE(ldrsw_1, ldrsw(x0, MemOperand(x1, 13, PreIndex))) 330 TEST_NONE(ldrsw_2, ldrsw(x0, MemOperand(x1, 2192))) 331 TEST_NONE(ldrsw_3, ldrsw(x0, 0x16279)) 332 TEST_NONE(ldrsw_4, ldrsw(x0, MemOperand(x1, w2, SXTW, 0))) 333 TEST_NONE(ldrsw_5, ldrsw(x0, MemOperand(x1, x2, LSL, 2))) 334 TEST_NONE(ldr_0, ldr(w0, MemOperand(x1, -169, PostIndex))) 335 TEST_NONE(ldr_1, ldr(w0, MemOperand(x1, 16, PreIndex))) 336 TEST_NONE(ldr_2, ldr(w0, MemOperand(x1, 13080))) 337 TEST_NONE(ldr_3, ldr(x0, MemOperand(x1, 3, PostIndex))) 338 TEST_NONE(ldr_4, ldr(x0, MemOperand(x1, -27, PreIndex))) 339 TEST_NONE(ldr_5, ldr(x0, MemOperand(x1, 14016))) 340 TEST_NONE(ldr_6, ldr(w0, 0x21ada)) 341 TEST_NONE(ldr_7, ldr(x0, 0x2a87d)) 342 TEST_NONE(ldr_8, ldr(w0, MemOperand(x1, w2, SXTW, 0))) 343 TEST_NONE(ldr_9, ldr(w0, MemOperand(x1, x2, LSL, 0))) 344 TEST_NONE(ldr_10, ldr(x0, MemOperand(x1, w2, UXTW, 3))) 345 TEST_NONE(ldr_11, ldr(x0, MemOperand(x1, x2, LSL, 3))) 346 TEST_NONE(ldurb_0, ldurb(w0, MemOperand(x1, 58))) 347 TEST_NONE(ldurh_0, ldurh(w0, MemOperand(x1, -222))) 348 TEST_NONE(ldursb_0, ldursb(w0, MemOperand(x1, -216))) 349 TEST_NONE(ldursb_1, ldursb(x0, MemOperand(x1, 196))) 350 TEST_NONE(ldursh_0, ldursh(w0, MemOperand(x1, -61))) 351 TEST_NONE(ldursh_1, ldursh(x0, MemOperand(x1, -255))) 352 TEST_NONE(ldursw_0, ldursw(x0, MemOperand(x1, -206))) 353 TEST_NONE(ldur_0, ldur(w0, MemOperand(x1, 71))) 354 TEST_NONE(ldur_1, ldur(x0, MemOperand(x1, 70))) 355 TEST_NONE(ldxp_0, ldxp(w0, w1, MemOperand(x2, 0))) 356 TEST_NONE(ldxp_1, ldxp(x0, x1, MemOperand(x2, 0))) 357 TEST_NONE(ldxr_0, ldxr(w0, MemOperand(x1, 0))) 358 TEST_NONE(ldxr_1, ldxr(x0, MemOperand(x1, 0))) 359 TEST_NONE(ldxrb_0, ldxrb(w0, MemOperand(x1, 0))) 360 TEST_NONE(ldxrh_0, ldxrh(w0, MemOperand(x1, 0))) 361 TEST_NONE(lslv_0, lslv(w0, w1, w2)) 362 TEST_NONE(lslv_1, lslv(x0, x1, x2)) 363 TEST_NONE(lsrv_0, lsrv(w0, w1, w2)) 364 TEST_NONE(lsrv_1, lsrv(x0, x1, x2)) 365 TEST_NONE(madd_0, madd(w0, w1, w2, w3)) 366 TEST_NONE(madd_1, madd(x0, x1, x2, x3)) 367 TEST_NONE(mneg_0, mneg(w0, w1, w2)) 368 TEST_NONE(mneg_1, mneg(x0, x1, x2)) 369 TEST_NONE(movk_0, movk(w0, UINT32_C(0xee40))) 370 TEST_NONE(movk_1, movk(x0, UINT64_C(0xfff2) << 16)) 371 TEST_NONE(movn_0, movn(w0, UINT32_C(0xbd2f))) 372 TEST_NONE(movn_1, movn(x0, UINT64_C(0x560c) << 16)) 373 TEST_NONE(movz_0, movz(w0, UINT32_C(0x9028) << 16)) 374 TEST_NONE(movz_1, movz(x0, UINT64_C(0xf525))) 375 TEST_NONE(mov_0, mov(w0, w1)) 376 TEST_NONE(mov_1, mov(x0, x1)) 377 TEST_NONE(mov_2, mov(w0, w1)) 378 TEST_NONE(mov_3, mov(x0, x1)) 379 TEST_NONE(mrs_0, mrs(x0, FPCR)) 380 TEST_NONE(msr_0, msr(FPCR, x0)) 381 TEST_NONE(msub_0, msub(w0, w1, w2, w3)) 382 TEST_NONE(msub_1, msub(x0, x1, x2, x3)) 383 TEST_NONE(mul_0, mul(w0, w1, w2)) 384 TEST_NONE(mul_1, mul(x0, x1, x2)) 385 TEST_NONE(mvn_0, mvn(w0, Operand(w1, LSL, 7))) 386 TEST_NONE(mvn_1, mvn(x0, Operand(x1, LSL, 40))) 387 TEST_NONE(negs_0, negs(w0, Operand(w1, LSL, 21))) 388 TEST_NONE(negs_1, negs(x0, Operand(x1, LSL, 57))) 389 TEST_NONE(neg_0, neg(w0, Operand(w1, LSR, 18))) 390 TEST_NONE(neg_1, neg(x0, Operand(x1, ASR, 33))) 391 TEST_NONE(ngcs_0, ngcs(w0, w1)) 392 TEST_NONE(ngcs_1, ngcs(x0, x1)) 393 TEST_NONE(ngc_0, ngc(w0, w1)) 394 TEST_NONE(ngc_1, ngc(x0, x1)) 395 TEST_NONE(nop_0, nop()) 396 TEST_NONE(orn_0, orn(w0, w1, Operand(w2, LSL, 6))) 397 TEST_NONE(orn_1, orn(x0, x1, Operand(x2, LSL, 63))) 398 TEST_NONE(orr_0, orr(w0, w1, 0x780000)) 399 TEST_NONE(orr_1, orr(x0, x1, 0x1e0000)) 400 TEST_NONE(orr_2, orr(w0, w1, Operand(w2, ASR, 24))) 401 TEST_NONE(orr_3, orr(x0, x1, Operand(x2, LSR, 2))) 402 TEST_NONE(prfm_0, prfm(PLDL2STRM, MemOperand(x0, 832))) 403 TEST_NONE(prfm_1, prfm(PSTL1STRM, 0x2c2fa)) 404 TEST_NONE(prfm_2, prfm(PLDL1KEEP, MemOperand(x0, w1, SXTW, 0))) 405 TEST_NONE(prfm_3, prfm(PSTL3STRM, MemOperand(x0, x1, SXTX, 0))) 406 TEST_NONE(prfum_0, prfum(PSTL3KEEP, MemOperand(x0, 47))) 407 TEST_NONE(rbit_0, rbit(w0, w1)) 408 TEST_NONE(rbit_1, rbit(x0, x1)) 409 TEST_NONE(ret_0, ret(x0)) 410 TEST_NONE(rev_0, rev(w0, w1)) 411 TEST_NONE(rev_1, rev(x0, x1)) 412 TEST_NONE(rev16_0, rev16(w0, w1)) 413 TEST_NONE(rev16_1, rev16(x0, x1)) 414 TEST_NONE(rev32_0, rev32(x0, x1)) 415 TEST_NONE(rorv_0, rorv(w0, w1, w2)) 416 TEST_NONE(rorv_1, rorv(x0, x1, x2)) 417 TEST_NONE(sbc_0, sbc(w0, w1, w2)) 418 TEST_NONE(sbc_1, sbc(x0, x1, x2)) 419 TEST_NONE(sbcs_0, sbcs(w0, w1, w2)) 420 TEST_NONE(sbcs_1, sbcs(x0, x1, x2)) 421 TEST_NONE(sbfiz_0, sbfiz(w0, w1, 28, 2)) 422 TEST_NONE(sbfiz_1, sbfiz(x0, x1, 46, 5)) 423 TEST_NONE(sbfm_0, sbfm(w0, w1, 9, 11)) 424 TEST_NONE(sbfm_1, sbfm(x0, x1, 22, 22)) 425 TEST_NONE(sbfx_0, sbfx(w0, w1, 15, 9)) 426 TEST_NONE(sbfx_1, sbfx(x0, x1, 21, 16)) 427 TEST_NONE(sdiv_0, sdiv(w0, w1, w2)) 428 TEST_NONE(sdiv_1, sdiv(x0, x1, x2)) 429 TEST_NONE(smaddl_0, smaddl(x0, w1, w2, x3)) 430 TEST_NONE(smsubl_0, smsubl(x0, w1, w2, x3)) 431 TEST_NONE(smulh_0, smulh(x0, x1, x2)) 432 TEST_NONE(smull_0, smull(x0, w1, w2)) 433 TEST_NONE(stlr_0, stlr(w0, MemOperand(x1, 0))) 434 TEST_NONE(stlr_1, stlr(x0, MemOperand(x1, 0))) 435 TEST_NONE(stlrb_0, stlrb(w0, MemOperand(x1, 0))) 436 TEST_NONE(stlrh_0, stlrh(w0, MemOperand(x1, 0))) 437 TEST_NONE(stlxp_0, stlxp(w0, w1, w2, MemOperand(x3, 0))) 438 TEST_NONE(stlxp_1, stlxp(w0, x1, x2, MemOperand(x3, 0))) 439 TEST_NONE(stlxr_0, stlxr(w0, w1, MemOperand(x2, 0))) 440 TEST_NONE(stlxr_1, stlxr(w0, x1, MemOperand(x2, 0))) 441 TEST_NONE(stlxrb_0, stlxrb(w0, w1, MemOperand(x2, 0))) 442 TEST_NONE(stlxrh_0, stlxrh(w0, w1, MemOperand(x2, 0))) 443 TEST_NONE(stnp_0, stnp(w0, w1, MemOperand(x2, -136))) 444 TEST_NONE(stnp_1, stnp(x0, x1, MemOperand(x2, 480))) 445 TEST_NONE(stp_0, stp(w0, w1, MemOperand(x2, 184))) 446 TEST_NONE(stp_1, stp(w0, w1, MemOperand(x2, -16, PostIndex))) 447 TEST_NONE(stp_2, stp(w0, w1, MemOperand(x2, -44, PreIndex))) 448 TEST_NONE(stp_3, stp(x0, x1, MemOperand(x2, 472))) 449 TEST_NONE(stp_4, stp(x0, x1, MemOperand(x2, 320, PostIndex))) 450 TEST_NONE(stp_5, stp(x0, x1, MemOperand(x2, -392, PreIndex))) 451 TEST_NONE(strb_0, strb(w0, MemOperand(x1, 146, PostIndex))) 452 TEST_NONE(strb_1, strb(w0, MemOperand(x1, -120, PreIndex))) 453 TEST_NONE(strb_2, strb(w0, MemOperand(x1, 1477))) 454 TEST_NONE(strb_3, strb(w0, MemOperand(x1, x2, LSL, 0))) 455 TEST_NONE(strb_4, strb(w0, MemOperand(x1, w2, SXTW, 0))) 456 TEST_NONE(strb_5, strb(w0, MemOperand(x1, x2, SXTX, 0))) 457 TEST_NONE(strh_0, strh(w0, MemOperand(x1, -228, PostIndex))) 458 TEST_NONE(strh_1, strh(w0, MemOperand(x1, 240, PreIndex))) 459 TEST_NONE(strh_2, strh(w0, MemOperand(x1, 742))) 460 TEST_NONE(strh_3, strh(w0, MemOperand(x1, w2, UXTW, 0))) 461 TEST_NONE(strh_4, strh(w0, MemOperand(x1, x2, LSL, 1))) 462 TEST_NONE(str_0, str(w0, MemOperand(x1, 161, PostIndex))) 463 TEST_NONE(str_1, str(w0, MemOperand(x1, -86, PreIndex))) 464 TEST_NONE(str_2, str(w0, MemOperand(x1, 9200))) 465 TEST_NONE(str_3, str(x0, MemOperand(x1, 121, PostIndex))) 466 TEST_NONE(str_4, str(x0, MemOperand(x1, -6, PreIndex))) 467 TEST_NONE(str_5, str(x0, MemOperand(x1, 28952))) 468 TEST_NONE(str_6, str(w0, MemOperand(x1, w2, SXTW, 2))) 469 TEST_NONE(str_7, str(w0, MemOperand(x1, x2, LSL, 2))) 470 TEST_NONE(str_8, str(x0, MemOperand(x1, w2, UXTW, 0))) 471 TEST_NONE(str_9, str(x0, MemOperand(x1, x2, SXTX, 0))) 472 TEST_NONE(sturb_0, sturb(w0, MemOperand(x1, 67))) 473 TEST_NONE(sturh_0, sturh(w0, MemOperand(x1, 173))) 474 TEST_NONE(stur_0, stur(w0, MemOperand(x1, 151))) 475 TEST_NONE(stur_1, stur(x0, MemOperand(x1, 134))) 476 TEST_NONE(stxp_0, stxp(w0, w1, w2, MemOperand(x3, 0))) 477 TEST_NONE(stxp_1, stxp(w0, x1, x2, MemOperand(x3, 0))) 478 TEST_NONE(stxr_0, stxr(w0, w1, MemOperand(x2, 0))) 479 TEST_NONE(stxr_1, stxr(w0, x1, MemOperand(x2, 0))) 480 TEST_NONE(stxrb_0, stxrb(w0, w1, MemOperand(x2, 0))) 481 TEST_NONE(stxrh_0, stxrh(w0, w1, MemOperand(x2, 0))) 482 TEST_NONE(subs_0, subs(w0, w1, Operand(w2, SXTH, 0))) 483 TEST_NONE(subs_1, subs(x0, x1, Operand(x2, UXTX, 3))) 484 TEST_NONE(subs_2, subs(x0, x1, Operand(w2, UXTB, 3))) 485 TEST_NONE(subs_3, subs(w0, w1, 0x812)) 486 TEST_NONE(subs_4, subs(x0, x1, 0x915)) 487 TEST_NONE(subs_5, subs(w0, w1, Operand(w2, ASR, 7))) 488 TEST_NONE(subs_6, subs(x0, x1, Operand(x2, LSR, 45))) 489 TEST_NONE(sub_0, sub(w0, w1, Operand(w2, SXTW, 0))) 490 TEST_NONE(sub_1, sub(x0, x1, Operand(x2, UXTX, 3))) 491 TEST_NONE(sub_2, sub(x0, x1, Operand(w2, UXTB, 2))) 492 TEST_NONE(sub_3, sub(w0, w1, 0x492 << 12)) 493 TEST_NONE(sub_4, sub(x0, x1, 0xa56 << 12)) 494 TEST_NONE(sub_5, sub(w0, w1, Operand(w2, ASR, 2))) 495 TEST_NONE(sub_6, sub(x0, x1, Operand(x2, ASR, 45))) 496 TEST_NONE(svc_0, svc(0x1220)) 497 TEST_NONE(sxtb_0, sxtb(w0, w1)) 498 TEST_NONE(sxtb_1, sxtb(x0, w1)) 499 TEST_NONE(sxth_0, sxth(w0, w1)) 500 TEST_NONE(sxth_1, sxth(x0, w1)) 501 TEST_NONE(sxtw_0, sxtw(x0, w1)) 502 TEST_NONE(sys_0, sys(6, 10, 8, 3, x0)) 503 TEST_NONE(sys_1, sys(0x2ae9, x0)) 504 TEST_NONE(tbnz_0, tbnz(x0, 0, &label)) 505 TEST_NONE(tbnz_1, tbnz(x0, 37, &label)) 506 TEST_NONE(tbnz_2, tbnz(w0, 20, &label)) 507 TEST_NONE(tbz_0, tbz(x0, 24, &label)) 508 TEST_NONE(tbz_1, tbz(x0, 60, &label)) 509 TEST_NONE(tbz_2, tbz(w0, 13, &label)) 510 TEST_NONE(tst_0, tst(w0, 0x3c0)) 511 TEST_NONE(tst_1, tst(x0, 0x3c00)) 512 TEST_NONE(tst_2, tst(w0, Operand(w1, LSL, 12))) 513 TEST_NONE(tst_3, tst(x0, Operand(x1, ASR, 16))) 514 TEST_NONE(ubfiz_0, ubfiz(w0, w1, 10, 9)) 515 TEST_NONE(ubfiz_1, ubfiz(x0, x1, 13, 49)) 516 TEST_NONE(ubfm_0, ubfm(w0, w1, 18, 3)) 517 TEST_NONE(ubfm_1, ubfm(x0, x1, 54, 30)) 518 TEST_NONE(ubfx_0, ubfx(w0, w1, 24, 7)) 519 TEST_NONE(ubfx_1, ubfx(x0, x1, 11, 21)) 520 TEST_NONE(udiv_0, udiv(w0, w1, w2)) 521 TEST_NONE(udiv_1, udiv(x0, x1, x2)) 522 TEST_NONE(umaddl_0, umaddl(x0, w1, w2, x3)) 523 TEST_NONE(umsubl_0, umsubl(x0, w1, w2, x3)) 524 TEST_NONE(umulh_0, umulh(x0, x1, x2)) 525 TEST_NONE(umull_0, umull(x0, w1, w2)) 526 TEST_NONE(uxtb_0, uxtb(w0, w1)) 527 TEST_NONE(uxth_0, uxth(w0, w1)) 528 529 #define TEST_FP(NAME, ASM) \ 530 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kFP), FP_##NAME, ASM) 531 TEST_FP(fabs_0, fabs(d0, d1)) 532 TEST_FP(fabs_1, fabs(s0, s1)) 533 TEST_FP(fadd_0, fadd(d0, d1, d2)) 534 TEST_FP(fadd_1, fadd(s0, s1, s2)) 535 TEST_FP(fccmpe_0, fccmpe(d0, d1, NCFlag, hi)) 536 TEST_FP(fccmpe_1, fccmpe(s0, s1, NZCFlag, ne)) 537 TEST_FP(fccmp_0, fccmp(d0, d1, NZCVFlag, pl)) 538 TEST_FP(fccmp_1, fccmp(s0, s1, ZCVFlag, eq)) 539 TEST_FP(fcmpe_0, fcmpe(d0, 0.0)) 540 TEST_FP(fcmpe_1, fcmpe(d0, d1)) 541 TEST_FP(fcmpe_2, fcmpe(s0, 0.0)) 542 TEST_FP(fcmpe_3, fcmpe(s0, s1)) 543 TEST_FP(fcmp_0, fcmp(d0, 0.0)) 544 TEST_FP(fcmp_1, fcmp(d0, d1)) 545 TEST_FP(fcmp_2, fcmp(s0, 0.0)) 546 TEST_FP(fcmp_3, fcmp(s0, s1)) 547 TEST_FP(fcsel_0, fcsel(d0, d1, d2, cs)) 548 TEST_FP(fcsel_1, fcsel(s0, s1, s2, ne)) 549 TEST_FP(fcvtas_0, fcvtas(w0, d1)) 550 TEST_FP(fcvtas_1, fcvtas(w0, s1)) 551 TEST_FP(fcvtas_2, fcvtas(x0, d1)) 552 TEST_FP(fcvtas_3, fcvtas(x0, s1)) 553 TEST_FP(fcvtau_0, fcvtau(w0, d1)) 554 TEST_FP(fcvtau_1, fcvtau(w0, s1)) 555 TEST_FP(fcvtau_2, fcvtau(x0, d1)) 556 TEST_FP(fcvtau_3, fcvtau(x0, s1)) 557 TEST_FP(fcvtms_0, fcvtms(w0, d1)) 558 TEST_FP(fcvtms_1, fcvtms(w0, s1)) 559 TEST_FP(fcvtms_2, fcvtms(x0, d1)) 560 TEST_FP(fcvtms_3, fcvtms(x0, s1)) 561 TEST_FP(fcvtmu_0, fcvtmu(w0, d1)) 562 TEST_FP(fcvtmu_1, fcvtmu(w0, s1)) 563 TEST_FP(fcvtmu_2, fcvtmu(x0, d1)) 564 TEST_FP(fcvtmu_3, fcvtmu(x0, s1)) 565 TEST_FP(fcvtns_0, fcvtns(w0, d1)) 566 TEST_FP(fcvtns_1, fcvtns(w0, s1)) 567 TEST_FP(fcvtns_2, fcvtns(x0, d1)) 568 TEST_FP(fcvtns_3, fcvtns(x0, s1)) 569 TEST_FP(fcvtnu_0, fcvtnu(w0, d1)) 570 TEST_FP(fcvtnu_1, fcvtnu(w0, s1)) 571 TEST_FP(fcvtnu_2, fcvtnu(x0, d1)) 572 TEST_FP(fcvtnu_3, fcvtnu(x0, s1)) 573 TEST_FP(fcvtps_0, fcvtps(w0, d1)) 574 TEST_FP(fcvtps_1, fcvtps(w0, s1)) 575 TEST_FP(fcvtps_2, fcvtps(x0, d1)) 576 TEST_FP(fcvtps_3, fcvtps(x0, s1)) 577 TEST_FP(fcvtpu_0, fcvtpu(w0, d1)) 578 TEST_FP(fcvtpu_1, fcvtpu(w0, s1)) 579 TEST_FP(fcvtpu_2, fcvtpu(x0, d1)) 580 TEST_FP(fcvtpu_3, fcvtpu(x0, s1)) 581 TEST_FP(fcvtzs_0, fcvtzs(w0, d1, 5)) 582 TEST_FP(fcvtzs_1, fcvtzs(w0, s1, 5)) 583 TEST_FP(fcvtzs_2, fcvtzs(x0, d1, 5)) 584 TEST_FP(fcvtzs_3, fcvtzs(x0, s1, 5)) 585 TEST_FP(fcvtzs_4, fcvtzs(w0, d1)) 586 TEST_FP(fcvtzs_5, fcvtzs(w0, s1)) 587 TEST_FP(fcvtzs_6, fcvtzs(x0, d1)) 588 TEST_FP(fcvtzs_7, fcvtzs(x0, s1)) 589 TEST_FP(fcvtzu_0, fcvtzu(w0, d1, 5)) 590 TEST_FP(fcvtzu_1, fcvtzu(w0, s1, 5)) 591 TEST_FP(fcvtzu_2, fcvtzu(x0, d1, 5)) 592 TEST_FP(fcvtzu_3, fcvtzu(x0, s1, 5)) 593 TEST_FP(fcvtzu_4, fcvtzu(w0, d1)) 594 TEST_FP(fcvtzu_5, fcvtzu(w0, s1)) 595 TEST_FP(fcvtzu_6, fcvtzu(x0, d1)) 596 TEST_FP(fcvtzu_7, fcvtzu(x0, s1)) 597 TEST_FP(fcvt_0, fcvt(d0, h1)) 598 TEST_FP(fcvt_1, fcvt(d0, s1)) 599 TEST_FP(fcvt_2, fcvt(h0, d1)) 600 TEST_FP(fcvt_3, fcvt(h0, s1)) 601 TEST_FP(fcvt_4, fcvt(s0, d1)) 602 TEST_FP(fcvt_5, fcvt(s0, h1)) 603 TEST_FP(fdiv_0, fdiv(d0, d1, d2)) 604 TEST_FP(fdiv_1, fdiv(s0, s1, s2)) 605 TEST_FP(fmadd_0, fmadd(d0, d1, d2, d3)) 606 TEST_FP(fmadd_1, fmadd(s0, s1, s2, s3)) 607 TEST_FP(fmaxnm_0, fmaxnm(d0, d1, d2)) 608 TEST_FP(fmaxnm_1, fmaxnm(s0, s1, s2)) 609 TEST_FP(fmax_0, fmax(d0, d1, d2)) 610 TEST_FP(fmax_1, fmax(s0, s1, s2)) 611 TEST_FP(fminnm_0, fminnm(d0, d1, d2)) 612 TEST_FP(fminnm_1, fminnm(s0, s1, s2)) 613 TEST_FP(fmin_0, fmin(d0, d1, d2)) 614 TEST_FP(fmin_1, fmin(s0, s1, s2)) 615 TEST_FP(fmov_0, fmov(d0, d1)) 616 TEST_FP(fmov_1, fmov(s0, s1)) 617 TEST_FP(fmov_2, fmov(w0, s1)) 618 TEST_FP(fmov_3, fmov(x0, d1)) 619 TEST_FP(fmov_4, fmov(d0, x1)) 620 TEST_FP(fmov_5, fmov(s0, w1)) 621 TEST_FP(fmov_6, fmov(d0, -0.15625)) 622 TEST_FP(fmov_7, fmov(s0, -2.875f)) 623 TEST_FP(fmsub_0, fmsub(d0, d1, d2, d3)) 624 TEST_FP(fmsub_1, fmsub(s0, s1, s2, s3)) 625 TEST_FP(fmul_0, fmul(d0, d1, d2)) 626 TEST_FP(fmul_1, fmul(s0, s1, s2)) 627 TEST_FP(fneg_0, fneg(d0, d1)) 628 TEST_FP(fneg_1, fneg(s0, s1)) 629 TEST_FP(fnmadd_0, fnmadd(d0, d1, d2, d3)) 630 TEST_FP(fnmadd_1, fnmadd(s0, s1, s2, s3)) 631 TEST_FP(fnmsub_0, fnmsub(d0, d1, d2, d3)) 632 TEST_FP(fnmsub_1, fnmsub(s0, s1, s2, s3)) 633 TEST_FP(fnmul_0, fnmul(d0, d1, d2)) 634 TEST_FP(fnmul_1, fnmul(s0, s1, s2)) 635 TEST_FP(frinta_0, frinta(d0, d1)) 636 TEST_FP(frinta_1, frinta(s0, s1)) 637 TEST_FP(frinti_0, frinti(d0, d1)) 638 TEST_FP(frinti_1, frinti(s0, s1)) 639 TEST_FP(frintm_0, frintm(d0, d1)) 640 TEST_FP(frintm_1, frintm(s0, s1)) 641 TEST_FP(frintn_0, frintn(d0, d1)) 642 TEST_FP(frintn_1, frintn(s0, s1)) 643 TEST_FP(frintp_0, frintp(d0, d1)) 644 TEST_FP(frintp_1, frintp(s0, s1)) 645 TEST_FP(frintx_0, frintx(d0, d1)) 646 TEST_FP(frintx_1, frintx(s0, s1)) 647 TEST_FP(frintz_0, frintz(d0, d1)) 648 TEST_FP(frintz_1, frintz(s0, s1)) 649 TEST_FP(fsqrt_0, fsqrt(d0, d1)) 650 TEST_FP(fsqrt_1, fsqrt(s0, s1)) 651 TEST_FP(fsub_0, fsub(d0, d1, d2)) 652 TEST_FP(fsub_1, fsub(s0, s1, s2)) 653 TEST_FP(ldnp_0, ldnp(d0, d1, MemOperand(x2, -32))) 654 TEST_FP(ldnp_1, ldnp(s0, s1, MemOperand(x2, -180))) 655 TEST_FP(ldp_0, ldp(d0, d1, MemOperand(x2, 112))) 656 TEST_FP(ldp_1, ldp(d0, d1, MemOperand(x2, 24, PostIndex))) 657 TEST_FP(ldp_2, ldp(d0, d1, MemOperand(x2, 192, PreIndex))) 658 TEST_FP(ldp_3, ldp(s0, s1, MemOperand(x2, -72))) 659 TEST_FP(ldp_4, ldp(s0, s1, MemOperand(x2, 0, PostIndex))) 660 TEST_FP(ldp_5, ldp(s0, s1, MemOperand(x2, 144, PreIndex))) 661 TEST_FP(ldr_0, ldr(d0, MemOperand(x1, -240, PostIndex))) 662 TEST_FP(ldr_1, ldr(d0, MemOperand(x1, 110, PreIndex))) 663 TEST_FP(ldr_2, ldr(d0, MemOperand(x1, 4048))) 664 TEST_FP(ldr_3, ldr(h0, MemOperand(x1, -76, PostIndex))) 665 TEST_FP(ldr_4, ldr(h0, MemOperand(x1, -124, PreIndex))) 666 TEST_FP(ldr_5, ldr(h0, MemOperand(x1, 6230))) 667 TEST_FP(ldr_6, ldr(s0, MemOperand(x1, 148, PostIndex))) 668 TEST_FP(ldr_7, ldr(s0, MemOperand(x1, 68, PreIndex))) 669 TEST_FP(ldr_8, ldr(s0, MemOperand(x1, 7424))) 670 TEST_FP(ldr_9, ldr(d0, 0x35a20)) 671 TEST_FP(ldr_10, ldr(s0, 0x1053a)) 672 TEST_FP(ldr_11, ldr(d0, MemOperand(x1, w2, SXTW, 3))) 673 TEST_FP(ldr_12, ldr(d0, MemOperand(x1, x2, SXTX, 3))) 674 TEST_FP(ldr_13, ldr(h0, MemOperand(x1, w2, UXTW, 1))) 675 TEST_FP(ldr_14, ldr(h0, MemOperand(x1, x2, SXTX, 0))) 676 TEST_FP(ldr_15, ldr(s0, MemOperand(x1, w2, SXTW, 2))) 677 TEST_FP(ldr_16, ldr(s0, MemOperand(x1, x2, SXTX, 2))) 678 TEST_FP(ldur_0, ldur(d0, MemOperand(x1, -146))) 679 TEST_FP(ldur_1, ldur(h0, MemOperand(x1, -117))) 680 TEST_FP(ldur_2, ldur(s0, MemOperand(x1, 209))) 681 TEST_FP(scvtf_0, scvtf(d0, w1, 5)) 682 TEST_FP(scvtf_1, scvtf(d0, x1, 5)) 683 TEST_FP(scvtf_2, scvtf(s0, w1, 5)) 684 TEST_FP(scvtf_3, scvtf(s0, x1, 5)) 685 TEST_FP(scvtf_4, scvtf(d0, w1)) 686 TEST_FP(scvtf_5, scvtf(d0, x1)) 687 TEST_FP(scvtf_6, scvtf(s0, w1)) 688 TEST_FP(scvtf_7, scvtf(s0, x1)) 689 TEST_FP(stnp_0, stnp(d0, d1, MemOperand(x2, 304))) 690 TEST_FP(stnp_1, stnp(s0, s1, MemOperand(x2, -12))) 691 TEST_FP(stp_0, stp(d0, d1, MemOperand(x2, 168))) 692 TEST_FP(stp_1, stp(d0, d1, MemOperand(x2, -376, PostIndex))) 693 TEST_FP(stp_2, stp(d0, d1, MemOperand(x2, 296, PreIndex))) 694 TEST_FP(stp_3, stp(s0, s1, MemOperand(x2, -256))) 695 TEST_FP(stp_4, stp(s0, s1, MemOperand(x2, 208, PostIndex))) 696 TEST_FP(stp_5, stp(s0, s1, MemOperand(x2, -4, PreIndex))) 697 TEST_FP(str_0, str(d0, MemOperand(x1, -181, PostIndex))) 698 TEST_FP(str_1, str(d0, MemOperand(x1, 91, PreIndex))) 699 TEST_FP(str_2, str(d0, MemOperand(x1, 32672))) 700 TEST_FP(str_3, str(h0, MemOperand(x1, -5, PostIndex))) 701 TEST_FP(str_4, str(h0, MemOperand(x1, 213, PreIndex))) 702 TEST_FP(str_5, str(h0, MemOperand(x1, 6406))) 703 TEST_FP(str_6, str(s0, MemOperand(x1, -81, PostIndex))) 704 TEST_FP(str_7, str(s0, MemOperand(x1, -126, PreIndex))) 705 TEST_FP(str_8, str(s0, MemOperand(x1, 15692))) 706 TEST_FP(str_9, str(d0, MemOperand(x1, w2, SXTW, 0))) 707 TEST_FP(str_10, str(d0, MemOperand(x1, x2, LSL, 0))) 708 TEST_FP(str_11, str(h0, MemOperand(x1, w2, UXTW, 1))) 709 TEST_FP(str_12, str(h0, MemOperand(x1, x2, SXTX, 1))) 710 TEST_FP(str_13, str(s0, MemOperand(x1, w2, UXTW, 0))) 711 TEST_FP(str_14, str(s0, MemOperand(x1, x2, SXTX, 2))) 712 TEST_FP(stur_0, stur(d0, MemOperand(x1, 22))) 713 TEST_FP(stur_1, stur(h0, MemOperand(x1, -236))) 714 TEST_FP(stur_2, stur(s0, MemOperand(x1, 23))) 715 TEST_FP(ucvtf_0, ucvtf(d0, w1, 5)) 716 TEST_FP(ucvtf_1, ucvtf(d0, x1, 5)) 717 TEST_FP(ucvtf_2, ucvtf(s0, w1, 5)) 718 TEST_FP(ucvtf_3, ucvtf(s0, x1, 5)) 719 TEST_FP(ucvtf_4, ucvtf(d0, w1)) 720 TEST_FP(ucvtf_5, ucvtf(d0, x1)) 721 TEST_FP(ucvtf_6, ucvtf(s0, w1)) 722 TEST_FP(ucvtf_7, ucvtf(s0, x1)) 723 724 #define TEST_RAS(NAME, ASM) \ 725 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kRAS), RAS_##NAME, ASM) 726 TEST_RAS(esb_0, esb()) 727 728 #define TEST_NEON(NAME, ASM) \ 729 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kNEON), NEON_##NAME, ASM) 730 TEST_NEON(abs_0, abs(v0.V8B(), v1.V8B())) 731 TEST_NEON(abs_1, abs(v0.V16B(), v1.V16B())) 732 TEST_NEON(abs_2, abs(v0.V4H(), v1.V4H())) 733 TEST_NEON(abs_3, abs(v0.V8H(), v1.V8H())) 734 TEST_NEON(abs_4, abs(v0.V2S(), v1.V2S())) 735 TEST_NEON(abs_5, abs(v0.V4S(), v1.V4S())) 736 TEST_NEON(abs_6, abs(v0.V2D(), v1.V2D())) 737 TEST_NEON(abs_7, abs(d0, d1)) 738 TEST_NEON(addhn_0, addhn(v0.V8B(), v1.V8H(), v2.V8H())) 739 TEST_NEON(addhn_1, addhn(v0.V4H(), v1.V4S(), v2.V4S())) 740 TEST_NEON(addhn_2, addhn(v0.V2S(), v1.V2D(), v2.V2D())) 741 TEST_NEON(addhn2_0, addhn2(v0.V16B(), v1.V8H(), v2.V8H())) 742 TEST_NEON(addhn2_1, addhn2(v0.V8H(), v1.V4S(), v2.V4S())) 743 TEST_NEON(addhn2_2, addhn2(v0.V4S(), v1.V2D(), v2.V2D())) 744 TEST_NEON(addp_0, addp(d0, v1.V2D())) 745 TEST_NEON(addp_1, addp(v0.V8B(), v1.V8B(), v2.V8B())) 746 TEST_NEON(addp_2, addp(v0.V16B(), v1.V16B(), v2.V16B())) 747 TEST_NEON(addp_3, addp(v0.V4H(), v1.V4H(), v2.V4H())) 748 TEST_NEON(addp_4, addp(v0.V8H(), v1.V8H(), v2.V8H())) 749 TEST_NEON(addp_5, addp(v0.V2S(), v1.V2S(), v2.V2S())) 750 TEST_NEON(addp_6, addp(v0.V4S(), v1.V4S(), v2.V4S())) 751 TEST_NEON(addp_7, addp(v0.V2D(), v1.V2D(), v2.V2D())) 752 TEST_NEON(addv_0, addv(b0, v1.V8B())) 753 TEST_NEON(addv_1, addv(b0, v1.V16B())) 754 TEST_NEON(addv_2, addv(h0, v1.V4H())) 755 TEST_NEON(addv_3, addv(h0, v1.V8H())) 756 TEST_NEON(addv_4, addv(s0, v1.V4S())) 757 TEST_NEON(add_0, add(v0.V8B(), v1.V8B(), v2.V8B())) 758 TEST_NEON(add_1, add(v0.V16B(), v1.V16B(), v2.V16B())) 759 TEST_NEON(add_2, add(v0.V4H(), v1.V4H(), v2.V4H())) 760 TEST_NEON(add_3, add(v0.V8H(), v1.V8H(), v2.V8H())) 761 TEST_NEON(add_4, add(v0.V2S(), v1.V2S(), v2.V2S())) 762 TEST_NEON(add_5, add(v0.V4S(), v1.V4S(), v2.V4S())) 763 TEST_NEON(add_6, add(v0.V2D(), v1.V2D(), v2.V2D())) 764 TEST_NEON(add_7, add(d0, d1, d2)) 765 TEST_NEON(and_0, and_(v0.V8B(), v1.V8B(), v2.V8B())) 766 TEST_NEON(and_1, and_(v0.V16B(), v1.V16B(), v2.V16B())) 767 TEST_NEON(bic_0, bic(v0.V4H(), 0x55, 0)) 768 TEST_NEON(bic_1, bic(v0.V8H(), 0x3a, 0)) 769 TEST_NEON(bic_2, bic(v0.V2S(), 0xd8, 0)) 770 TEST_NEON(bic_3, bic(v0.V4S(), 0x15, 0)) 771 TEST_NEON(bic_4, bic(v0.V8B(), v1.V8B(), v2.V8B())) 772 TEST_NEON(bic_5, bic(v0.V16B(), v1.V16B(), v2.V16B())) 773 TEST_NEON(bif_0, bif(v0.V8B(), v1.V8B(), v2.V8B())) 774 TEST_NEON(bif_1, bif(v0.V16B(), v1.V16B(), v2.V16B())) 775 TEST_NEON(bit_0, bit(v0.V8B(), v1.V8B(), v2.V8B())) 776 TEST_NEON(bit_1, bit(v0.V16B(), v1.V16B(), v2.V16B())) 777 TEST_NEON(bsl_0, bsl(v0.V8B(), v1.V8B(), v2.V8B())) 778 TEST_NEON(bsl_1, bsl(v0.V16B(), v1.V16B(), v2.V16B())) 779 TEST_NEON(cls_0, cls(v0.V8B(), v1.V8B())) 780 TEST_NEON(cls_1, cls(v0.V16B(), v1.V16B())) 781 TEST_NEON(cls_2, cls(v0.V4H(), v1.V4H())) 782 TEST_NEON(cls_3, cls(v0.V8H(), v1.V8H())) 783 TEST_NEON(cls_4, cls(v0.V2S(), v1.V2S())) 784 TEST_NEON(cls_5, cls(v0.V4S(), v1.V4S())) 785 TEST_NEON(clz_0, clz(v0.V8B(), v1.V8B())) 786 TEST_NEON(clz_1, clz(v0.V16B(), v1.V16B())) 787 TEST_NEON(clz_2, clz(v0.V4H(), v1.V4H())) 788 TEST_NEON(clz_3, clz(v0.V8H(), v1.V8H())) 789 TEST_NEON(clz_4, clz(v0.V2S(), v1.V2S())) 790 TEST_NEON(clz_5, clz(v0.V4S(), v1.V4S())) 791 TEST_NEON(cmeq_0, cmeq(v0.V8B(), v1.V8B(), v2.V8B())) 792 TEST_NEON(cmeq_1, cmeq(v0.V16B(), v1.V16B(), v2.V16B())) 793 TEST_NEON(cmeq_2, cmeq(v0.V4H(), v1.V4H(), v2.V4H())) 794 TEST_NEON(cmeq_3, cmeq(v0.V8H(), v1.V8H(), v2.V8H())) 795 TEST_NEON(cmeq_4, cmeq(v0.V2S(), v1.V2S(), v2.V2S())) 796 TEST_NEON(cmeq_5, cmeq(v0.V4S(), v1.V4S(), v2.V4S())) 797 TEST_NEON(cmeq_6, cmeq(v0.V2D(), v1.V2D(), v2.V2D())) 798 TEST_NEON(cmeq_7, cmeq(d0, d1, d2)) 799 TEST_NEON(cmeq_8, cmeq(v0.V8B(), v1.V8B(), 0)) 800 TEST_NEON(cmeq_9, cmeq(v0.V16B(), v1.V16B(), 0)) 801 TEST_NEON(cmeq_10, cmeq(v0.V4H(), v1.V4H(), 0)) 802 TEST_NEON(cmeq_11, cmeq(v0.V8H(), v1.V8H(), 0)) 803 TEST_NEON(cmeq_12, cmeq(v0.V2S(), v1.V2S(), 0)) 804 TEST_NEON(cmeq_13, cmeq(v0.V4S(), v1.V4S(), 0)) 805 TEST_NEON(cmeq_14, cmeq(v0.V2D(), v1.V2D(), 0)) 806 TEST_NEON(cmeq_15, cmeq(d0, d1, 0)) 807 TEST_NEON(cmge_0, cmge(v0.V8B(), v1.V8B(), v2.V8B())) 808 TEST_NEON(cmge_1, cmge(v0.V16B(), v1.V16B(), v2.V16B())) 809 TEST_NEON(cmge_2, cmge(v0.V4H(), v1.V4H(), v2.V4H())) 810 TEST_NEON(cmge_3, cmge(v0.V8H(), v1.V8H(), v2.V8H())) 811 TEST_NEON(cmge_4, cmge(v0.V2S(), v1.V2S(), v2.V2S())) 812 TEST_NEON(cmge_5, cmge(v0.V4S(), v1.V4S(), v2.V4S())) 813 TEST_NEON(cmge_6, cmge(v0.V2D(), v1.V2D(), v2.V2D())) 814 TEST_NEON(cmge_7, cmge(d0, d1, d2)) 815 TEST_NEON(cmge_8, cmge(v0.V8B(), v1.V8B(), 0)) 816 TEST_NEON(cmge_9, cmge(v0.V16B(), v1.V16B(), 0)) 817 TEST_NEON(cmge_10, cmge(v0.V4H(), v1.V4H(), 0)) 818 TEST_NEON(cmge_11, cmge(v0.V8H(), v1.V8H(), 0)) 819 TEST_NEON(cmge_12, cmge(v0.V2S(), v1.V2S(), 0)) 820 TEST_NEON(cmge_13, cmge(v0.V4S(), v1.V4S(), 0)) 821 TEST_NEON(cmge_14, cmge(v0.V2D(), v1.V2D(), 0)) 822 TEST_NEON(cmge_15, cmge(d0, d1, 0)) 823 TEST_NEON(cmgt_0, cmgt(v0.V8B(), v1.V8B(), v2.V8B())) 824 TEST_NEON(cmgt_1, cmgt(v0.V16B(), v1.V16B(), v2.V16B())) 825 TEST_NEON(cmgt_2, cmgt(v0.V4H(), v1.V4H(), v2.V4H())) 826 TEST_NEON(cmgt_3, cmgt(v0.V8H(), v1.V8H(), v2.V8H())) 827 TEST_NEON(cmgt_4, cmgt(v0.V2S(), v1.V2S(), v2.V2S())) 828 TEST_NEON(cmgt_5, cmgt(v0.V4S(), v1.V4S(), v2.V4S())) 829 TEST_NEON(cmgt_6, cmgt(v0.V2D(), v1.V2D(), v2.V2D())) 830 TEST_NEON(cmgt_7, cmgt(d0, d1, d2)) 831 TEST_NEON(cmgt_8, cmgt(v0.V8B(), v1.V8B(), 0)) 832 TEST_NEON(cmgt_9, cmgt(v0.V16B(), v1.V16B(), 0)) 833 TEST_NEON(cmgt_10, cmgt(v0.V4H(), v1.V4H(), 0)) 834 TEST_NEON(cmgt_11, cmgt(v0.V8H(), v1.V8H(), 0)) 835 TEST_NEON(cmgt_12, cmgt(v0.V2S(), v1.V2S(), 0)) 836 TEST_NEON(cmgt_13, cmgt(v0.V4S(), v1.V4S(), 0)) 837 TEST_NEON(cmgt_14, cmgt(v0.V2D(), v1.V2D(), 0)) 838 TEST_NEON(cmgt_15, cmgt(d0, d1, 0)) 839 TEST_NEON(cmhi_0, cmhi(v0.V8B(), v1.V8B(), v2.V8B())) 840 TEST_NEON(cmhi_1, cmhi(v0.V16B(), v1.V16B(), v2.V16B())) 841 TEST_NEON(cmhi_2, cmhi(v0.V4H(), v1.V4H(), v2.V4H())) 842 TEST_NEON(cmhi_3, cmhi(v0.V8H(), v1.V8H(), v2.V8H())) 843 TEST_NEON(cmhi_4, cmhi(v0.V2S(), v1.V2S(), v2.V2S())) 844 TEST_NEON(cmhi_5, cmhi(v0.V4S(), v1.V4S(), v2.V4S())) 845 TEST_NEON(cmhi_6, cmhi(v0.V2D(), v1.V2D(), v2.V2D())) 846 TEST_NEON(cmhi_7, cmhi(d0, d1, d2)) 847 TEST_NEON(cmhs_0, cmhs(v0.V8B(), v1.V8B(), v2.V8B())) 848 TEST_NEON(cmhs_1, cmhs(v0.V16B(), v1.V16B(), v2.V16B())) 849 TEST_NEON(cmhs_2, cmhs(v0.V4H(), v1.V4H(), v2.V4H())) 850 TEST_NEON(cmhs_3, cmhs(v0.V8H(), v1.V8H(), v2.V8H())) 851 TEST_NEON(cmhs_4, cmhs(v0.V2S(), v1.V2S(), v2.V2S())) 852 TEST_NEON(cmhs_5, cmhs(v0.V4S(), v1.V4S(), v2.V4S())) 853 TEST_NEON(cmhs_6, cmhs(v0.V2D(), v1.V2D(), v2.V2D())) 854 TEST_NEON(cmhs_7, cmhs(d0, d1, d2)) 855 TEST_NEON(cmle_0, cmle(v0.V8B(), v1.V8B(), 0)) 856 TEST_NEON(cmle_1, cmle(v0.V16B(), v1.V16B(), 0)) 857 TEST_NEON(cmle_2, cmle(v0.V4H(), v1.V4H(), 0)) 858 TEST_NEON(cmle_3, cmle(v0.V8H(), v1.V8H(), 0)) 859 TEST_NEON(cmle_4, cmle(v0.V2S(), v1.V2S(), 0)) 860 TEST_NEON(cmle_5, cmle(v0.V4S(), v1.V4S(), 0)) 861 TEST_NEON(cmle_6, cmle(v0.V2D(), v1.V2D(), 0)) 862 TEST_NEON(cmle_7, cmle(d0, d1, 0)) 863 TEST_NEON(cmlt_0, cmlt(v0.V8B(), v1.V8B(), 0)) 864 TEST_NEON(cmlt_1, cmlt(v0.V16B(), v1.V16B(), 0)) 865 TEST_NEON(cmlt_2, cmlt(v0.V4H(), v1.V4H(), 0)) 866 TEST_NEON(cmlt_3, cmlt(v0.V8H(), v1.V8H(), 0)) 867 TEST_NEON(cmlt_4, cmlt(v0.V2S(), v1.V2S(), 0)) 868 TEST_NEON(cmlt_5, cmlt(v0.V4S(), v1.V4S(), 0)) 869 TEST_NEON(cmlt_6, cmlt(v0.V2D(), v1.V2D(), 0)) 870 TEST_NEON(cmlt_7, cmlt(d0, d1, 0)) 871 TEST_NEON(cmtst_0, cmtst(v0.V8B(), v1.V8B(), v2.V8B())) 872 TEST_NEON(cmtst_1, cmtst(v0.V16B(), v1.V16B(), v2.V16B())) 873 TEST_NEON(cmtst_2, cmtst(v0.V4H(), v1.V4H(), v2.V4H())) 874 TEST_NEON(cmtst_3, cmtst(v0.V8H(), v1.V8H(), v2.V8H())) 875 TEST_NEON(cmtst_4, cmtst(v0.V2S(), v1.V2S(), v2.V2S())) 876 TEST_NEON(cmtst_5, cmtst(v0.V4S(), v1.V4S(), v2.V4S())) 877 TEST_NEON(cmtst_6, cmtst(v0.V2D(), v1.V2D(), v2.V2D())) 878 TEST_NEON(cmtst_7, cmtst(d0, d1, d2)) 879 TEST_NEON(cnt_0, cnt(v0.V8B(), v1.V8B())) 880 TEST_NEON(cnt_1, cnt(v0.V16B(), v1.V16B())) 881 TEST_NEON(dup_0, dup(v0.V8B(), v1.B(), 11)) 882 TEST_NEON(dup_1, dup(v0.V16B(), v1.B(), 11)) 883 TEST_NEON(dup_2, dup(v0.V4H(), v1.H(), 2)) 884 TEST_NEON(dup_3, dup(v0.V8H(), v1.H(), 5)) 885 TEST_NEON(dup_4, dup(v0.V2S(), v1.S(), 3)) 886 TEST_NEON(dup_5, dup(v0.V4S(), v1.S(), 0)) 887 TEST_NEON(dup_6, dup(v0.V2D(), v1.D(), 0)) 888 TEST_NEON(dup_7, dup(b0, v1.B(), 14)) 889 TEST_NEON(dup_8, dup(h0, v1.H(), 7)) 890 TEST_NEON(dup_9, dup(s0, v1.S(), 2)) 891 TEST_NEON(dup_10, dup(d0, v1.D(), 0)) 892 TEST_NEON(dup_11, dup(v0.V8B(), w1)) 893 TEST_NEON(dup_12, dup(v0.V16B(), w1)) 894 TEST_NEON(dup_13, dup(v0.V4H(), w1)) 895 TEST_NEON(dup_14, dup(v0.V8H(), w1)) 896 TEST_NEON(dup_15, dup(v0.V2S(), w1)) 897 TEST_NEON(dup_16, dup(v0.V4S(), w1)) 898 TEST_NEON(dup_17, dup(v0.V2D(), x1)) 899 TEST_NEON(eor_0, eor(v0.V8B(), v1.V8B(), v2.V8B())) 900 TEST_NEON(eor_1, eor(v0.V16B(), v1.V16B(), v2.V16B())) 901 TEST_NEON(ext_0, ext(v0.V8B(), v1.V8B(), v2.V8B(), 3)) 902 TEST_NEON(ext_1, ext(v0.V16B(), v1.V16B(), v2.V16B(), 5)) 903 TEST_NEON(ins_0, ins(v0.B(), 6, v1.B(), 13)) 904 TEST_NEON(ins_1, ins(v0.H(), 1, v1.H(), 5)) 905 TEST_NEON(ins_2, ins(v0.S(), 2, v1.S(), 1)) 906 TEST_NEON(ins_3, ins(v0.D(), 1, v1.D(), 1)) 907 TEST_NEON(ins_4, ins(v0.B(), 15, w1)) 908 TEST_NEON(ins_5, ins(v0.H(), 4, w1)) 909 TEST_NEON(ins_6, ins(v0.S(), 2, w1)) 910 TEST_NEON(ins_7, ins(v0.D(), 1, x1)) 911 TEST_NEON(ld1r_0, ld1r(v0.V8B(), MemOperand(x1))) 912 TEST_NEON(ld1r_1, ld1r(v0.V16B(), MemOperand(x1))) 913 TEST_NEON(ld1r_2, ld1r(v0.V4H(), MemOperand(x1))) 914 TEST_NEON(ld1r_3, ld1r(v0.V8H(), MemOperand(x1))) 915 TEST_NEON(ld1r_4, ld1r(v0.V2S(), MemOperand(x1))) 916 TEST_NEON(ld1r_5, ld1r(v0.V4S(), MemOperand(x1))) 917 TEST_NEON(ld1r_6, ld1r(v0.V1D(), MemOperand(x1))) 918 TEST_NEON(ld1r_7, ld1r(v0.V2D(), MemOperand(x1))) 919 TEST_NEON(ld1r_8, ld1r(v0.V8B(), MemOperand(x1, 1, PostIndex))) 920 TEST_NEON(ld1r_9, ld1r(v0.V16B(), MemOperand(x1, 1, PostIndex))) 921 TEST_NEON(ld1r_10, ld1r(v0.V4H(), MemOperand(x1, 2, PostIndex))) 922 TEST_NEON(ld1r_11, ld1r(v0.V8H(), MemOperand(x1, 2, PostIndex))) 923 TEST_NEON(ld1r_12, ld1r(v0.V2S(), MemOperand(x1, 4, PostIndex))) 924 TEST_NEON(ld1r_13, ld1r(v0.V4S(), MemOperand(x1, 4, PostIndex))) 925 TEST_NEON(ld1r_14, ld1r(v0.V1D(), MemOperand(x1, 8, PostIndex))) 926 TEST_NEON(ld1r_15, ld1r(v0.V2D(), MemOperand(x1, 8, PostIndex))) 927 TEST_NEON(ld1r_16, ld1r(v0.V8B(), MemOperand(x1, x2, PostIndex))) 928 TEST_NEON(ld1r_17, ld1r(v0.V16B(), MemOperand(x1, x2, PostIndex))) 929 TEST_NEON(ld1r_18, ld1r(v0.V4H(), MemOperand(x1, x2, PostIndex))) 930 TEST_NEON(ld1r_19, ld1r(v0.V8H(), MemOperand(x1, x2, PostIndex))) 931 TEST_NEON(ld1r_20, ld1r(v0.V2S(), MemOperand(x1, x2, PostIndex))) 932 TEST_NEON(ld1r_21, ld1r(v0.V4S(), MemOperand(x1, x2, PostIndex))) 933 TEST_NEON(ld1r_22, ld1r(v0.V1D(), MemOperand(x1, x2, PostIndex))) 934 TEST_NEON(ld1r_23, ld1r(v0.V2D(), MemOperand(x1, x2, PostIndex))) 935 TEST_NEON(ld1_0, ld1(v0.V8B(), MemOperand(x1))) 936 TEST_NEON(ld1_1, ld1(v0.V16B(), MemOperand(x1))) 937 TEST_NEON(ld1_2, ld1(v0.V4H(), MemOperand(x1))) 938 TEST_NEON(ld1_3, ld1(v0.V8H(), MemOperand(x1))) 939 TEST_NEON(ld1_4, ld1(v0.V2S(), MemOperand(x1))) 940 TEST_NEON(ld1_5, ld1(v0.V4S(), MemOperand(x1))) 941 TEST_NEON(ld1_6, ld1(v0.V1D(), MemOperand(x1))) 942 TEST_NEON(ld1_7, ld1(v0.V2D(), MemOperand(x1))) 943 TEST_NEON(ld1_8, ld1(v0.V8B(), v1.V8B(), MemOperand(x2))) 944 TEST_NEON(ld1_9, ld1(v0.V16B(), v1.V16B(), MemOperand(x2))) 945 TEST_NEON(ld1_10, ld1(v0.V4H(), v1.V4H(), MemOperand(x2))) 946 TEST_NEON(ld1_11, ld1(v0.V8H(), v1.V8H(), MemOperand(x2))) 947 TEST_NEON(ld1_12, ld1(v0.V2S(), v1.V2S(), MemOperand(x2))) 948 TEST_NEON(ld1_13, ld1(v0.V4S(), v1.V4S(), MemOperand(x2))) 949 TEST_NEON(ld1_14, ld1(v0.V1D(), v1.V1D(), MemOperand(x2))) 950 TEST_NEON(ld1_15, ld1(v0.V2D(), v1.V2D(), MemOperand(x2))) 951 TEST_NEON(ld1_16, ld1(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3))) 952 TEST_NEON(ld1_17, ld1(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3))) 953 TEST_NEON(ld1_18, ld1(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3))) 954 TEST_NEON(ld1_19, ld1(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3))) 955 TEST_NEON(ld1_20, ld1(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3))) 956 TEST_NEON(ld1_21, ld1(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3))) 957 TEST_NEON(ld1_22, ld1(v0.V1D(), v1.V1D(), v2.V1D(), MemOperand(x3))) 958 TEST_NEON(ld1_23, ld1(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3))) 959 TEST_NEON(ld1_24, ld1(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4))) 960 TEST_NEON(ld1_25, 961 ld1(v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B(), MemOperand(x4))) 962 TEST_NEON(ld1_26, ld1(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4))) 963 TEST_NEON(ld1_27, ld1(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4))) 964 TEST_NEON(ld1_28, ld1(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4))) 965 TEST_NEON(ld1_29, ld1(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4))) 966 TEST_NEON(ld1_30, ld1(v0.V1D(), v1.V1D(), v2.V1D(), v3.V1D(), MemOperand(x4))) 967 TEST_NEON(ld1_31, ld1(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4))) 968 TEST_NEON(ld1_32, ld1(v0.V8B(), MemOperand(x1, 8, PostIndex))) 969 TEST_NEON(ld1_33, ld1(v0.V16B(), MemOperand(x1, 16, PostIndex))) 970 TEST_NEON(ld1_34, ld1(v0.V4H(), MemOperand(x1, 8, PostIndex))) 971 TEST_NEON(ld1_35, ld1(v0.V8H(), MemOperand(x1, 16, PostIndex))) 972 TEST_NEON(ld1_36, ld1(v0.V2S(), MemOperand(x1, 8, PostIndex))) 973 TEST_NEON(ld1_37, ld1(v0.V4S(), MemOperand(x1, 16, PostIndex))) 974 TEST_NEON(ld1_38, ld1(v0.V1D(), MemOperand(x1, 8, PostIndex))) 975 TEST_NEON(ld1_39, ld1(v0.V2D(), MemOperand(x1, 16, PostIndex))) 976 TEST_NEON(ld1_40, ld1(v0.V8B(), v1.V8B(), MemOperand(x2, 16, PostIndex))) 977 TEST_NEON(ld1_41, ld1(v0.V16B(), v1.V16B(), MemOperand(x2, 32, PostIndex))) 978 TEST_NEON(ld1_42, ld1(v0.V4H(), v1.V4H(), MemOperand(x2, 16, PostIndex))) 979 TEST_NEON(ld1_43, ld1(v0.V8H(), v1.V8H(), MemOperand(x2, 32, PostIndex))) 980 TEST_NEON(ld1_44, ld1(v0.V2S(), v1.V2S(), MemOperand(x2, 16, PostIndex))) 981 TEST_NEON(ld1_45, ld1(v0.V4S(), v1.V4S(), MemOperand(x2, 32, PostIndex))) 982 TEST_NEON(ld1_46, ld1(v0.V1D(), v1.V1D(), MemOperand(x2, 16, PostIndex))) 983 TEST_NEON(ld1_47, ld1(v0.V2D(), v1.V2D(), MemOperand(x2, 32, PostIndex))) 984 TEST_NEON(ld1_48, 985 ld1(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3, 24, PostIndex))) 986 TEST_NEON(ld1_49, 987 ld1(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3, 48, PostIndex))) 988 TEST_NEON(ld1_50, 989 ld1(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3, 24, PostIndex))) 990 TEST_NEON(ld1_51, 991 ld1(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3, 48, PostIndex))) 992 TEST_NEON(ld1_52, 993 ld1(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3, 24, PostIndex))) 994 TEST_NEON(ld1_53, 995 ld1(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3, 48, PostIndex))) 996 TEST_NEON(ld1_54, 997 ld1(v0.V1D(), v1.V1D(), v2.V1D(), MemOperand(x3, 24, PostIndex))) 998 TEST_NEON(ld1_55, 999 ld1(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3, 48, PostIndex))) 1000 TEST_NEON( 1001 ld1_56, 1002 ld1(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4, 32, PostIndex))) 1003 TEST_NEON(ld1_57, 1004 ld1(v0.V16B(), 1005 v1.V16B(), 1006 v2.V16B(), 1007 v3.V16B(), 1008 MemOperand(x4, 64, PostIndex))) 1009 TEST_NEON( 1010 ld1_58, 1011 ld1(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4, 32, PostIndex))) 1012 TEST_NEON( 1013 ld1_59, 1014 ld1(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4, 64, PostIndex))) 1015 TEST_NEON( 1016 ld1_60, 1017 ld1(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4, 32, PostIndex))) 1018 TEST_NEON( 1019 ld1_61, 1020 ld1(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4, 64, PostIndex))) 1021 TEST_NEON( 1022 ld1_62, 1023 ld1(v0.V1D(), v1.V1D(), v2.V1D(), v3.V1D(), MemOperand(x4, 32, PostIndex))) 1024 TEST_NEON( 1025 ld1_63, 1026 ld1(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4, 64, PostIndex))) 1027 TEST_NEON(ld1_64, ld1(v0.V8B(), MemOperand(x1, x2, PostIndex))) 1028 TEST_NEON(ld1_65, ld1(v0.V16B(), MemOperand(x1, x2, PostIndex))) 1029 TEST_NEON(ld1_66, ld1(v0.V4H(), MemOperand(x1, x2, PostIndex))) 1030 TEST_NEON(ld1_67, ld1(v0.V8H(), MemOperand(x1, x2, PostIndex))) 1031 TEST_NEON(ld1_68, ld1(v0.V2S(), MemOperand(x1, x2, PostIndex))) 1032 TEST_NEON(ld1_69, ld1(v0.V4S(), MemOperand(x1, x2, PostIndex))) 1033 TEST_NEON(ld1_70, ld1(v0.V1D(), MemOperand(x1, x2, PostIndex))) 1034 TEST_NEON(ld1_71, ld1(v0.V2D(), MemOperand(x1, x2, PostIndex))) 1035 TEST_NEON(ld1_72, ld1(v0.V8B(), v1.V8B(), MemOperand(x2, x3, PostIndex))) 1036 TEST_NEON(ld1_73, ld1(v0.V16B(), v1.V16B(), MemOperand(x2, x3, PostIndex))) 1037 TEST_NEON(ld1_74, ld1(v0.V4H(), v1.V4H(), MemOperand(x2, x3, PostIndex))) 1038 TEST_NEON(ld1_75, ld1(v0.V8H(), v1.V8H(), MemOperand(x2, x3, PostIndex))) 1039 TEST_NEON(ld1_76, ld1(v0.V2S(), v1.V2S(), MemOperand(x2, x3, PostIndex))) 1040 TEST_NEON(ld1_77, ld1(v0.V4S(), v1.V4S(), MemOperand(x2, x3, PostIndex))) 1041 TEST_NEON(ld1_78, ld1(v0.V1D(), v1.V1D(), MemOperand(x2, x3, PostIndex))) 1042 TEST_NEON(ld1_79, ld1(v0.V2D(), v1.V2D(), MemOperand(x2, x3, PostIndex))) 1043 TEST_NEON(ld1_80, 1044 ld1(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3, x4, PostIndex))) 1045 TEST_NEON(ld1_81, 1046 ld1(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3, x4, PostIndex))) 1047 TEST_NEON(ld1_82, 1048 ld1(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3, x4, PostIndex))) 1049 TEST_NEON(ld1_83, 1050 ld1(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3, x4, PostIndex))) 1051 TEST_NEON(ld1_84, 1052 ld1(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3, x4, PostIndex))) 1053 TEST_NEON(ld1_85, 1054 ld1(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3, x4, PostIndex))) 1055 TEST_NEON(ld1_86, 1056 ld1(v0.V1D(), v1.V1D(), v2.V1D(), MemOperand(x3, x4, PostIndex))) 1057 TEST_NEON(ld1_87, 1058 ld1(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3, x4, PostIndex))) 1059 TEST_NEON( 1060 ld1_88, 1061 ld1(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4, x5, PostIndex))) 1062 TEST_NEON(ld1_89, 1063 ld1(v0.V16B(), 1064 v1.V16B(), 1065 v2.V16B(), 1066 v3.V16B(), 1067 MemOperand(x4, x5, PostIndex))) 1068 TEST_NEON( 1069 ld1_90, 1070 ld1(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4, x5, PostIndex))) 1071 TEST_NEON( 1072 ld1_91, 1073 ld1(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4, x5, PostIndex))) 1074 TEST_NEON( 1075 ld1_92, 1076 ld1(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4, x5, PostIndex))) 1077 TEST_NEON( 1078 ld1_93, 1079 ld1(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4, x5, PostIndex))) 1080 TEST_NEON( 1081 ld1_94, 1082 ld1(v0.V1D(), v1.V1D(), v2.V1D(), v3.V1D(), MemOperand(x4, x5, PostIndex))) 1083 TEST_NEON( 1084 ld1_95, 1085 ld1(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4, x5, PostIndex))) 1086 TEST_NEON(ld1_96, ld1(v0.B(), 13, MemOperand(x1))) 1087 TEST_NEON(ld1_97, ld1(v0.D(), 0, MemOperand(x1))) 1088 TEST_NEON(ld1_98, ld1(v0.H(), 5, MemOperand(x1))) 1089 TEST_NEON(ld1_99, ld1(v0.S(), 2, MemOperand(x1))) 1090 TEST_NEON(ld1_100, ld1(v0.B(), 3, MemOperand(x1, 1, PostIndex))) 1091 TEST_NEON(ld1_101, ld1(v0.B(), 14, MemOperand(x1, x2, PostIndex))) 1092 TEST_NEON(ld1_102, ld1(v0.D(), 0, MemOperand(x1, 8, PostIndex))) 1093 TEST_NEON(ld1_103, ld1(v0.D(), 1, MemOperand(x1, x2, PostIndex))) 1094 TEST_NEON(ld1_104, ld1(v0.H(), 3, MemOperand(x1, 2, PostIndex))) 1095 TEST_NEON(ld1_105, ld1(v0.H(), 6, MemOperand(x1, x2, PostIndex))) 1096 TEST_NEON(ld1_106, ld1(v0.S(), 0, MemOperand(x1, 4, PostIndex))) 1097 TEST_NEON(ld1_107, ld1(v0.S(), 3, MemOperand(x1, x2, PostIndex))) 1098 TEST_NEON(ld2r_0, ld2r(v0.V8B(), v1.V8B(), MemOperand(x2))) 1099 TEST_NEON(ld2r_1, ld2r(v0.V16B(), v1.V16B(), MemOperand(x2))) 1100 TEST_NEON(ld2r_2, ld2r(v0.V4H(), v1.V4H(), MemOperand(x2))) 1101 TEST_NEON(ld2r_3, ld2r(v0.V8H(), v1.V8H(), MemOperand(x2))) 1102 TEST_NEON(ld2r_4, ld2r(v0.V2S(), v1.V2S(), MemOperand(x2))) 1103 TEST_NEON(ld2r_5, ld2r(v0.V4S(), v1.V4S(), MemOperand(x2))) 1104 TEST_NEON(ld2r_6, ld2r(v0.V1D(), v1.V1D(), MemOperand(x2))) 1105 TEST_NEON(ld2r_7, ld2r(v0.V2D(), v1.V2D(), MemOperand(x2))) 1106 TEST_NEON(ld2r_8, ld2r(v0.V8B(), v1.V8B(), MemOperand(x2, 2, PostIndex))) 1107 TEST_NEON(ld2r_9, ld2r(v0.V16B(), v1.V16B(), MemOperand(x2, 2, PostIndex))) 1108 TEST_NEON(ld2r_10, ld2r(v0.V4H(), v1.V4H(), MemOperand(x2, 4, PostIndex))) 1109 TEST_NEON(ld2r_11, ld2r(v0.V8H(), v1.V8H(), MemOperand(x2, 4, PostIndex))) 1110 TEST_NEON(ld2r_12, ld2r(v0.V2S(), v1.V2S(), MemOperand(x2, 8, PostIndex))) 1111 TEST_NEON(ld2r_13, ld2r(v0.V4S(), v1.V4S(), MemOperand(x2, 8, PostIndex))) 1112 TEST_NEON(ld2r_14, ld2r(v0.V1D(), v1.V1D(), MemOperand(x2, 16, PostIndex))) 1113 TEST_NEON(ld2r_15, ld2r(v0.V2D(), v1.V2D(), MemOperand(x2, 16, PostIndex))) 1114 TEST_NEON(ld2r_16, ld2r(v0.V8B(), v1.V8B(), MemOperand(x2, x3, PostIndex))) 1115 TEST_NEON(ld2r_17, ld2r(v0.V16B(), v1.V16B(), MemOperand(x2, x3, PostIndex))) 1116 TEST_NEON(ld2r_18, ld2r(v0.V4H(), v1.V4H(), MemOperand(x2, x3, PostIndex))) 1117 TEST_NEON(ld2r_19, ld2r(v0.V8H(), v1.V8H(), MemOperand(x2, x3, PostIndex))) 1118 TEST_NEON(ld2r_20, ld2r(v0.V2S(), v1.V2S(), MemOperand(x2, x3, PostIndex))) 1119 TEST_NEON(ld2r_21, ld2r(v0.V4S(), v1.V4S(), MemOperand(x2, x3, PostIndex))) 1120 TEST_NEON(ld2r_22, ld2r(v0.V1D(), v1.V1D(), MemOperand(x2, x3, PostIndex))) 1121 TEST_NEON(ld2r_23, ld2r(v0.V2D(), v1.V2D(), MemOperand(x2, x3, PostIndex))) 1122 TEST_NEON(ld2_0, ld2(v0.V8B(), v1.V8B(), MemOperand(x2))) 1123 TEST_NEON(ld2_1, ld2(v0.V16B(), v1.V16B(), MemOperand(x2))) 1124 TEST_NEON(ld2_2, ld2(v0.V4H(), v1.V4H(), MemOperand(x2))) 1125 TEST_NEON(ld2_3, ld2(v0.V8H(), v1.V8H(), MemOperand(x2))) 1126 TEST_NEON(ld2_4, ld2(v0.V2S(), v1.V2S(), MemOperand(x2))) 1127 TEST_NEON(ld2_5, ld2(v0.V4S(), v1.V4S(), MemOperand(x2))) 1128 TEST_NEON(ld2_6, ld2(v0.V2D(), v1.V2D(), MemOperand(x2))) 1129 TEST_NEON(ld2_7, ld2(v0.V8B(), v1.V8B(), MemOperand(x2, 16, PostIndex))) 1130 TEST_NEON(ld2_8, ld2(v0.V16B(), v1.V16B(), MemOperand(x2, 32, PostIndex))) 1131 TEST_NEON(ld2_9, ld2(v0.V4H(), v1.V4H(), MemOperand(x2, 16, PostIndex))) 1132 TEST_NEON(ld2_10, ld2(v0.V8H(), v1.V8H(), MemOperand(x2, 32, PostIndex))) 1133 TEST_NEON(ld2_11, ld2(v0.V2S(), v1.V2S(), MemOperand(x2, 16, PostIndex))) 1134 TEST_NEON(ld2_12, ld2(v0.V4S(), v1.V4S(), MemOperand(x2, 32, PostIndex))) 1135 TEST_NEON(ld2_13, ld2(v0.V2D(), v1.V2D(), MemOperand(x2, 32, PostIndex))) 1136 TEST_NEON(ld2_14, ld2(v0.V8B(), v1.V8B(), MemOperand(x2, x3, PostIndex))) 1137 TEST_NEON(ld2_15, ld2(v0.V16B(), v1.V16B(), MemOperand(x2, x3, PostIndex))) 1138 TEST_NEON(ld2_16, ld2(v0.V4H(), v1.V4H(), MemOperand(x2, x3, PostIndex))) 1139 TEST_NEON(ld2_17, ld2(v0.V8H(), v1.V8H(), MemOperand(x2, x3, PostIndex))) 1140 TEST_NEON(ld2_18, ld2(v0.V2S(), v1.V2S(), MemOperand(x2, x3, PostIndex))) 1141 TEST_NEON(ld2_19, ld2(v0.V4S(), v1.V4S(), MemOperand(x2, x3, PostIndex))) 1142 TEST_NEON(ld2_20, ld2(v0.V2D(), v1.V2D(), MemOperand(x2, x3, PostIndex))) 1143 TEST_NEON(ld2_21, ld2(v0.B(), v1.B(), 10, MemOperand(x2))) 1144 TEST_NEON(ld2_22, ld2(v0.D(), v1.D(), 0, MemOperand(x2))) 1145 TEST_NEON(ld2_23, ld2(v0.H(), v1.H(), 3, MemOperand(x2))) 1146 TEST_NEON(ld2_24, ld2(v0.S(), v1.S(), 1, MemOperand(x2))) 1147 TEST_NEON(ld2_25, ld2(v0.B(), v1.B(), 7, MemOperand(x2, 2, PostIndex))) 1148 TEST_NEON(ld2_26, ld2(v0.B(), v1.B(), 4, MemOperand(x2, x3, PostIndex))) 1149 TEST_NEON(ld2_27, ld2(v0.D(), v1.D(), 1, MemOperand(x2, 16, PostIndex))) 1150 TEST_NEON(ld2_28, ld2(v0.D(), v1.D(), 1, MemOperand(x2, x3, PostIndex))) 1151 TEST_NEON(ld2_29, ld2(v0.H(), v1.H(), 0, MemOperand(x2, 4, PostIndex))) 1152 TEST_NEON(ld2_30, ld2(v0.H(), v1.H(), 6, MemOperand(x2, x3, PostIndex))) 1153 TEST_NEON(ld2_31, ld2(v0.S(), v1.S(), 3, MemOperand(x2, 8, PostIndex))) 1154 TEST_NEON(ld2_32, ld2(v0.S(), v1.S(), 3, MemOperand(x2, x3, PostIndex))) 1155 TEST_NEON(ld3r_0, ld3r(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3))) 1156 TEST_NEON(ld3r_1, ld3r(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3))) 1157 TEST_NEON(ld3r_2, ld3r(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3))) 1158 TEST_NEON(ld3r_3, ld3r(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3))) 1159 TEST_NEON(ld3r_4, ld3r(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3))) 1160 TEST_NEON(ld3r_5, ld3r(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3))) 1161 TEST_NEON(ld3r_6, ld3r(v0.V1D(), v1.V1D(), v2.V1D(), MemOperand(x3))) 1162 TEST_NEON(ld3r_7, ld3r(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3))) 1163 TEST_NEON(ld3r_8, 1164 ld3r(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3, 3, PostIndex))) 1165 TEST_NEON(ld3r_9, 1166 ld3r(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3, 3, PostIndex))) 1167 TEST_NEON(ld3r_10, 1168 ld3r(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3, 6, PostIndex))) 1169 TEST_NEON(ld3r_11, 1170 ld3r(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3, 6, PostIndex))) 1171 TEST_NEON(ld3r_12, 1172 ld3r(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3, 12, PostIndex))) 1173 TEST_NEON(ld3r_13, 1174 ld3r(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3, 12, PostIndex))) 1175 TEST_NEON(ld3r_14, 1176 ld3r(v0.V1D(), v1.V1D(), v2.V1D(), MemOperand(x3, 24, PostIndex))) 1177 TEST_NEON(ld3r_15, 1178 ld3r(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3, 24, PostIndex))) 1179 TEST_NEON(ld3r_16, 1180 ld3r(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3, x4, PostIndex))) 1181 TEST_NEON(ld3r_17, 1182 ld3r(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3, x4, PostIndex))) 1183 TEST_NEON(ld3r_18, 1184 ld3r(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3, x4, PostIndex))) 1185 TEST_NEON(ld3r_19, 1186 ld3r(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3, x4, PostIndex))) 1187 TEST_NEON(ld3r_20, 1188 ld3r(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3, x4, PostIndex))) 1189 TEST_NEON(ld3r_21, 1190 ld3r(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3, x4, PostIndex))) 1191 TEST_NEON(ld3r_22, 1192 ld3r(v0.V1D(), v1.V1D(), v2.V1D(), MemOperand(x3, x4, PostIndex))) 1193 TEST_NEON(ld3r_23, 1194 ld3r(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3, x4, PostIndex))) 1195 TEST_NEON(ld3_0, ld3(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3))) 1196 TEST_NEON(ld3_1, ld3(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3))) 1197 TEST_NEON(ld3_2, ld3(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3))) 1198 TEST_NEON(ld3_3, ld3(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3))) 1199 TEST_NEON(ld3_4, ld3(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3))) 1200 TEST_NEON(ld3_5, ld3(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3))) 1201 TEST_NEON(ld3_6, ld3(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3))) 1202 TEST_NEON(ld3_7, 1203 ld3(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3, 24, PostIndex))) 1204 TEST_NEON(ld3_8, 1205 ld3(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3, 48, PostIndex))) 1206 TEST_NEON(ld3_9, 1207 ld3(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3, 24, PostIndex))) 1208 TEST_NEON(ld3_10, 1209 ld3(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3, 48, PostIndex))) 1210 TEST_NEON(ld3_11, 1211 ld3(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3, 24, PostIndex))) 1212 TEST_NEON(ld3_12, 1213 ld3(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3, 48, PostIndex))) 1214 TEST_NEON(ld3_13, 1215 ld3(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3, 48, PostIndex))) 1216 TEST_NEON(ld3_14, 1217 ld3(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3, x4, PostIndex))) 1218 TEST_NEON(ld3_15, 1219 ld3(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3, x4, PostIndex))) 1220 TEST_NEON(ld3_16, 1221 ld3(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3, x4, PostIndex))) 1222 TEST_NEON(ld3_17, 1223 ld3(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3, x4, PostIndex))) 1224 TEST_NEON(ld3_18, 1225 ld3(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3, x4, PostIndex))) 1226 TEST_NEON(ld3_19, 1227 ld3(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3, x4, PostIndex))) 1228 TEST_NEON(ld3_20, 1229 ld3(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3, x4, PostIndex))) 1230 TEST_NEON(ld3_21, ld3(v0.B(), v1.B(), v2.B(), 6, MemOperand(x3))) 1231 TEST_NEON(ld3_22, ld3(v0.D(), v1.D(), v2.D(), 1, MemOperand(x3))) 1232 TEST_NEON(ld3_23, ld3(v0.H(), v1.H(), v2.H(), 1, MemOperand(x3))) 1233 TEST_NEON(ld3_24, ld3(v0.S(), v1.S(), v2.S(), 2, MemOperand(x3))) 1234 TEST_NEON(ld3_25, ld3(v0.B(), v1.B(), v2.B(), 7, MemOperand(x3, 3, PostIndex))) 1235 TEST_NEON(ld3_26, 1236 ld3(v0.B(), v1.B(), v2.B(), 10, MemOperand(x3, x4, PostIndex))) 1237 TEST_NEON(ld3_27, ld3(v0.D(), v1.D(), v2.D(), 1, MemOperand(x3, 24, PostIndex))) 1238 TEST_NEON(ld3_28, ld3(v0.D(), v1.D(), v2.D(), 0, MemOperand(x3, x4, PostIndex))) 1239 TEST_NEON(ld3_29, ld3(v0.H(), v1.H(), v2.H(), 0, MemOperand(x3, 6, PostIndex))) 1240 TEST_NEON(ld3_30, ld3(v0.H(), v1.H(), v2.H(), 2, MemOperand(x3, x4, PostIndex))) 1241 TEST_NEON(ld3_31, ld3(v0.S(), v1.S(), v2.S(), 2, MemOperand(x3, 12, PostIndex))) 1242 TEST_NEON(ld3_32, ld3(v0.S(), v1.S(), v2.S(), 0, MemOperand(x3, x4, PostIndex))) 1243 TEST_NEON(ld4r_0, ld4r(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4))) 1244 TEST_NEON(ld4r_1, 1245 ld4r(v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B(), MemOperand(x4))) 1246 TEST_NEON(ld4r_2, ld4r(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4))) 1247 TEST_NEON(ld4r_3, ld4r(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4))) 1248 TEST_NEON(ld4r_4, ld4r(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4))) 1249 TEST_NEON(ld4r_5, ld4r(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4))) 1250 TEST_NEON(ld4r_6, ld4r(v0.V1D(), v1.V1D(), v2.V1D(), v3.V1D(), MemOperand(x4))) 1251 TEST_NEON(ld4r_7, ld4r(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4))) 1252 TEST_NEON( 1253 ld4r_8, 1254 ld4r(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4, 4, PostIndex))) 1255 TEST_NEON(ld4r_9, 1256 ld4r(v0.V16B(), 1257 v1.V16B(), 1258 v2.V16B(), 1259 v3.V16B(), 1260 MemOperand(x4, 4, PostIndex))) 1261 TEST_NEON( 1262 ld4r_10, 1263 ld4r(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4, 8, PostIndex))) 1264 TEST_NEON( 1265 ld4r_11, 1266 ld4r(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4, 8, PostIndex))) 1267 TEST_NEON( 1268 ld4r_12, 1269 ld4r(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4, 16, PostIndex))) 1270 TEST_NEON( 1271 ld4r_13, 1272 ld4r(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4, 16, PostIndex))) 1273 TEST_NEON( 1274 ld4r_14, 1275 ld4r(v0.V1D(), v1.V1D(), v2.V1D(), v3.V1D(), MemOperand(x4, 32, PostIndex))) 1276 TEST_NEON( 1277 ld4r_15, 1278 ld4r(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4, 32, PostIndex))) 1279 TEST_NEON( 1280 ld4r_16, 1281 ld4r(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4, x5, PostIndex))) 1282 TEST_NEON(ld4r_17, 1283 ld4r(v0.V16B(), 1284 v1.V16B(), 1285 v2.V16B(), 1286 v3.V16B(), 1287 MemOperand(x4, x5, PostIndex))) 1288 TEST_NEON( 1289 ld4r_18, 1290 ld4r(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4, x5, PostIndex))) 1291 TEST_NEON( 1292 ld4r_19, 1293 ld4r(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4, x5, PostIndex))) 1294 TEST_NEON( 1295 ld4r_20, 1296 ld4r(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4, x5, PostIndex))) 1297 TEST_NEON( 1298 ld4r_21, 1299 ld4r(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4, x5, PostIndex))) 1300 TEST_NEON( 1301 ld4r_22, 1302 ld4r(v0.V1D(), v1.V1D(), v2.V1D(), v3.V1D(), MemOperand(x4, x5, PostIndex))) 1303 TEST_NEON( 1304 ld4r_23, 1305 ld4r(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4, x5, PostIndex))) 1306 TEST_NEON(ld4_0, ld4(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4))) 1307 TEST_NEON(ld4_1, 1308 ld4(v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B(), MemOperand(x4))) 1309 TEST_NEON(ld4_2, ld4(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4))) 1310 TEST_NEON(ld4_3, ld4(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4))) 1311 TEST_NEON(ld4_4, ld4(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4))) 1312 TEST_NEON(ld4_5, ld4(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4))) 1313 TEST_NEON(ld4_6, ld4(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4))) 1314 TEST_NEON( 1315 ld4_7, 1316 ld4(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4, 32, PostIndex))) 1317 TEST_NEON(ld4_8, 1318 ld4(v0.V16B(), 1319 v1.V16B(), 1320 v2.V16B(), 1321 v3.V16B(), 1322 MemOperand(x4, 64, PostIndex))) 1323 TEST_NEON( 1324 ld4_9, 1325 ld4(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4, 32, PostIndex))) 1326 TEST_NEON( 1327 ld4_10, 1328 ld4(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4, 64, PostIndex))) 1329 TEST_NEON( 1330 ld4_11, 1331 ld4(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4, 32, PostIndex))) 1332 TEST_NEON( 1333 ld4_12, 1334 ld4(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4, 64, PostIndex))) 1335 TEST_NEON( 1336 ld4_13, 1337 ld4(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4, 64, PostIndex))) 1338 TEST_NEON( 1339 ld4_14, 1340 ld4(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4, x5, PostIndex))) 1341 TEST_NEON(ld4_15, 1342 ld4(v0.V16B(), 1343 v1.V16B(), 1344 v2.V16B(), 1345 v3.V16B(), 1346 MemOperand(x4, x5, PostIndex))) 1347 TEST_NEON( 1348 ld4_16, 1349 ld4(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4, x5, PostIndex))) 1350 TEST_NEON( 1351 ld4_17, 1352 ld4(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4, x5, PostIndex))) 1353 TEST_NEON( 1354 ld4_18, 1355 ld4(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4, x5, PostIndex))) 1356 TEST_NEON( 1357 ld4_19, 1358 ld4(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4, x5, PostIndex))) 1359 TEST_NEON( 1360 ld4_20, 1361 ld4(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4, x5, PostIndex))) 1362 TEST_NEON(ld4_21, ld4(v0.B(), v1.B(), v2.B(), v3.B(), 15, MemOperand(x4))) 1363 TEST_NEON(ld4_22, ld4(v0.D(), v1.D(), v2.D(), v3.D(), 1, MemOperand(x4))) 1364 TEST_NEON(ld4_23, ld4(v0.H(), v1.H(), v2.H(), v3.H(), 2, MemOperand(x4))) 1365 TEST_NEON(ld4_24, ld4(v0.S(), v1.S(), v2.S(), v3.S(), 0, MemOperand(x4))) 1366 TEST_NEON(ld4_25, 1367 ld4(v0.B(), v1.B(), v2.B(), v3.B(), 0, MemOperand(x4, 4, PostIndex))) 1368 TEST_NEON(ld4_26, 1369 ld4(v0.B(), v1.B(), v2.B(), v3.B(), 0, MemOperand(x4, x5, PostIndex))) 1370 TEST_NEON(ld4_27, 1371 ld4(v0.D(), v1.D(), v2.D(), v3.D(), 0, MemOperand(x4, 32, PostIndex))) 1372 TEST_NEON(ld4_28, 1373 ld4(v0.D(), v1.D(), v2.D(), v3.D(), 0, MemOperand(x4, x5, PostIndex))) 1374 TEST_NEON(ld4_29, 1375 ld4(v0.H(), v1.H(), v2.H(), v3.H(), 1, MemOperand(x4, 8, PostIndex))) 1376 TEST_NEON(ld4_30, 1377 ld4(v0.H(), v1.H(), v2.H(), v3.H(), 7, MemOperand(x4, x5, PostIndex))) 1378 TEST_NEON(ld4_31, 1379 ld4(v0.S(), v1.S(), v2.S(), v3.S(), 3, MemOperand(x4, 16, PostIndex))) 1380 TEST_NEON(ld4_32, 1381 ld4(v0.S(), v1.S(), v2.S(), v3.S(), 1, MemOperand(x4, x5, PostIndex))) 1382 TEST_NEON(ldnp_0, ldnp(d0, d1, MemOperand(x2, -32))) 1383 TEST_NEON(ldnp_1, ldnp(q0, q1, MemOperand(x2, 288))) 1384 TEST_NEON(ldnp_2, ldnp(s0, s1, MemOperand(x2, -180))) 1385 TEST_NEON(ldp_0, ldp(d0, d1, MemOperand(x2, 112))) 1386 TEST_NEON(ldp_1, ldp(d0, d1, MemOperand(x2, 24, PostIndex))) 1387 TEST_NEON(ldp_2, ldp(d0, d1, MemOperand(x2, 192, PreIndex))) 1388 TEST_NEON(ldp_3, ldp(q0, q1, MemOperand(x2, 256))) 1389 TEST_NEON(ldp_4, ldp(q0, q1, MemOperand(x2, -976, PostIndex))) 1390 TEST_NEON(ldp_5, ldp(q0, q1, MemOperand(x2, -976, PreIndex))) 1391 TEST_NEON(ldp_6, ldp(s0, s1, MemOperand(x2, -72))) 1392 TEST_NEON(ldp_7, ldp(s0, s1, MemOperand(x2, 0, PostIndex))) 1393 TEST_NEON(ldp_8, ldp(s0, s1, MemOperand(x2, 144, PreIndex))) 1394 TEST_NEON(ldr_0, ldr(b0, MemOperand(x1, -172, PostIndex))) 1395 TEST_NEON(ldr_1, ldr(b0, MemOperand(x1, 39, PreIndex))) 1396 TEST_NEON(ldr_2, ldr(b0, MemOperand(x1, 1471))) 1397 TEST_NEON(ldr_3, ldr(d0, MemOperand(x1, -240, PostIndex))) 1398 TEST_NEON(ldr_4, ldr(d0, MemOperand(x1, 110, PreIndex))) 1399 TEST_NEON(ldr_5, ldr(d0, MemOperand(x1, 4048))) 1400 TEST_NEON(ldr_6, ldr(h0, MemOperand(x1, -76, PostIndex))) 1401 TEST_NEON(ldr_7, ldr(h0, MemOperand(x1, -124, PreIndex))) 1402 TEST_NEON(ldr_8, ldr(h0, MemOperand(x1, 6230))) 1403 TEST_NEON(ldr_9, ldr(q0, MemOperand(x1, -13, PostIndex))) 1404 TEST_NEON(ldr_10, ldr(q0, MemOperand(x1, 17, PreIndex))) 1405 TEST_NEON(ldr_11, ldr(q0, MemOperand(x1, 11376))) 1406 TEST_NEON(ldr_12, ldr(s0, MemOperand(x1, 148, PostIndex))) 1407 TEST_NEON(ldr_13, ldr(s0, MemOperand(x1, 68, PreIndex))) 1408 TEST_NEON(ldr_14, ldr(s0, MemOperand(x1, 7424))) 1409 TEST_NEON(ldr_15, ldr(d0, 0x35a20)) 1410 TEST_NEON(ldr_16, ldr(q0, 0xc067)) 1411 TEST_NEON(ldr_17, ldr(s0, 0x1053a)) 1412 TEST_NEON(ldr_18, ldr(b0, MemOperand(x1, x2, LSL, 0))) 1413 TEST_NEON(ldr_19, ldr(b0, MemOperand(x1, w2, SXTW, 0))) 1414 TEST_NEON(ldr_20, ldr(d0, MemOperand(x1, w2, SXTW, 3))) 1415 TEST_NEON(ldr_21, ldr(d0, MemOperand(x1, x2, SXTX, 3))) 1416 TEST_NEON(ldr_22, ldr(h0, MemOperand(x1, w2, UXTW, 1))) 1417 TEST_NEON(ldr_23, ldr(h0, MemOperand(x1, x2, SXTX, 0))) 1418 TEST_NEON(ldr_24, ldr(q0, MemOperand(x1, w2, UXTW, 4))) 1419 TEST_NEON(ldr_25, ldr(q0, MemOperand(x1, x2, SXTX, 4))) 1420 TEST_NEON(ldr_26, ldr(s0, MemOperand(x1, w2, SXTW, 2))) 1421 TEST_NEON(ldr_27, ldr(s0, MemOperand(x1, x2, SXTX, 2))) 1422 TEST_NEON(ldur_0, ldur(b0, MemOperand(x1, 153))) 1423 TEST_NEON(ldur_1, ldur(d0, MemOperand(x1, -146))) 1424 TEST_NEON(ldur_2, ldur(h0, MemOperand(x1, -117))) 1425 TEST_NEON(ldur_3, ldur(q0, MemOperand(x1, -81))) 1426 TEST_NEON(ldur_4, ldur(s0, MemOperand(x1, 209))) 1427 TEST_NEON(mla_0, mla(v0.V4H(), v1.V4H(), v2.H(), 1)) 1428 TEST_NEON(mla_1, mla(v0.V8H(), v1.V8H(), v2.H(), 7)) 1429 TEST_NEON(mla_2, mla(v0.V2S(), v1.V2S(), v2.S(), 0)) 1430 TEST_NEON(mla_3, mla(v0.V4S(), v1.V4S(), v2.S(), 3)) 1431 TEST_NEON(mla_4, mla(v0.V8B(), v1.V8B(), v2.V8B())) 1432 TEST_NEON(mla_5, mla(v0.V16B(), v1.V16B(), v2.V16B())) 1433 TEST_NEON(mla_6, mla(v0.V4H(), v1.V4H(), v2.V4H())) 1434 TEST_NEON(mla_7, mla(v0.V8H(), v1.V8H(), v2.V8H())) 1435 TEST_NEON(mla_8, mla(v0.V2S(), v1.V2S(), v2.V2S())) 1436 TEST_NEON(mla_9, mla(v0.V4S(), v1.V4S(), v2.V4S())) 1437 TEST_NEON(mls_0, mls(v0.V4H(), v1.V4H(), v2.H(), 3)) 1438 TEST_NEON(mls_1, mls(v0.V8H(), v1.V8H(), v2.H(), 5)) 1439 TEST_NEON(mls_2, mls(v0.V2S(), v1.V2S(), v2.S(), 0)) 1440 TEST_NEON(mls_3, mls(v0.V4S(), v1.V4S(), v2.S(), 1)) 1441 TEST_NEON(mls_4, mls(v0.V8B(), v1.V8B(), v2.V8B())) 1442 TEST_NEON(mls_5, mls(v0.V16B(), v1.V16B(), v2.V16B())) 1443 TEST_NEON(mls_6, mls(v0.V4H(), v1.V4H(), v2.V4H())) 1444 TEST_NEON(mls_7, mls(v0.V8H(), v1.V8H(), v2.V8H())) 1445 TEST_NEON(mls_8, mls(v0.V2S(), v1.V2S(), v2.V2S())) 1446 TEST_NEON(mls_9, mls(v0.V4S(), v1.V4S(), v2.V4S())) 1447 TEST_NEON(movi_0, movi(v0.V2D(), 0x0000ff000000ff00)) 1448 TEST_NEON(movi_1, movi(d0, 0xffffffff00ffff00)) 1449 TEST_NEON(movi_2, movi(v0.V4H(), 0xda, LSL, 8)) 1450 TEST_NEON(movi_3, movi(v0.V8H(), 0x32, LSL, 0)) 1451 TEST_NEON(movi_4, movi(v0.V2S(), 0xfe, LSL, 0)) 1452 TEST_NEON(movi_5, movi(v0.V4S(), 0xf0, LSL, 8)) 1453 TEST_NEON(movi_6, movi(v0.V2S(), 0x81, MSL, 8)) 1454 TEST_NEON(movi_7, movi(v0.V4S(), 0x7, MSL, 8)) 1455 TEST_NEON(movi_8, movi(v0.V8B(), 0x18)) 1456 TEST_NEON(movi_9, movi(v0.V16B(), 0x94)) 1457 TEST_NEON(mov_0, mov(b0, v1.B(), 5)) 1458 TEST_NEON(mov_1, mov(h0, v1.H(), 1)) 1459 TEST_NEON(mov_2, mov(s0, v1.S(), 3)) 1460 TEST_NEON(mov_3, mov(d0, v1.D(), 0)) 1461 TEST_NEON(mov_4, mov(v0.B(), 14, v1.B(), 11)) 1462 TEST_NEON(mov_5, mov(v0.H(), 1, v1.H(), 7)) 1463 TEST_NEON(mov_6, mov(v0.S(), 1, v1.S(), 1)) 1464 TEST_NEON(mov_7, mov(v0.D(), 0, v1.D(), 1)) 1465 TEST_NEON(mov_8, mov(v0.B(), 14, w1)) 1466 TEST_NEON(mov_9, mov(v0.H(), 7, w1)) 1467 TEST_NEON(mov_10, mov(v0.S(), 0, w1)) 1468 TEST_NEON(mov_11, mov(v0.D(), 1, x1)) 1469 TEST_NEON(mov_12, mov(v0.V8B(), v1.V8B())) 1470 TEST_NEON(mov_13, mov(v0.V16B(), v1.V16B())) 1471 TEST_NEON(mov_14, mov(w0, v1.S(), 3)) 1472 TEST_NEON(mov_15, mov(x0, v1.D(), 1)) 1473 TEST_NEON(mul_0, mul(v0.V4H(), v1.V4H(), v2.H(), 0)) 1474 TEST_NEON(mul_1, mul(v0.V8H(), v1.V8H(), v2.H(), 2)) 1475 TEST_NEON(mul_2, mul(v0.V2S(), v1.V2S(), v2.S(), 1)) 1476 TEST_NEON(mul_3, mul(v0.V4S(), v1.V4S(), v2.S(), 1)) 1477 TEST_NEON(mul_4, mul(v0.V8B(), v1.V8B(), v2.V8B())) 1478 TEST_NEON(mul_5, mul(v0.V16B(), v1.V16B(), v2.V16B())) 1479 TEST_NEON(mul_6, mul(v0.V4H(), v1.V4H(), v2.V4H())) 1480 TEST_NEON(mul_7, mul(v0.V8H(), v1.V8H(), v2.V8H())) 1481 TEST_NEON(mul_8, mul(v0.V2S(), v1.V2S(), v2.V2S())) 1482 TEST_NEON(mul_9, mul(v0.V4S(), v1.V4S(), v2.V4S())) 1483 TEST_NEON(mvni_0, mvni(v0.V4H(), 0xd9, LSL, 8)) 1484 TEST_NEON(mvni_1, mvni(v0.V8H(), 0x86, LSL, 0)) 1485 TEST_NEON(mvni_2, mvni(v0.V2S(), 0xde, LSL, 16)) 1486 TEST_NEON(mvni_3, mvni(v0.V4S(), 0x96, LSL, 24)) 1487 TEST_NEON(mvni_4, mvni(v0.V2S(), 0x1e, MSL, 16)) 1488 TEST_NEON(mvni_5, mvni(v0.V4S(), 0x9b, MSL, 16)) 1489 TEST_NEON(mvn_0, mvn(v0.V8B(), v1.V8B())) 1490 TEST_NEON(mvn_1, mvn(v0.V16B(), v1.V16B())) 1491 TEST_NEON(neg_0, neg(v0.V8B(), v1.V8B())) 1492 TEST_NEON(neg_1, neg(v0.V16B(), v1.V16B())) 1493 TEST_NEON(neg_2, neg(v0.V4H(), v1.V4H())) 1494 TEST_NEON(neg_3, neg(v0.V8H(), v1.V8H())) 1495 TEST_NEON(neg_4, neg(v0.V2S(), v1.V2S())) 1496 TEST_NEON(neg_5, neg(v0.V4S(), v1.V4S())) 1497 TEST_NEON(neg_6, neg(v0.V2D(), v1.V2D())) 1498 TEST_NEON(neg_7, neg(d0, d1)) 1499 TEST_NEON(not_0, not_(v0.V8B(), v1.V8B())) 1500 TEST_NEON(not_1, not_(v0.V16B(), v1.V16B())) 1501 TEST_NEON(orn_0, orn(v0.V8B(), v1.V8B(), v2.V8B())) 1502 TEST_NEON(orn_1, orn(v0.V16B(), v1.V16B(), v2.V16B())) 1503 TEST_NEON(orr_0, orr(v0.V4H(), 0xb1, 0)) 1504 TEST_NEON(orr_1, orr(v0.V8H(), 0xe3, 8)) 1505 TEST_NEON(orr_2, orr(v0.V2S(), 0x26, 0)) 1506 TEST_NEON(orr_3, orr(v0.V4S(), 0x67, 0)) 1507 TEST_NEON(orr_4, orr(v0.V8B(), v1.V8B(), v2.V8B())) 1508 TEST_NEON(orr_5, orr(v0.V16B(), v1.V16B(), v2.V16B())) 1509 TEST_NEON(pmull_0, pmull(v0.V8H(), v1.V8B(), v2.V8B())) 1510 TEST_NEON(pmull2_0, pmull2(v0.V8H(), v1.V16B(), v2.V16B())) 1511 TEST_NEON(pmul_0, pmul(v0.V8B(), v1.V8B(), v2.V8B())) 1512 TEST_NEON(pmul_1, pmul(v0.V16B(), v1.V16B(), v2.V16B())) 1513 TEST_NEON(raddhn_0, raddhn(v0.V8B(), v1.V8H(), v2.V8H())) 1514 TEST_NEON(raddhn_1, raddhn(v0.V4H(), v1.V4S(), v2.V4S())) 1515 TEST_NEON(raddhn_2, raddhn(v0.V2S(), v1.V2D(), v2.V2D())) 1516 TEST_NEON(raddhn2_0, raddhn2(v0.V16B(), v1.V8H(), v2.V8H())) 1517 TEST_NEON(raddhn2_1, raddhn2(v0.V8H(), v1.V4S(), v2.V4S())) 1518 TEST_NEON(raddhn2_2, raddhn2(v0.V4S(), v1.V2D(), v2.V2D())) 1519 TEST_NEON(rbit_0, rbit(v0.V8B(), v1.V8B())) 1520 TEST_NEON(rbit_1, rbit(v0.V16B(), v1.V16B())) 1521 TEST_NEON(rev16_0, rev16(v0.V8B(), v1.V8B())) 1522 TEST_NEON(rev16_1, rev16(v0.V16B(), v1.V16B())) 1523 TEST_NEON(rev32_0, rev32(v0.V8B(), v1.V8B())) 1524 TEST_NEON(rev32_1, rev32(v0.V16B(), v1.V16B())) 1525 TEST_NEON(rev32_2, rev32(v0.V4H(), v1.V4H())) 1526 TEST_NEON(rev32_3, rev32(v0.V8H(), v1.V8H())) 1527 TEST_NEON(rev64_0, rev64(v0.V8B(), v1.V8B())) 1528 TEST_NEON(rev64_1, rev64(v0.V16B(), v1.V16B())) 1529 TEST_NEON(rev64_2, rev64(v0.V4H(), v1.V4H())) 1530 TEST_NEON(rev64_3, rev64(v0.V8H(), v1.V8H())) 1531 TEST_NEON(rev64_4, rev64(v0.V2S(), v1.V2S())) 1532 TEST_NEON(rev64_5, rev64(v0.V4S(), v1.V4S())) 1533 TEST_NEON(rshrn_0, rshrn(v0.V8B(), v1.V8H(), 6)) 1534 TEST_NEON(rshrn_1, rshrn(v0.V4H(), v1.V4S(), 9)) 1535 TEST_NEON(rshrn_2, rshrn(v0.V2S(), v1.V2D(), 30)) 1536 TEST_NEON(rshrn2_0, rshrn2(v0.V16B(), v1.V8H(), 1)) 1537 TEST_NEON(rshrn2_1, rshrn2(v0.V8H(), v1.V4S(), 6)) 1538 TEST_NEON(rshrn2_2, rshrn2(v0.V4S(), v1.V2D(), 12)) 1539 TEST_NEON(rsubhn_0, rsubhn(v0.V8B(), v1.V8H(), v2.V8H())) 1540 TEST_NEON(rsubhn_1, rsubhn(v0.V4H(), v1.V4S(), v2.V4S())) 1541 TEST_NEON(rsubhn_2, rsubhn(v0.V2S(), v1.V2D(), v2.V2D())) 1542 TEST_NEON(rsubhn2_0, rsubhn2(v0.V16B(), v1.V8H(), v2.V8H())) 1543 TEST_NEON(rsubhn2_1, rsubhn2(v0.V8H(), v1.V4S(), v2.V4S())) 1544 TEST_NEON(rsubhn2_2, rsubhn2(v0.V4S(), v1.V2D(), v2.V2D())) 1545 TEST_NEON(sabal_0, sabal(v0.V8H(), v1.V8B(), v2.V8B())) 1546 TEST_NEON(sabal_1, sabal(v0.V4S(), v1.V4H(), v2.V4H())) 1547 TEST_NEON(sabal_2, sabal(v0.V2D(), v1.V2S(), v2.V2S())) 1548 TEST_NEON(sabal2_0, sabal2(v0.V8H(), v1.V16B(), v2.V16B())) 1549 TEST_NEON(sabal2_1, sabal2(v0.V4S(), v1.V8H(), v2.V8H())) 1550 TEST_NEON(sabal2_2, sabal2(v0.V2D(), v1.V4S(), v2.V4S())) 1551 TEST_NEON(saba_0, saba(v0.V8B(), v1.V8B(), v2.V8B())) 1552 TEST_NEON(saba_1, saba(v0.V16B(), v1.V16B(), v2.V16B())) 1553 TEST_NEON(saba_2, saba(v0.V4H(), v1.V4H(), v2.V4H())) 1554 TEST_NEON(saba_3, saba(v0.V8H(), v1.V8H(), v2.V8H())) 1555 TEST_NEON(saba_4, saba(v0.V2S(), v1.V2S(), v2.V2S())) 1556 TEST_NEON(saba_5, saba(v0.V4S(), v1.V4S(), v2.V4S())) 1557 TEST_NEON(sabdl_0, sabdl(v0.V8H(), v1.V8B(), v2.V8B())) 1558 TEST_NEON(sabdl_1, sabdl(v0.V4S(), v1.V4H(), v2.V4H())) 1559 TEST_NEON(sabdl_2, sabdl(v0.V2D(), v1.V2S(), v2.V2S())) 1560 TEST_NEON(sabdl2_0, sabdl2(v0.V8H(), v1.V16B(), v2.V16B())) 1561 TEST_NEON(sabdl2_1, sabdl2(v0.V4S(), v1.V8H(), v2.V8H())) 1562 TEST_NEON(sabdl2_2, sabdl2(v0.V2D(), v1.V4S(), v2.V4S())) 1563 TEST_NEON(sabd_0, sabd(v0.V8B(), v1.V8B(), v2.V8B())) 1564 TEST_NEON(sabd_1, sabd(v0.V16B(), v1.V16B(), v2.V16B())) 1565 TEST_NEON(sabd_2, sabd(v0.V4H(), v1.V4H(), v2.V4H())) 1566 TEST_NEON(sabd_3, sabd(v0.V8H(), v1.V8H(), v2.V8H())) 1567 TEST_NEON(sabd_4, sabd(v0.V2S(), v1.V2S(), v2.V2S())) 1568 TEST_NEON(sabd_5, sabd(v0.V4S(), v1.V4S(), v2.V4S())) 1569 TEST_NEON(sadalp_0, sadalp(v0.V4H(), v1.V8B())) 1570 TEST_NEON(sadalp_1, sadalp(v0.V8H(), v1.V16B())) 1571 TEST_NEON(sadalp_2, sadalp(v0.V2S(), v1.V4H())) 1572 TEST_NEON(sadalp_3, sadalp(v0.V4S(), v1.V8H())) 1573 TEST_NEON(sadalp_4, sadalp(v0.V1D(), v1.V2S())) 1574 TEST_NEON(sadalp_5, sadalp(v0.V2D(), v1.V4S())) 1575 TEST_NEON(saddlp_0, saddlp(v0.V4H(), v1.V8B())) 1576 TEST_NEON(saddlp_1, saddlp(v0.V8H(), v1.V16B())) 1577 TEST_NEON(saddlp_2, saddlp(v0.V2S(), v1.V4H())) 1578 TEST_NEON(saddlp_3, saddlp(v0.V4S(), v1.V8H())) 1579 TEST_NEON(saddlp_4, saddlp(v0.V1D(), v1.V2S())) 1580 TEST_NEON(saddlp_5, saddlp(v0.V2D(), v1.V4S())) 1581 TEST_NEON(saddlv_0, saddlv(h0, v1.V8B())) 1582 TEST_NEON(saddlv_1, saddlv(h0, v1.V16B())) 1583 TEST_NEON(saddlv_2, saddlv(s0, v1.V4H())) 1584 TEST_NEON(saddlv_3, saddlv(s0, v1.V8H())) 1585 TEST_NEON(saddlv_4, saddlv(d0, v1.V4S())) 1586 TEST_NEON(saddl_0, saddl(v0.V8H(), v1.V8B(), v2.V8B())) 1587 TEST_NEON(saddl_1, saddl(v0.V4S(), v1.V4H(), v2.V4H())) 1588 TEST_NEON(saddl_2, saddl(v0.V2D(), v1.V2S(), v2.V2S())) 1589 TEST_NEON(saddl2_0, saddl2(v0.V8H(), v1.V16B(), v2.V16B())) 1590 TEST_NEON(saddl2_1, saddl2(v0.V4S(), v1.V8H(), v2.V8H())) 1591 TEST_NEON(saddl2_2, saddl2(v0.V2D(), v1.V4S(), v2.V4S())) 1592 TEST_NEON(saddw_0, saddw(v0.V8H(), v1.V8H(), v2.V8B())) 1593 TEST_NEON(saddw_1, saddw(v0.V4S(), v1.V4S(), v2.V4H())) 1594 TEST_NEON(saddw_2, saddw(v0.V2D(), v1.V2D(), v2.V2S())) 1595 TEST_NEON(saddw2_0, saddw2(v0.V8H(), v1.V8H(), v2.V16B())) 1596 TEST_NEON(saddw2_1, saddw2(v0.V4S(), v1.V4S(), v2.V8H())) 1597 TEST_NEON(saddw2_2, saddw2(v0.V2D(), v1.V2D(), v2.V4S())) 1598 TEST_NEON(shadd_0, shadd(v0.V8B(), v1.V8B(), v2.V8B())) 1599 TEST_NEON(shadd_1, shadd(v0.V16B(), v1.V16B(), v2.V16B())) 1600 TEST_NEON(shadd_2, shadd(v0.V4H(), v1.V4H(), v2.V4H())) 1601 TEST_NEON(shadd_3, shadd(v0.V8H(), v1.V8H(), v2.V8H())) 1602 TEST_NEON(shadd_4, shadd(v0.V2S(), v1.V2S(), v2.V2S())) 1603 TEST_NEON(shadd_5, shadd(v0.V4S(), v1.V4S(), v2.V4S())) 1604 TEST_NEON(shll_0, shll(v0.V8H(), v1.V8B(), 8)) 1605 TEST_NEON(shll_1, shll(v0.V4S(), v1.V4H(), 16)) 1606 TEST_NEON(shll_2, shll(v0.V2D(), v1.V2S(), 32)) 1607 TEST_NEON(shll2_0, shll2(v0.V8H(), v1.V16B(), 8)) 1608 TEST_NEON(shll2_1, shll2(v0.V4S(), v1.V8H(), 16)) 1609 TEST_NEON(shll2_2, shll2(v0.V2D(), v1.V4S(), 32)) 1610 TEST_NEON(shl_0, shl(v0.V8B(), v1.V8B(), 2)) 1611 TEST_NEON(shl_1, shl(v0.V16B(), v1.V16B(), 5)) 1612 TEST_NEON(shl_2, shl(v0.V4H(), v1.V4H(), 10)) 1613 TEST_NEON(shl_3, shl(v0.V8H(), v1.V8H(), 14)) 1614 TEST_NEON(shl_4, shl(v0.V2S(), v1.V2S(), 24)) 1615 TEST_NEON(shl_5, shl(v0.V4S(), v1.V4S(), 2)) 1616 TEST_NEON(shl_6, shl(v0.V2D(), v1.V2D(), 44)) 1617 TEST_NEON(shl_7, shl(d0, d1, 7)) 1618 TEST_NEON(shrn_0, shrn(v0.V8B(), v1.V8H(), 7)) 1619 TEST_NEON(shrn_1, shrn(v0.V4H(), v1.V4S(), 14)) 1620 TEST_NEON(shrn_2, shrn(v0.V2S(), v1.V2D(), 20)) 1621 TEST_NEON(shrn2_0, shrn2(v0.V16B(), v1.V8H(), 2)) 1622 TEST_NEON(shrn2_1, shrn2(v0.V8H(), v1.V4S(), 14)) 1623 TEST_NEON(shrn2_2, shrn2(v0.V4S(), v1.V2D(), 18)) 1624 TEST_NEON(shsub_0, shsub(v0.V8B(), v1.V8B(), v2.V8B())) 1625 TEST_NEON(shsub_1, shsub(v0.V16B(), v1.V16B(), v2.V16B())) 1626 TEST_NEON(shsub_2, shsub(v0.V4H(), v1.V4H(), v2.V4H())) 1627 TEST_NEON(shsub_3, shsub(v0.V8H(), v1.V8H(), v2.V8H())) 1628 TEST_NEON(shsub_4, shsub(v0.V2S(), v1.V2S(), v2.V2S())) 1629 TEST_NEON(shsub_5, shsub(v0.V4S(), v1.V4S(), v2.V4S())) 1630 TEST_NEON(sli_0, sli(v0.V8B(), v1.V8B(), 6)) 1631 TEST_NEON(sli_1, sli(v0.V16B(), v1.V16B(), 2)) 1632 TEST_NEON(sli_2, sli(v0.V4H(), v1.V4H(), 7)) 1633 TEST_NEON(sli_3, sli(v0.V8H(), v1.V8H(), 7)) 1634 TEST_NEON(sli_4, sli(v0.V2S(), v1.V2S(), 13)) 1635 TEST_NEON(sli_5, sli(v0.V4S(), v1.V4S(), 16)) 1636 TEST_NEON(sli_6, sli(v0.V2D(), v1.V2D(), 21)) 1637 TEST_NEON(sli_7, sli(d0, d1, 34)) 1638 TEST_NEON(smaxp_0, smaxp(v0.V8B(), v1.V8B(), v2.V8B())) 1639 TEST_NEON(smaxp_1, smaxp(v0.V16B(), v1.V16B(), v2.V16B())) 1640 TEST_NEON(smaxp_2, smaxp(v0.V4H(), v1.V4H(), v2.V4H())) 1641 TEST_NEON(smaxp_3, smaxp(v0.V8H(), v1.V8H(), v2.V8H())) 1642 TEST_NEON(smaxp_4, smaxp(v0.V2S(), v1.V2S(), v2.V2S())) 1643 TEST_NEON(smaxp_5, smaxp(v0.V4S(), v1.V4S(), v2.V4S())) 1644 TEST_NEON(smaxv_0, smaxv(b0, v1.V8B())) 1645 TEST_NEON(smaxv_1, smaxv(b0, v1.V16B())) 1646 TEST_NEON(smaxv_2, smaxv(h0, v1.V4H())) 1647 TEST_NEON(smaxv_3, smaxv(h0, v1.V8H())) 1648 TEST_NEON(smaxv_4, smaxv(s0, v1.V4S())) 1649 TEST_NEON(smax_0, smax(v0.V8B(), v1.V8B(), v2.V8B())) 1650 TEST_NEON(smax_1, smax(v0.V16B(), v1.V16B(), v2.V16B())) 1651 TEST_NEON(smax_2, smax(v0.V4H(), v1.V4H(), v2.V4H())) 1652 TEST_NEON(smax_3, smax(v0.V8H(), v1.V8H(), v2.V8H())) 1653 TEST_NEON(smax_4, smax(v0.V2S(), v1.V2S(), v2.V2S())) 1654 TEST_NEON(smax_5, smax(v0.V4S(), v1.V4S(), v2.V4S())) 1655 TEST_NEON(sminp_0, sminp(v0.V8B(), v1.V8B(), v2.V8B())) 1656 TEST_NEON(sminp_1, sminp(v0.V16B(), v1.V16B(), v2.V16B())) 1657 TEST_NEON(sminp_2, sminp(v0.V4H(), v1.V4H(), v2.V4H())) 1658 TEST_NEON(sminp_3, sminp(v0.V8H(), v1.V8H(), v2.V8H())) 1659 TEST_NEON(sminp_4, sminp(v0.V2S(), v1.V2S(), v2.V2S())) 1660 TEST_NEON(sminp_5, sminp(v0.V4S(), v1.V4S(), v2.V4S())) 1661 TEST_NEON(sminv_0, sminv(b0, v1.V8B())) 1662 TEST_NEON(sminv_1, sminv(b0, v1.V16B())) 1663 TEST_NEON(sminv_2, sminv(h0, v1.V4H())) 1664 TEST_NEON(sminv_3, sminv(h0, v1.V8H())) 1665 TEST_NEON(sminv_4, sminv(s0, v1.V4S())) 1666 TEST_NEON(smin_0, smin(v0.V8B(), v1.V8B(), v2.V8B())) 1667 TEST_NEON(smin_1, smin(v0.V16B(), v1.V16B(), v2.V16B())) 1668 TEST_NEON(smin_2, smin(v0.V4H(), v1.V4H(), v2.V4H())) 1669 TEST_NEON(smin_3, smin(v0.V8H(), v1.V8H(), v2.V8H())) 1670 TEST_NEON(smin_4, smin(v0.V2S(), v1.V2S(), v2.V2S())) 1671 TEST_NEON(smin_5, smin(v0.V4S(), v1.V4S(), v2.V4S())) 1672 TEST_NEON(smlal_0, smlal(v0.V4S(), v1.V4H(), v2.H(), 5)) 1673 TEST_NEON(smlal_1, smlal(v0.V2D(), v1.V2S(), v2.S(), 0)) 1674 TEST_NEON(smlal2_0, smlal2(v0.V4S(), v1.V8H(), v2.H(), 7)) 1675 TEST_NEON(smlal2_1, smlal2(v0.V2D(), v1.V4S(), v2.S(), 1)) 1676 TEST_NEON(smlal_2, smlal(v0.V8H(), v1.V8B(), v2.V8B())) 1677 TEST_NEON(smlal_3, smlal(v0.V4S(), v1.V4H(), v2.V4H())) 1678 TEST_NEON(smlal_4, smlal(v0.V2D(), v1.V2S(), v2.V2S())) 1679 TEST_NEON(smlal2_2, smlal2(v0.V8H(), v1.V16B(), v2.V16B())) 1680 TEST_NEON(smlal2_3, smlal2(v0.V4S(), v1.V8H(), v2.V8H())) 1681 TEST_NEON(smlal2_4, smlal2(v0.V2D(), v1.V4S(), v2.V4S())) 1682 TEST_NEON(smlsl_0, smlsl(v0.V4S(), v1.V4H(), v2.H(), 3)) 1683 TEST_NEON(smlsl_1, smlsl(v0.V2D(), v1.V2S(), v2.S(), 3)) 1684 TEST_NEON(smlsl2_0, smlsl2(v0.V4S(), v1.V8H(), v2.H(), 1)) 1685 TEST_NEON(smlsl2_1, smlsl2(v0.V2D(), v1.V4S(), v2.S(), 2)) 1686 TEST_NEON(smlsl_2, smlsl(v0.V8H(), v1.V8B(), v2.V8B())) 1687 TEST_NEON(smlsl_3, smlsl(v0.V4S(), v1.V4H(), v2.V4H())) 1688 TEST_NEON(smlsl_4, smlsl(v0.V2D(), v1.V2S(), v2.V2S())) 1689 TEST_NEON(smlsl2_2, smlsl2(v0.V8H(), v1.V16B(), v2.V16B())) 1690 TEST_NEON(smlsl2_3, smlsl2(v0.V4S(), v1.V8H(), v2.V8H())) 1691 TEST_NEON(smlsl2_4, smlsl2(v0.V2D(), v1.V4S(), v2.V4S())) 1692 TEST_NEON(smov_0, smov(w0, v1.B(), 4)) 1693 TEST_NEON(smov_1, smov(w0, v1.H(), 1)) 1694 TEST_NEON(smov_2, smov(x0, v1.B(), 6)) 1695 TEST_NEON(smov_3, smov(x0, v1.H(), 7)) 1696 TEST_NEON(smov_4, smov(x0, v1.S(), 2)) 1697 TEST_NEON(smull_0, smull(v0.V4S(), v1.V4H(), v2.H(), 6)) 1698 TEST_NEON(smull_1, smull(v0.V2D(), v1.V2S(), v2.S(), 3)) 1699 TEST_NEON(smull2_0, smull2(v0.V4S(), v1.V8H(), v2.H(), 3)) 1700 TEST_NEON(smull2_1, smull2(v0.V2D(), v1.V4S(), v2.S(), 2)) 1701 TEST_NEON(smull_2, smull(v0.V8H(), v1.V8B(), v2.V8B())) 1702 TEST_NEON(smull_3, smull(v0.V4S(), v1.V4H(), v2.V4H())) 1703 TEST_NEON(smull_4, smull(v0.V2D(), v1.V2S(), v2.V2S())) 1704 TEST_NEON(smull2_2, smull2(v0.V8H(), v1.V16B(), v2.V16B())) 1705 TEST_NEON(smull2_3, smull2(v0.V4S(), v1.V8H(), v2.V8H())) 1706 TEST_NEON(smull2_4, smull2(v0.V2D(), v1.V4S(), v2.V4S())) 1707 TEST_NEON(sqabs_0, sqabs(v0.V8B(), v1.V8B())) 1708 TEST_NEON(sqabs_1, sqabs(v0.V16B(), v1.V16B())) 1709 TEST_NEON(sqabs_2, sqabs(v0.V4H(), v1.V4H())) 1710 TEST_NEON(sqabs_3, sqabs(v0.V8H(), v1.V8H())) 1711 TEST_NEON(sqabs_4, sqabs(v0.V2S(), v1.V2S())) 1712 TEST_NEON(sqabs_5, sqabs(v0.V4S(), v1.V4S())) 1713 TEST_NEON(sqabs_6, sqabs(v0.V2D(), v1.V2D())) 1714 TEST_NEON(sqabs_7, sqabs(b0, b1)) 1715 TEST_NEON(sqabs_8, sqabs(h0, h1)) 1716 TEST_NEON(sqabs_9, sqabs(s0, s1)) 1717 TEST_NEON(sqabs_10, sqabs(d0, d1)) 1718 TEST_NEON(sqadd_0, sqadd(v0.V8B(), v1.V8B(), v2.V8B())) 1719 TEST_NEON(sqadd_1, sqadd(v0.V16B(), v1.V16B(), v2.V16B())) 1720 TEST_NEON(sqadd_2, sqadd(v0.V4H(), v1.V4H(), v2.V4H())) 1721 TEST_NEON(sqadd_3, sqadd(v0.V8H(), v1.V8H(), v2.V8H())) 1722 TEST_NEON(sqadd_4, sqadd(v0.V2S(), v1.V2S(), v2.V2S())) 1723 TEST_NEON(sqadd_5, sqadd(v0.V4S(), v1.V4S(), v2.V4S())) 1724 TEST_NEON(sqadd_6, sqadd(v0.V2D(), v1.V2D(), v2.V2D())) 1725 TEST_NEON(sqadd_7, sqadd(b0, b1, b2)) 1726 TEST_NEON(sqadd_8, sqadd(h0, h1, h2)) 1727 TEST_NEON(sqadd_9, sqadd(s0, s1, s2)) 1728 TEST_NEON(sqadd_10, sqadd(d0, d1, d2)) 1729 TEST_NEON(sqdmlal_0, sqdmlal(v0.V4S(), v1.V4H(), v2.H(), 3)) 1730 TEST_NEON(sqdmlal_1, sqdmlal(v0.V2D(), v1.V2S(), v2.S(), 2)) 1731 TEST_NEON(sqdmlal2_0, sqdmlal2(v0.V4S(), v1.V8H(), v2.H(), 3)) 1732 TEST_NEON(sqdmlal2_1, sqdmlal2(v0.V2D(), v1.V4S(), v2.S(), 0)) 1733 TEST_NEON(sqdmlal_2, sqdmlal(s0, h1, v2.H(), 1)) 1734 TEST_NEON(sqdmlal_3, sqdmlal(d0, s1, v2.S(), 1)) 1735 TEST_NEON(sqdmlal_4, sqdmlal(v0.V4S(), v1.V4H(), v2.V4H())) 1736 TEST_NEON(sqdmlal_5, sqdmlal(v0.V2D(), v1.V2S(), v2.V2S())) 1737 TEST_NEON(sqdmlal2_2, sqdmlal2(v0.V4S(), v1.V8H(), v2.V8H())) 1738 TEST_NEON(sqdmlal2_3, sqdmlal2(v0.V2D(), v1.V4S(), v2.V4S())) 1739 TEST_NEON(sqdmlal_6, sqdmlal(s0, h1, h2)) 1740 TEST_NEON(sqdmlal_7, sqdmlal(d0, s1, s2)) 1741 TEST_NEON(sqdmlsl_0, sqdmlsl(v0.V4S(), v1.V4H(), v2.H(), 6)) 1742 TEST_NEON(sqdmlsl_1, sqdmlsl(v0.V2D(), v1.V2S(), v2.S(), 0)) 1743 TEST_NEON(sqdmlsl2_0, sqdmlsl2(v0.V4S(), v1.V8H(), v2.H(), 6)) 1744 TEST_NEON(sqdmlsl2_1, sqdmlsl2(v0.V2D(), v1.V4S(), v2.S(), 3)) 1745 TEST_NEON(sqdmlsl_2, sqdmlsl(s0, h1, v2.H(), 1)) 1746 TEST_NEON(sqdmlsl_3, sqdmlsl(d0, s1, v2.S(), 2)) 1747 TEST_NEON(sqdmlsl_4, sqdmlsl(v0.V4S(), v1.V4H(), v2.V4H())) 1748 TEST_NEON(sqdmlsl_5, sqdmlsl(v0.V2D(), v1.V2S(), v2.V2S())) 1749 TEST_NEON(sqdmlsl2_2, sqdmlsl2(v0.V4S(), v1.V8H(), v2.V8H())) 1750 TEST_NEON(sqdmlsl2_3, sqdmlsl2(v0.V2D(), v1.V4S(), v2.V4S())) 1751 TEST_NEON(sqdmlsl_6, sqdmlsl(s0, h1, h2)) 1752 TEST_NEON(sqdmlsl_7, sqdmlsl(d0, s1, s2)) 1753 TEST_NEON(sqdmulh_0, sqdmulh(v0.V4H(), v1.V4H(), v2.H(), 2)) 1754 TEST_NEON(sqdmulh_1, sqdmulh(v0.V8H(), v1.V8H(), v2.H(), 2)) 1755 TEST_NEON(sqdmulh_2, sqdmulh(v0.V2S(), v1.V2S(), v2.S(), 1)) 1756 TEST_NEON(sqdmulh_3, sqdmulh(v0.V4S(), v1.V4S(), v2.S(), 2)) 1757 TEST_NEON(sqdmulh_4, sqdmulh(h0, h1, v2.H(), 2)) 1758 TEST_NEON(sqdmulh_5, sqdmulh(s0, s1, v2.S(), 0)) 1759 TEST_NEON(sqdmulh_6, sqdmulh(v0.V4H(), v1.V4H(), v2.V4H())) 1760 TEST_NEON(sqdmulh_7, sqdmulh(v0.V8H(), v1.V8H(), v2.V8H())) 1761 TEST_NEON(sqdmulh_8, sqdmulh(v0.V2S(), v1.V2S(), v2.V2S())) 1762 TEST_NEON(sqdmulh_9, sqdmulh(v0.V4S(), v1.V4S(), v2.V4S())) 1763 TEST_NEON(sqdmulh_10, sqdmulh(h0, h1, h2)) 1764 TEST_NEON(sqdmulh_11, sqdmulh(s0, s1, s2)) 1765 TEST_NEON(sqdmull_0, sqdmull(v0.V4S(), v1.V4H(), v2.H(), 1)) 1766 TEST_NEON(sqdmull_1, sqdmull(v0.V2D(), v1.V2S(), v2.S(), 3)) 1767 TEST_NEON(sqdmull2_0, sqdmull2(v0.V4S(), v1.V8H(), v2.H(), 0)) 1768 TEST_NEON(sqdmull2_1, sqdmull2(v0.V2D(), v1.V4S(), v2.S(), 3)) 1769 TEST_NEON(sqdmull_2, sqdmull(s0, h1, v2.H(), 2)) 1770 TEST_NEON(sqdmull_3, sqdmull(d0, s1, v2.S(), 1)) 1771 TEST_NEON(sqdmull_4, sqdmull(v0.V4S(), v1.V4H(), v2.V4H())) 1772 TEST_NEON(sqdmull_5, sqdmull(v0.V2D(), v1.V2S(), v2.V2S())) 1773 TEST_NEON(sqdmull2_2, sqdmull2(v0.V4S(), v1.V8H(), v2.V8H())) 1774 TEST_NEON(sqdmull2_3, sqdmull2(v0.V2D(), v1.V4S(), v2.V4S())) 1775 TEST_NEON(sqdmull_6, sqdmull(s0, h1, h2)) 1776 TEST_NEON(sqdmull_7, sqdmull(d0, s1, s2)) 1777 TEST_NEON(sqneg_0, sqneg(v0.V8B(), v1.V8B())) 1778 TEST_NEON(sqneg_1, sqneg(v0.V16B(), v1.V16B())) 1779 TEST_NEON(sqneg_2, sqneg(v0.V4H(), v1.V4H())) 1780 TEST_NEON(sqneg_3, sqneg(v0.V8H(), v1.V8H())) 1781 TEST_NEON(sqneg_4, sqneg(v0.V2S(), v1.V2S())) 1782 TEST_NEON(sqneg_5, sqneg(v0.V4S(), v1.V4S())) 1783 TEST_NEON(sqneg_6, sqneg(v0.V2D(), v1.V2D())) 1784 TEST_NEON(sqneg_7, sqneg(b0, b1)) 1785 TEST_NEON(sqneg_8, sqneg(h0, h1)) 1786 TEST_NEON(sqneg_9, sqneg(s0, s1)) 1787 TEST_NEON(sqneg_10, sqneg(d0, d1)) 1788 TEST_NEON(sqrdmulh_0, sqrdmulh(v0.V4H(), v1.V4H(), v2.H(), 0)) 1789 TEST_NEON(sqrdmulh_1, sqrdmulh(v0.V8H(), v1.V8H(), v2.H(), 2)) 1790 TEST_NEON(sqrdmulh_2, sqrdmulh(v0.V2S(), v1.V2S(), v2.S(), 3)) 1791 TEST_NEON(sqrdmulh_3, sqrdmulh(v0.V4S(), v1.V4S(), v2.S(), 1)) 1792 TEST_NEON(sqrdmulh_4, sqrdmulh(h0, h1, v2.H(), 2)) 1793 TEST_NEON(sqrdmulh_5, sqrdmulh(s0, s1, v2.S(), 0)) 1794 TEST_NEON(sqrdmulh_6, sqrdmulh(v0.V4H(), v1.V4H(), v2.V4H())) 1795 TEST_NEON(sqrdmulh_7, sqrdmulh(v0.V8H(), v1.V8H(), v2.V8H())) 1796 TEST_NEON(sqrdmulh_8, sqrdmulh(v0.V2S(), v1.V2S(), v2.V2S())) 1797 TEST_NEON(sqrdmulh_9, sqrdmulh(v0.V4S(), v1.V4S(), v2.V4S())) 1798 TEST_NEON(sqrdmulh_10, sqrdmulh(h0, h1, h2)) 1799 TEST_NEON(sqrdmulh_11, sqrdmulh(s0, s1, s2)) 1800 TEST_NEON(sqrshl_0, sqrshl(v0.V8B(), v1.V8B(), v2.V8B())) 1801 TEST_NEON(sqrshl_1, sqrshl(v0.V16B(), v1.V16B(), v2.V16B())) 1802 TEST_NEON(sqrshl_2, sqrshl(v0.V4H(), v1.V4H(), v2.V4H())) 1803 TEST_NEON(sqrshl_3, sqrshl(v0.V8H(), v1.V8H(), v2.V8H())) 1804 TEST_NEON(sqrshl_4, sqrshl(v0.V2S(), v1.V2S(), v2.V2S())) 1805 TEST_NEON(sqrshl_5, sqrshl(v0.V4S(), v1.V4S(), v2.V4S())) 1806 TEST_NEON(sqrshl_6, sqrshl(v0.V2D(), v1.V2D(), v2.V2D())) 1807 TEST_NEON(sqrshl_7, sqrshl(b0, b1, b2)) 1808 TEST_NEON(sqrshl_8, sqrshl(h0, h1, h2)) 1809 TEST_NEON(sqrshl_9, sqrshl(s0, s1, s2)) 1810 TEST_NEON(sqrshl_10, sqrshl(d0, d1, d2)) 1811 TEST_NEON(sqrshrn_0, sqrshrn(v0.V8B(), v1.V8H(), 1)) 1812 TEST_NEON(sqrshrn_1, sqrshrn(v0.V4H(), v1.V4S(), 14)) 1813 TEST_NEON(sqrshrn_2, sqrshrn(v0.V2S(), v1.V2D(), 29)) 1814 TEST_NEON(sqrshrn2_0, sqrshrn2(v0.V16B(), v1.V8H(), 3)) 1815 TEST_NEON(sqrshrn2_1, sqrshrn2(v0.V8H(), v1.V4S(), 11)) 1816 TEST_NEON(sqrshrn2_2, sqrshrn2(v0.V4S(), v1.V2D(), 25)) 1817 TEST_NEON(sqrshrn_3, sqrshrn(b0, h1, 5)) 1818 TEST_NEON(sqrshrn_4, sqrshrn(h0, s1, 4)) 1819 TEST_NEON(sqrshrn_5, sqrshrn(s0, d1, 30)) 1820 TEST_NEON(sqrshrun_0, sqrshrun(v0.V8B(), v1.V8H(), 3)) 1821 TEST_NEON(sqrshrun_1, sqrshrun(v0.V4H(), v1.V4S(), 6)) 1822 TEST_NEON(sqrshrun_2, sqrshrun(v0.V2S(), v1.V2D(), 13)) 1823 TEST_NEON(sqrshrun2_0, sqrshrun2(v0.V16B(), v1.V8H(), 1)) 1824 TEST_NEON(sqrshrun2_1, sqrshrun2(v0.V8H(), v1.V4S(), 7)) 1825 TEST_NEON(sqrshrun2_2, sqrshrun2(v0.V4S(), v1.V2D(), 29)) 1826 TEST_NEON(sqrshrun_3, sqrshrun(b0, h1, 7)) 1827 TEST_NEON(sqrshrun_4, sqrshrun(h0, s1, 13)) 1828 TEST_NEON(sqrshrun_5, sqrshrun(s0, d1, 29)) 1829 TEST_NEON(sqshlu_0, sqshlu(v0.V8B(), v1.V8B(), 4)) 1830 TEST_NEON(sqshlu_1, sqshlu(v0.V16B(), v1.V16B(), 7)) 1831 TEST_NEON(sqshlu_2, sqshlu(v0.V4H(), v1.V4H(), 14)) 1832 TEST_NEON(sqshlu_3, sqshlu(v0.V8H(), v1.V8H(), 15)) 1833 TEST_NEON(sqshlu_4, sqshlu(v0.V2S(), v1.V2S(), 13)) 1834 TEST_NEON(sqshlu_5, sqshlu(v0.V4S(), v1.V4S(), 6)) 1835 TEST_NEON(sqshlu_6, sqshlu(v0.V2D(), v1.V2D(), 42)) 1836 TEST_NEON(sqshlu_7, sqshlu(b0, b1, 3)) 1837 TEST_NEON(sqshlu_8, sqshlu(h0, h1, 15)) 1838 TEST_NEON(sqshlu_9, sqshlu(s0, s1, 21)) 1839 TEST_NEON(sqshlu_10, sqshlu(d0, d1, 15)) 1840 TEST_NEON(sqshl_0, sqshl(v0.V8B(), v1.V8B(), 6)) 1841 TEST_NEON(sqshl_1, sqshl(v0.V16B(), v1.V16B(), 6)) 1842 TEST_NEON(sqshl_2, sqshl(v0.V4H(), v1.V4H(), 8)) 1843 TEST_NEON(sqshl_3, sqshl(v0.V8H(), v1.V8H(), 9)) 1844 TEST_NEON(sqshl_4, sqshl(v0.V2S(), v1.V2S(), 28)) 1845 TEST_NEON(sqshl_5, sqshl(v0.V4S(), v1.V4S(), 27)) 1846 TEST_NEON(sqshl_6, sqshl(v0.V2D(), v1.V2D(), 50)) 1847 TEST_NEON(sqshl_7, sqshl(b0, b1, 4)) 1848 TEST_NEON(sqshl_8, sqshl(h0, h1, 13)) 1849 TEST_NEON(sqshl_9, sqshl(s0, s1, 15)) 1850 TEST_NEON(sqshl_10, sqshl(d0, d1, 40)) 1851 TEST_NEON(sqshl_11, sqshl(v0.V8B(), v1.V8B(), v2.V8B())) 1852 TEST_NEON(sqshl_12, sqshl(v0.V16B(), v1.V16B(), v2.V16B())) 1853 TEST_NEON(sqshl_13, sqshl(v0.V4H(), v1.V4H(), v2.V4H())) 1854 TEST_NEON(sqshl_14, sqshl(v0.V8H(), v1.V8H(), v2.V8H())) 1855 TEST_NEON(sqshl_15, sqshl(v0.V2S(), v1.V2S(), v2.V2S())) 1856 TEST_NEON(sqshl_16, sqshl(v0.V4S(), v1.V4S(), v2.V4S())) 1857 TEST_NEON(sqshl_17, sqshl(v0.V2D(), v1.V2D(), v2.V2D())) 1858 TEST_NEON(sqshl_18, sqshl(b0, b1, b2)) 1859 TEST_NEON(sqshl_19, sqshl(h0, h1, h2)) 1860 TEST_NEON(sqshl_20, sqshl(s0, s1, s2)) 1861 TEST_NEON(sqshl_21, sqshl(d0, d1, d2)) 1862 TEST_NEON(sqshrn_0, sqshrn(v0.V8B(), v1.V8H(), 5)) 1863 TEST_NEON(sqshrn_1, sqshrn(v0.V4H(), v1.V4S(), 5)) 1864 TEST_NEON(sqshrn_2, sqshrn(v0.V2S(), v1.V2D(), 2)) 1865 TEST_NEON(sqshrn2_0, sqshrn2(v0.V16B(), v1.V8H(), 6)) 1866 TEST_NEON(sqshrn2_1, sqshrn2(v0.V8H(), v1.V4S(), 10)) 1867 TEST_NEON(sqshrn2_2, sqshrn2(v0.V4S(), v1.V2D(), 2)) 1868 TEST_NEON(sqshrn_3, sqshrn(b0, h1, 2)) 1869 TEST_NEON(sqshrn_4, sqshrn(h0, s1, 8)) 1870 TEST_NEON(sqshrn_5, sqshrn(s0, d1, 27)) 1871 TEST_NEON(sqshrun_0, sqshrun(v0.V8B(), v1.V8H(), 4)) 1872 TEST_NEON(sqshrun_1, sqshrun(v0.V4H(), v1.V4S(), 11)) 1873 TEST_NEON(sqshrun_2, sqshrun(v0.V2S(), v1.V2D(), 20)) 1874 TEST_NEON(sqshrun2_0, sqshrun2(v0.V16B(), v1.V8H(), 6)) 1875 TEST_NEON(sqshrun2_1, sqshrun2(v0.V8H(), v1.V4S(), 5)) 1876 TEST_NEON(sqshrun2_2, sqshrun2(v0.V4S(), v1.V2D(), 18)) 1877 TEST_NEON(sqshrun_3, sqshrun(b0, h1, 2)) 1878 TEST_NEON(sqshrun_4, sqshrun(h0, s1, 10)) 1879 TEST_NEON(sqshrun_5, sqshrun(s0, d1, 16)) 1880 TEST_NEON(sqsub_0, sqsub(v0.V8B(), v1.V8B(), v2.V8B())) 1881 TEST_NEON(sqsub_1, sqsub(v0.V16B(), v1.V16B(), v2.V16B())) 1882 TEST_NEON(sqsub_2, sqsub(v0.V4H(), v1.V4H(), v2.V4H())) 1883 TEST_NEON(sqsub_3, sqsub(v0.V8H(), v1.V8H(), v2.V8H())) 1884 TEST_NEON(sqsub_4, sqsub(v0.V2S(), v1.V2S(), v2.V2S())) 1885 TEST_NEON(sqsub_5, sqsub(v0.V4S(), v1.V4S(), v2.V4S())) 1886 TEST_NEON(sqsub_6, sqsub(v0.V2D(), v1.V2D(), v2.V2D())) 1887 TEST_NEON(sqsub_7, sqsub(b0, b1, b2)) 1888 TEST_NEON(sqsub_8, sqsub(h0, h1, h2)) 1889 TEST_NEON(sqsub_9, sqsub(s0, s1, s2)) 1890 TEST_NEON(sqsub_10, sqsub(d0, d1, d2)) 1891 TEST_NEON(sqxtn_0, sqxtn(v0.V8B(), v1.V8H())) 1892 TEST_NEON(sqxtn_1, sqxtn(v0.V4H(), v1.V4S())) 1893 TEST_NEON(sqxtn_2, sqxtn(v0.V2S(), v1.V2D())) 1894 TEST_NEON(sqxtn2_0, sqxtn2(v0.V16B(), v1.V8H())) 1895 TEST_NEON(sqxtn2_1, sqxtn2(v0.V8H(), v1.V4S())) 1896 TEST_NEON(sqxtn2_2, sqxtn2(v0.V4S(), v1.V2D())) 1897 TEST_NEON(sqxtn_3, sqxtn(b0, h1)) 1898 TEST_NEON(sqxtn_4, sqxtn(h0, s1)) 1899 TEST_NEON(sqxtn_5, sqxtn(s0, d1)) 1900 TEST_NEON(sqxtun_0, sqxtun(v0.V8B(), v1.V8H())) 1901 TEST_NEON(sqxtun_1, sqxtun(v0.V4H(), v1.V4S())) 1902 TEST_NEON(sqxtun_2, sqxtun(v0.V2S(), v1.V2D())) 1903 TEST_NEON(sqxtun2_0, sqxtun2(v0.V16B(), v1.V8H())) 1904 TEST_NEON(sqxtun2_1, sqxtun2(v0.V8H(), v1.V4S())) 1905 TEST_NEON(sqxtun2_2, sqxtun2(v0.V4S(), v1.V2D())) 1906 TEST_NEON(sqxtun_3, sqxtun(b0, h1)) 1907 TEST_NEON(sqxtun_4, sqxtun(h0, s1)) 1908 TEST_NEON(sqxtun_5, sqxtun(s0, d1)) 1909 TEST_NEON(srhadd_0, srhadd(v0.V8B(), v1.V8B(), v2.V8B())) 1910 TEST_NEON(srhadd_1, srhadd(v0.V16B(), v1.V16B(), v2.V16B())) 1911 TEST_NEON(srhadd_2, srhadd(v0.V4H(), v1.V4H(), v2.V4H())) 1912 TEST_NEON(srhadd_3, srhadd(v0.V8H(), v1.V8H(), v2.V8H())) 1913 TEST_NEON(srhadd_4, srhadd(v0.V2S(), v1.V2S(), v2.V2S())) 1914 TEST_NEON(srhadd_5, srhadd(v0.V4S(), v1.V4S(), v2.V4S())) 1915 TEST_NEON(sri_0, sri(v0.V8B(), v1.V8B(), 7)) 1916 TEST_NEON(sri_1, sri(v0.V16B(), v1.V16B(), 3)) 1917 TEST_NEON(sri_2, sri(v0.V4H(), v1.V4H(), 10)) 1918 TEST_NEON(sri_3, sri(v0.V8H(), v1.V8H(), 7)) 1919 TEST_NEON(sri_4, sri(v0.V2S(), v1.V2S(), 12)) 1920 TEST_NEON(sri_5, sri(v0.V4S(), v1.V4S(), 15)) 1921 TEST_NEON(sri_6, sri(v0.V2D(), v1.V2D(), 51)) 1922 TEST_NEON(sri_7, sri(d0, d1, 47)) 1923 TEST_NEON(srshl_0, srshl(v0.V8B(), v1.V8B(), v2.V8B())) 1924 TEST_NEON(srshl_1, srshl(v0.V16B(), v1.V16B(), v2.V16B())) 1925 TEST_NEON(srshl_2, srshl(v0.V4H(), v1.V4H(), v2.V4H())) 1926 TEST_NEON(srshl_3, srshl(v0.V8H(), v1.V8H(), v2.V8H())) 1927 TEST_NEON(srshl_4, srshl(v0.V2S(), v1.V2S(), v2.V2S())) 1928 TEST_NEON(srshl_5, srshl(v0.V4S(), v1.V4S(), v2.V4S())) 1929 TEST_NEON(srshl_6, srshl(v0.V2D(), v1.V2D(), v2.V2D())) 1930 TEST_NEON(srshl_7, srshl(d0, d1, d2)) 1931 TEST_NEON(srshr_0, srshr(v0.V8B(), v1.V8B(), 2)) 1932 TEST_NEON(srshr_1, srshr(v0.V16B(), v1.V16B(), 3)) 1933 TEST_NEON(srshr_2, srshr(v0.V4H(), v1.V4H(), 2)) 1934 TEST_NEON(srshr_3, srshr(v0.V8H(), v1.V8H(), 7)) 1935 TEST_NEON(srshr_4, srshr(v0.V2S(), v1.V2S(), 25)) 1936 TEST_NEON(srshr_5, srshr(v0.V4S(), v1.V4S(), 27)) 1937 TEST_NEON(srshr_6, srshr(v0.V2D(), v1.V2D(), 43)) 1938 TEST_NEON(srshr_7, srshr(d0, d1, 28)) 1939 TEST_NEON(srsra_0, srsra(v0.V8B(), v1.V8B(), 4)) 1940 TEST_NEON(srsra_1, srsra(v0.V16B(), v1.V16B(), 2)) 1941 TEST_NEON(srsra_2, srsra(v0.V4H(), v1.V4H(), 13)) 1942 TEST_NEON(srsra_3, srsra(v0.V8H(), v1.V8H(), 6)) 1943 TEST_NEON(srsra_4, srsra(v0.V2S(), v1.V2S(), 4)) 1944 TEST_NEON(srsra_5, srsra(v0.V4S(), v1.V4S(), 1)) 1945 TEST_NEON(srsra_6, srsra(v0.V2D(), v1.V2D(), 17)) 1946 TEST_NEON(srsra_7, srsra(d0, d1, 16)) 1947 TEST_NEON(sshll_0, sshll(v0.V8H(), v1.V8B(), 2)) 1948 TEST_NEON(sshll_1, sshll(v0.V4S(), v1.V4H(), 4)) 1949 TEST_NEON(sshll_2, sshll(v0.V2D(), v1.V2S(), 28)) 1950 TEST_NEON(sshll2_0, sshll2(v0.V8H(), v1.V16B(), 6)) 1951 TEST_NEON(sshll2_1, sshll2(v0.V4S(), v1.V8H(), 2)) 1952 TEST_NEON(sshll2_2, sshll2(v0.V2D(), v1.V4S(), 22)) 1953 TEST_NEON(sshl_0, sshl(v0.V8B(), v1.V8B(), v2.V8B())) 1954 TEST_NEON(sshl_1, sshl(v0.V16B(), v1.V16B(), v2.V16B())) 1955 TEST_NEON(sshl_2, sshl(v0.V4H(), v1.V4H(), v2.V4H())) 1956 TEST_NEON(sshl_3, sshl(v0.V8H(), v1.V8H(), v2.V8H())) 1957 TEST_NEON(sshl_4, sshl(v0.V2S(), v1.V2S(), v2.V2S())) 1958 TEST_NEON(sshl_5, sshl(v0.V4S(), v1.V4S(), v2.V4S())) 1959 TEST_NEON(sshl_6, sshl(v0.V2D(), v1.V2D(), v2.V2D())) 1960 TEST_NEON(sshl_7, sshl(d0, d1, d2)) 1961 TEST_NEON(sshr_0, sshr(v0.V8B(), v1.V8B(), 7)) 1962 TEST_NEON(sshr_1, sshr(v0.V16B(), v1.V16B(), 1)) 1963 TEST_NEON(sshr_2, sshr(v0.V4H(), v1.V4H(), 9)) 1964 TEST_NEON(sshr_3, sshr(v0.V8H(), v1.V8H(), 13)) 1965 TEST_NEON(sshr_4, sshr(v0.V2S(), v1.V2S(), 19)) 1966 TEST_NEON(sshr_5, sshr(v0.V4S(), v1.V4S(), 26)) 1967 TEST_NEON(sshr_6, sshr(v0.V2D(), v1.V2D(), 63)) 1968 TEST_NEON(sshr_7, sshr(d0, d1, 39)) 1969 TEST_NEON(ssra_0, ssra(v0.V8B(), v1.V8B(), 5)) 1970 TEST_NEON(ssra_1, ssra(v0.V16B(), v1.V16B(), 7)) 1971 TEST_NEON(ssra_2, ssra(v0.V4H(), v1.V4H(), 14)) 1972 TEST_NEON(ssra_3, ssra(v0.V8H(), v1.V8H(), 6)) 1973 TEST_NEON(ssra_4, ssra(v0.V2S(), v1.V2S(), 12)) 1974 TEST_NEON(ssra_5, ssra(v0.V4S(), v1.V4S(), 4)) 1975 TEST_NEON(ssra_6, ssra(v0.V2D(), v1.V2D(), 16)) 1976 TEST_NEON(ssra_7, ssra(d0, d1, 53)) 1977 TEST_NEON(ssubl_0, ssubl(v0.V8H(), v1.V8B(), v2.V8B())) 1978 TEST_NEON(ssubl_1, ssubl(v0.V4S(), v1.V4H(), v2.V4H())) 1979 TEST_NEON(ssubl_2, ssubl(v0.V2D(), v1.V2S(), v2.V2S())) 1980 TEST_NEON(ssubl2_0, ssubl2(v0.V8H(), v1.V16B(), v2.V16B())) 1981 TEST_NEON(ssubl2_1, ssubl2(v0.V4S(), v1.V8H(), v2.V8H())) 1982 TEST_NEON(ssubl2_2, ssubl2(v0.V2D(), v1.V4S(), v2.V4S())) 1983 TEST_NEON(ssubw_0, ssubw(v0.V8H(), v1.V8H(), v2.V8B())) 1984 TEST_NEON(ssubw_1, ssubw(v0.V4S(), v1.V4S(), v2.V4H())) 1985 TEST_NEON(ssubw_2, ssubw(v0.V2D(), v1.V2D(), v2.V2S())) 1986 TEST_NEON(ssubw2_0, ssubw2(v0.V8H(), v1.V8H(), v2.V16B())) 1987 TEST_NEON(ssubw2_1, ssubw2(v0.V4S(), v1.V4S(), v2.V8H())) 1988 TEST_NEON(ssubw2_2, ssubw2(v0.V2D(), v1.V2D(), v2.V4S())) 1989 TEST_NEON(st1_0, st1(v0.V8B(), MemOperand(x1))) 1990 TEST_NEON(st1_1, st1(v0.V16B(), MemOperand(x1))) 1991 TEST_NEON(st1_2, st1(v0.V4H(), MemOperand(x1))) 1992 TEST_NEON(st1_3, st1(v0.V8H(), MemOperand(x1))) 1993 TEST_NEON(st1_4, st1(v0.V2S(), MemOperand(x1))) 1994 TEST_NEON(st1_5, st1(v0.V4S(), MemOperand(x1))) 1995 TEST_NEON(st1_6, st1(v0.V1D(), MemOperand(x1))) 1996 TEST_NEON(st1_7, st1(v0.V2D(), MemOperand(x1))) 1997 TEST_NEON(st1_8, st1(v0.V8B(), v1.V8B(), MemOperand(x2))) 1998 TEST_NEON(st1_9, st1(v0.V16B(), v1.V16B(), MemOperand(x2))) 1999 TEST_NEON(st1_10, st1(v0.V4H(), v1.V4H(), MemOperand(x2))) 2000 TEST_NEON(st1_11, st1(v0.V8H(), v1.V8H(), MemOperand(x2))) 2001 TEST_NEON(st1_12, st1(v0.V2S(), v1.V2S(), MemOperand(x2))) 2002 TEST_NEON(st1_13, st1(v0.V4S(), v1.V4S(), MemOperand(x2))) 2003 TEST_NEON(st1_14, st1(v0.V1D(), v1.V1D(), MemOperand(x2))) 2004 TEST_NEON(st1_15, st1(v0.V2D(), v1.V2D(), MemOperand(x2))) 2005 TEST_NEON(st1_16, st1(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3))) 2006 TEST_NEON(st1_17, st1(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3))) 2007 TEST_NEON(st1_18, st1(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3))) 2008 TEST_NEON(st1_19, st1(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3))) 2009 TEST_NEON(st1_20, st1(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3))) 2010 TEST_NEON(st1_21, st1(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3))) 2011 TEST_NEON(st1_22, st1(v0.V1D(), v1.V1D(), v2.V1D(), MemOperand(x3))) 2012 TEST_NEON(st1_23, st1(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3))) 2013 TEST_NEON(st1_24, st1(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4))) 2014 TEST_NEON(st1_25, 2015 st1(v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B(), MemOperand(x4))) 2016 TEST_NEON(st1_26, st1(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4))) 2017 TEST_NEON(st1_27, st1(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4))) 2018 TEST_NEON(st1_28, st1(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4))) 2019 TEST_NEON(st1_29, st1(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4))) 2020 TEST_NEON(st1_30, st1(v0.V1D(), v1.V1D(), v2.V1D(), v3.V1D(), MemOperand(x4))) 2021 TEST_NEON(st1_31, st1(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4))) 2022 TEST_NEON(st1_32, st1(v0.V8B(), MemOperand(x1, 8, PostIndex))) 2023 TEST_NEON(st1_33, st1(v0.V16B(), MemOperand(x1, 16, PostIndex))) 2024 TEST_NEON(st1_34, st1(v0.V4H(), MemOperand(x1, 8, PostIndex))) 2025 TEST_NEON(st1_35, st1(v0.V8H(), MemOperand(x1, 16, PostIndex))) 2026 TEST_NEON(st1_36, st1(v0.V2S(), MemOperand(x1, 8, PostIndex))) 2027 TEST_NEON(st1_37, st1(v0.V4S(), MemOperand(x1, 16, PostIndex))) 2028 TEST_NEON(st1_38, st1(v0.V1D(), MemOperand(x1, 8, PostIndex))) 2029 TEST_NEON(st1_39, st1(v0.V2D(), MemOperand(x1, 16, PostIndex))) 2030 TEST_NEON(st1_40, st1(v0.V8B(), v1.V8B(), MemOperand(x2, 16, PostIndex))) 2031 TEST_NEON(st1_41, st1(v0.V16B(), v1.V16B(), MemOperand(x2, 32, PostIndex))) 2032 TEST_NEON(st1_42, st1(v0.V4H(), v1.V4H(), MemOperand(x2, 16, PostIndex))) 2033 TEST_NEON(st1_43, st1(v0.V8H(), v1.V8H(), MemOperand(x2, 32, PostIndex))) 2034 TEST_NEON(st1_44, st1(v0.V2S(), v1.V2S(), MemOperand(x2, 16, PostIndex))) 2035 TEST_NEON(st1_45, st1(v0.V4S(), v1.V4S(), MemOperand(x2, 32, PostIndex))) 2036 TEST_NEON(st1_46, st1(v0.V1D(), v1.V1D(), MemOperand(x2, 16, PostIndex))) 2037 TEST_NEON(st1_47, st1(v0.V2D(), v1.V2D(), MemOperand(x2, 32, PostIndex))) 2038 TEST_NEON(st1_48, 2039 st1(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3, 24, PostIndex))) 2040 TEST_NEON(st1_49, 2041 st1(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3, 48, PostIndex))) 2042 TEST_NEON(st1_50, 2043 st1(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3, 24, PostIndex))) 2044 TEST_NEON(st1_51, 2045 st1(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3, 48, PostIndex))) 2046 TEST_NEON(st1_52, 2047 st1(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3, 24, PostIndex))) 2048 TEST_NEON(st1_53, 2049 st1(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3, 48, PostIndex))) 2050 TEST_NEON(st1_54, 2051 st1(v0.V1D(), v1.V1D(), v2.V1D(), MemOperand(x3, 24, PostIndex))) 2052 TEST_NEON(st1_55, 2053 st1(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3, 48, PostIndex))) 2054 TEST_NEON( 2055 st1_56, 2056 st1(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4, 32, PostIndex))) 2057 TEST_NEON(st1_57, 2058 st1(v0.V16B(), 2059 v1.V16B(), 2060 v2.V16B(), 2061 v3.V16B(), 2062 MemOperand(x4, 64, PostIndex))) 2063 TEST_NEON( 2064 st1_58, 2065 st1(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4, 32, PostIndex))) 2066 TEST_NEON( 2067 st1_59, 2068 st1(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4, 64, PostIndex))) 2069 TEST_NEON( 2070 st1_60, 2071 st1(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4, 32, PostIndex))) 2072 TEST_NEON( 2073 st1_61, 2074 st1(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4, 64, PostIndex))) 2075 TEST_NEON( 2076 st1_62, 2077 st1(v0.V1D(), v1.V1D(), v2.V1D(), v3.V1D(), MemOperand(x4, 32, PostIndex))) 2078 TEST_NEON( 2079 st1_63, 2080 st1(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4, 64, PostIndex))) 2081 TEST_NEON(st1_64, st1(v0.V8B(), MemOperand(x1, x2, PostIndex))) 2082 TEST_NEON(st1_65, st1(v0.V16B(), MemOperand(x1, x2, PostIndex))) 2083 TEST_NEON(st1_66, st1(v0.V4H(), MemOperand(x1, x2, PostIndex))) 2084 TEST_NEON(st1_67, st1(v0.V8H(), MemOperand(x1, x2, PostIndex))) 2085 TEST_NEON(st1_68, st1(v0.V2S(), MemOperand(x1, x2, PostIndex))) 2086 TEST_NEON(st1_69, st1(v0.V4S(), MemOperand(x1, x2, PostIndex))) 2087 TEST_NEON(st1_70, st1(v0.V1D(), MemOperand(x1, x2, PostIndex))) 2088 TEST_NEON(st1_71, st1(v0.V2D(), MemOperand(x1, x2, PostIndex))) 2089 TEST_NEON(st1_72, st1(v0.V8B(), v1.V8B(), MemOperand(x2, x3, PostIndex))) 2090 TEST_NEON(st1_73, st1(v0.V16B(), v1.V16B(), MemOperand(x2, x3, PostIndex))) 2091 TEST_NEON(st1_74, st1(v0.V4H(), v1.V4H(), MemOperand(x2, x3, PostIndex))) 2092 TEST_NEON(st1_75, st1(v0.V8H(), v1.V8H(), MemOperand(x2, x3, PostIndex))) 2093 TEST_NEON(st1_76, st1(v0.V2S(), v1.V2S(), MemOperand(x2, x3, PostIndex))) 2094 TEST_NEON(st1_77, st1(v0.V4S(), v1.V4S(), MemOperand(x2, x3, PostIndex))) 2095 TEST_NEON(st1_78, st1(v0.V1D(), v1.V1D(), MemOperand(x2, x3, PostIndex))) 2096 TEST_NEON(st1_79, st1(v0.V2D(), v1.V2D(), MemOperand(x2, x3, PostIndex))) 2097 TEST_NEON(st1_80, 2098 st1(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3, x4, PostIndex))) 2099 TEST_NEON(st1_81, 2100 st1(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3, x4, PostIndex))) 2101 TEST_NEON(st1_82, 2102 st1(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3, x4, PostIndex))) 2103 TEST_NEON(st1_83, 2104 st1(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3, x4, PostIndex))) 2105 TEST_NEON(st1_84, 2106 st1(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3, x4, PostIndex))) 2107 TEST_NEON(st1_85, 2108 st1(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3, x4, PostIndex))) 2109 TEST_NEON(st1_86, 2110 st1(v0.V1D(), v1.V1D(), v2.V1D(), MemOperand(x3, x4, PostIndex))) 2111 TEST_NEON(st1_87, 2112 st1(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3, x4, PostIndex))) 2113 TEST_NEON( 2114 st1_88, 2115 st1(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4, x5, PostIndex))) 2116 TEST_NEON(st1_89, 2117 st1(v0.V16B(), 2118 v1.V16B(), 2119 v2.V16B(), 2120 v3.V16B(), 2121 MemOperand(x4, x5, PostIndex))) 2122 TEST_NEON( 2123 st1_90, 2124 st1(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4, x5, PostIndex))) 2125 TEST_NEON( 2126 st1_91, 2127 st1(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4, x5, PostIndex))) 2128 TEST_NEON( 2129 st1_92, 2130 st1(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4, x5, PostIndex))) 2131 TEST_NEON( 2132 st1_93, 2133 st1(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4, x5, PostIndex))) 2134 TEST_NEON( 2135 st1_94, 2136 st1(v0.V1D(), v1.V1D(), v2.V1D(), v3.V1D(), MemOperand(x4, x5, PostIndex))) 2137 TEST_NEON( 2138 st1_95, 2139 st1(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4, x5, PostIndex))) 2140 TEST_NEON(st1_96, st1(v0.B(), 13, MemOperand(x1))) 2141 TEST_NEON(st1_97, st1(v0.D(), 0, MemOperand(x1))) 2142 TEST_NEON(st1_98, st1(v0.H(), 2, MemOperand(x1))) 2143 TEST_NEON(st1_99, st1(v0.S(), 2, MemOperand(x1))) 2144 TEST_NEON(st1_100, st1(v0.B(), 0, MemOperand(x1, 1, PostIndex))) 2145 TEST_NEON(st1_101, st1(v0.B(), 7, MemOperand(x1, x2, PostIndex))) 2146 TEST_NEON(st1_102, st1(v0.D(), 1, MemOperand(x1, 8, PostIndex))) 2147 TEST_NEON(st1_103, st1(v0.D(), 1, MemOperand(x1, x2, PostIndex))) 2148 TEST_NEON(st1_104, st1(v0.H(), 6, MemOperand(x1, 2, PostIndex))) 2149 TEST_NEON(st1_105, st1(v0.H(), 7, MemOperand(x1, x2, PostIndex))) 2150 TEST_NEON(st1_106, st1(v0.S(), 0, MemOperand(x1, 4, PostIndex))) 2151 TEST_NEON(st1_107, st1(v0.S(), 2, MemOperand(x1, x2, PostIndex))) 2152 TEST_NEON(st2_0, st2(v0.V8B(), v1.V8B(), MemOperand(x2))) 2153 TEST_NEON(st2_1, st2(v0.V16B(), v1.V16B(), MemOperand(x2))) 2154 TEST_NEON(st2_2, st2(v0.V4H(), v1.V4H(), MemOperand(x2))) 2155 TEST_NEON(st2_3, st2(v0.V8H(), v1.V8H(), MemOperand(x2))) 2156 TEST_NEON(st2_4, st2(v0.V2S(), v1.V2S(), MemOperand(x2))) 2157 TEST_NEON(st2_5, st2(v0.V4S(), v1.V4S(), MemOperand(x2))) 2158 TEST_NEON(st2_6, st2(v0.V2D(), v1.V2D(), MemOperand(x2))) 2159 TEST_NEON(st2_7, st2(v0.V8B(), v1.V8B(), MemOperand(x2, 16, PostIndex))) 2160 TEST_NEON(st2_8, st2(v0.V16B(), v1.V16B(), MemOperand(x2, 32, PostIndex))) 2161 TEST_NEON(st2_9, st2(v0.V4H(), v1.V4H(), MemOperand(x2, 16, PostIndex))) 2162 TEST_NEON(st2_10, st2(v0.V8H(), v1.V8H(), MemOperand(x2, 32, PostIndex))) 2163 TEST_NEON(st2_11, st2(v0.V2S(), v1.V2S(), MemOperand(x2, 16, PostIndex))) 2164 TEST_NEON(st2_12, st2(v0.V4S(), v1.V4S(), MemOperand(x2, 32, PostIndex))) 2165 TEST_NEON(st2_13, st2(v0.V2D(), v1.V2D(), MemOperand(x2, 32, PostIndex))) 2166 TEST_NEON(st2_14, st2(v0.V8B(), v1.V8B(), MemOperand(x2, x3, PostIndex))) 2167 TEST_NEON(st2_15, st2(v0.V16B(), v1.V16B(), MemOperand(x2, x3, PostIndex))) 2168 TEST_NEON(st2_16, st2(v0.V4H(), v1.V4H(), MemOperand(x2, x3, PostIndex))) 2169 TEST_NEON(st2_17, st2(v0.V8H(), v1.V8H(), MemOperand(x2, x3, PostIndex))) 2170 TEST_NEON(st2_18, st2(v0.V2S(), v1.V2S(), MemOperand(x2, x3, PostIndex))) 2171 TEST_NEON(st2_19, st2(v0.V4S(), v1.V4S(), MemOperand(x2, x3, PostIndex))) 2172 TEST_NEON(st2_20, st2(v0.V2D(), v1.V2D(), MemOperand(x2, x3, PostIndex))) 2173 TEST_NEON(st2_21, st2(v0.B(), v1.B(), 0, MemOperand(x2))) 2174 TEST_NEON(st2_22, st2(v0.D(), v1.D(), 1, MemOperand(x2))) 2175 TEST_NEON(st2_23, st2(v0.H(), v1.H(), 5, MemOperand(x2))) 2176 TEST_NEON(st2_24, st2(v0.S(), v1.S(), 1, MemOperand(x2))) 2177 TEST_NEON(st2_25, st2(v0.B(), v1.B(), 13, MemOperand(x2, 2, PostIndex))) 2178 TEST_NEON(st2_26, st2(v0.B(), v1.B(), 14, MemOperand(x2, x3, PostIndex))) 2179 TEST_NEON(st2_27, st2(v0.D(), v1.D(), 1, MemOperand(x2, 16, PostIndex))) 2180 TEST_NEON(st2_28, st2(v0.D(), v1.D(), 1, MemOperand(x2, x3, PostIndex))) 2181 TEST_NEON(st2_29, st2(v0.H(), v1.H(), 2, MemOperand(x2, 4, PostIndex))) 2182 TEST_NEON(st2_30, st2(v0.H(), v1.H(), 4, MemOperand(x2, x3, PostIndex))) 2183 TEST_NEON(st2_31, st2(v0.S(), v1.S(), 0, MemOperand(x2, 8, PostIndex))) 2184 TEST_NEON(st2_32, st2(v0.S(), v1.S(), 0, MemOperand(x2, x3, PostIndex))) 2185 TEST_NEON(st3_0, st3(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3))) 2186 TEST_NEON(st3_1, st3(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3))) 2187 TEST_NEON(st3_2, st3(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3))) 2188 TEST_NEON(st3_3, st3(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3))) 2189 TEST_NEON(st3_4, st3(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3))) 2190 TEST_NEON(st3_5, st3(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3))) 2191 TEST_NEON(st3_6, st3(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3))) 2192 TEST_NEON(st3_7, 2193 st3(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3, 24, PostIndex))) 2194 TEST_NEON(st3_8, 2195 st3(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3, 48, PostIndex))) 2196 TEST_NEON(st3_9, 2197 st3(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3, 24, PostIndex))) 2198 TEST_NEON(st3_10, 2199 st3(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3, 48, PostIndex))) 2200 TEST_NEON(st3_11, 2201 st3(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3, 24, PostIndex))) 2202 TEST_NEON(st3_12, 2203 st3(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3, 48, PostIndex))) 2204 TEST_NEON(st3_13, 2205 st3(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3, 48, PostIndex))) 2206 TEST_NEON(st3_14, 2207 st3(v0.V8B(), v1.V8B(), v2.V8B(), MemOperand(x3, x4, PostIndex))) 2208 TEST_NEON(st3_15, 2209 st3(v0.V16B(), v1.V16B(), v2.V16B(), MemOperand(x3, x4, PostIndex))) 2210 TEST_NEON(st3_16, 2211 st3(v0.V4H(), v1.V4H(), v2.V4H(), MemOperand(x3, x4, PostIndex))) 2212 TEST_NEON(st3_17, 2213 st3(v0.V8H(), v1.V8H(), v2.V8H(), MemOperand(x3, x4, PostIndex))) 2214 TEST_NEON(st3_18, 2215 st3(v0.V2S(), v1.V2S(), v2.V2S(), MemOperand(x3, x4, PostIndex))) 2216 TEST_NEON(st3_19, 2217 st3(v0.V4S(), v1.V4S(), v2.V4S(), MemOperand(x3, x4, PostIndex))) 2218 TEST_NEON(st3_20, 2219 st3(v0.V2D(), v1.V2D(), v2.V2D(), MemOperand(x3, x4, PostIndex))) 2220 TEST_NEON(st3_21, st3(v0.B(), v1.B(), v2.B(), 1, MemOperand(x3))) 2221 TEST_NEON(st3_22, st3(v0.D(), v1.D(), v2.D(), 1, MemOperand(x3))) 2222 TEST_NEON(st3_23, st3(v0.H(), v1.H(), v2.H(), 7, MemOperand(x3))) 2223 TEST_NEON(st3_24, st3(v0.S(), v1.S(), v2.S(), 2, MemOperand(x3))) 2224 TEST_NEON(st3_25, st3(v0.B(), v1.B(), v2.B(), 6, MemOperand(x3, 3, PostIndex))) 2225 TEST_NEON(st3_26, 2226 st3(v0.B(), v1.B(), v2.B(), 12, MemOperand(x3, x4, PostIndex))) 2227 TEST_NEON(st3_27, st3(v0.D(), v1.D(), v2.D(), 0, MemOperand(x3, 24, PostIndex))) 2228 TEST_NEON(st3_28, st3(v0.D(), v1.D(), v2.D(), 0, MemOperand(x3, x4, PostIndex))) 2229 TEST_NEON(st3_29, st3(v0.H(), v1.H(), v2.H(), 0, MemOperand(x3, 6, PostIndex))) 2230 TEST_NEON(st3_30, st3(v0.H(), v1.H(), v2.H(), 4, MemOperand(x3, x4, PostIndex))) 2231 TEST_NEON(st3_31, st3(v0.S(), v1.S(), v2.S(), 3, MemOperand(x3, 12, PostIndex))) 2232 TEST_NEON(st3_32, st3(v0.S(), v1.S(), v2.S(), 2, MemOperand(x3, x4, PostIndex))) 2233 TEST_NEON(st4_0, st4(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4))) 2234 TEST_NEON(st4_1, 2235 st4(v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B(), MemOperand(x4))) 2236 TEST_NEON(st4_2, st4(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4))) 2237 TEST_NEON(st4_3, st4(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4))) 2238 TEST_NEON(st4_4, st4(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4))) 2239 TEST_NEON(st4_5, st4(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4))) 2240 TEST_NEON(st4_6, st4(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4))) 2241 TEST_NEON( 2242 st4_7, 2243 st4(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4, 32, PostIndex))) 2244 TEST_NEON(st4_8, 2245 st4(v0.V16B(), 2246 v1.V16B(), 2247 v2.V16B(), 2248 v3.V16B(), 2249 MemOperand(x4, 64, PostIndex))) 2250 TEST_NEON( 2251 st4_9, 2252 st4(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4, 32, PostIndex))) 2253 TEST_NEON( 2254 st4_10, 2255 st4(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4, 64, PostIndex))) 2256 TEST_NEON( 2257 st4_11, 2258 st4(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4, 32, PostIndex))) 2259 TEST_NEON( 2260 st4_12, 2261 st4(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4, 64, PostIndex))) 2262 TEST_NEON( 2263 st4_13, 2264 st4(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4, 64, PostIndex))) 2265 TEST_NEON( 2266 st4_14, 2267 st4(v0.V8B(), v1.V8B(), v2.V8B(), v3.V8B(), MemOperand(x4, x5, PostIndex))) 2268 TEST_NEON(st4_15, 2269 st4(v0.V16B(), 2270 v1.V16B(), 2271 v2.V16B(), 2272 v3.V16B(), 2273 MemOperand(x4, x5, PostIndex))) 2274 TEST_NEON( 2275 st4_16, 2276 st4(v0.V4H(), v1.V4H(), v2.V4H(), v3.V4H(), MemOperand(x4, x5, PostIndex))) 2277 TEST_NEON( 2278 st4_17, 2279 st4(v0.V8H(), v1.V8H(), v2.V8H(), v3.V8H(), MemOperand(x4, x5, PostIndex))) 2280 TEST_NEON( 2281 st4_18, 2282 st4(v0.V2S(), v1.V2S(), v2.V2S(), v3.V2S(), MemOperand(x4, x5, PostIndex))) 2283 TEST_NEON( 2284 st4_19, 2285 st4(v0.V4S(), v1.V4S(), v2.V4S(), v3.V4S(), MemOperand(x4, x5, PostIndex))) 2286 TEST_NEON( 2287 st4_20, 2288 st4(v0.V2D(), v1.V2D(), v2.V2D(), v3.V2D(), MemOperand(x4, x5, PostIndex))) 2289 TEST_NEON(st4_21, st4(v0.B(), v1.B(), v2.B(), v3.B(), 1, MemOperand(x4))) 2290 TEST_NEON(st4_22, st4(v0.D(), v1.D(), v2.D(), v3.D(), 0, MemOperand(x4))) 2291 TEST_NEON(st4_23, st4(v0.H(), v1.H(), v2.H(), v3.H(), 6, MemOperand(x4))) 2292 TEST_NEON(st4_24, st4(v0.S(), v1.S(), v2.S(), v3.S(), 0, MemOperand(x4))) 2293 TEST_NEON(st4_25, 2294 st4(v0.B(), v1.B(), v2.B(), v3.B(), 4, MemOperand(x4, 4, PostIndex))) 2295 TEST_NEON(st4_26, 2296 st4(v0.B(), v1.B(), v2.B(), v3.B(), 4, MemOperand(x4, x5, PostIndex))) 2297 TEST_NEON(st4_27, 2298 st4(v0.D(), v1.D(), v2.D(), v3.D(), 1, MemOperand(x4, 32, PostIndex))) 2299 TEST_NEON(st4_28, 2300 st4(v0.D(), v1.D(), v2.D(), v3.D(), 0, MemOperand(x4, x5, PostIndex))) 2301 TEST_NEON(st4_29, 2302 st4(v0.H(), v1.H(), v2.H(), v3.H(), 0, MemOperand(x4, 8, PostIndex))) 2303 TEST_NEON(st4_30, 2304 st4(v0.H(), v1.H(), v2.H(), v3.H(), 7, MemOperand(x4, x5, PostIndex))) 2305 TEST_NEON(st4_31, 2306 st4(v0.S(), v1.S(), v2.S(), v3.S(), 0, MemOperand(x4, 16, PostIndex))) 2307 TEST_NEON(st4_32, 2308 st4(v0.S(), v1.S(), v2.S(), v3.S(), 3, MemOperand(x4, x5, PostIndex))) 2309 TEST_NEON(stnp_0, stnp(d0, d1, MemOperand(x2, 304))) 2310 TEST_NEON(stnp_1, stnp(q0, q1, MemOperand(x2, 480))) 2311 TEST_NEON(stnp_2, stnp(s0, s1, MemOperand(x2, -12))) 2312 TEST_NEON(stp_0, stp(d0, d1, MemOperand(x2, 168))) 2313 TEST_NEON(stp_1, stp(d0, d1, MemOperand(x2, -376, PostIndex))) 2314 TEST_NEON(stp_2, stp(d0, d1, MemOperand(x2, 296, PreIndex))) 2315 TEST_NEON(stp_3, stp(q0, q1, MemOperand(x2, -80))) 2316 TEST_NEON(stp_4, stp(q0, q1, MemOperand(x2, -768, PostIndex))) 2317 TEST_NEON(stp_5, stp(q0, q1, MemOperand(x2, -288, PreIndex))) 2318 TEST_NEON(stp_6, stp(s0, s1, MemOperand(x2, -256))) 2319 TEST_NEON(stp_7, stp(s0, s1, MemOperand(x2, 208, PostIndex))) 2320 TEST_NEON(stp_8, stp(s0, s1, MemOperand(x2, -4, PreIndex))) 2321 TEST_NEON(str_0, str(b0, MemOperand(x1, -45, PostIndex))) 2322 TEST_NEON(str_1, str(b0, MemOperand(x1, -154, PreIndex))) 2323 TEST_NEON(str_2, str(b0, MemOperand(x1, 992))) 2324 TEST_NEON(str_3, str(d0, MemOperand(x1, -181, PostIndex))) 2325 TEST_NEON(str_4, str(d0, MemOperand(x1, 91, PreIndex))) 2326 TEST_NEON(str_5, str(d0, MemOperand(x1, 32672))) 2327 TEST_NEON(str_6, str(h0, MemOperand(x1, -5, PostIndex))) 2328 TEST_NEON(str_7, str(h0, MemOperand(x1, 213, PreIndex))) 2329 TEST_NEON(str_8, str(h0, MemOperand(x1, 6406))) 2330 TEST_NEON(str_9, str(q0, MemOperand(x1, -87, PostIndex))) 2331 TEST_NEON(str_10, str(q0, MemOperand(x1, 198, PreIndex))) 2332 TEST_NEON(str_11, str(q0, MemOperand(x1, 56032))) 2333 TEST_NEON(str_12, str(s0, MemOperand(x1, -81, PostIndex))) 2334 TEST_NEON(str_13, str(s0, MemOperand(x1, -126, PreIndex))) 2335 TEST_NEON(str_14, str(s0, MemOperand(x1, 15692))) 2336 TEST_NEON(str_15, str(b0, MemOperand(x1, x2, LSL, 0))) 2337 TEST_NEON(str_16, str(b0, MemOperand(x1, w2, SXTW, 0))) 2338 TEST_NEON(str_17, str(d0, MemOperand(x1, w2, SXTW, 0))) 2339 TEST_NEON(str_18, str(d0, MemOperand(x1, x2, LSL, 0))) 2340 TEST_NEON(str_19, str(h0, MemOperand(x1, w2, UXTW, 1))) 2341 TEST_NEON(str_20, str(h0, MemOperand(x1, x2, SXTX, 1))) 2342 TEST_NEON(str_21, str(q0, MemOperand(x1, w2, SXTW, 4))) 2343 TEST_NEON(str_22, str(q0, MemOperand(x1, x2, SXTX, 4))) 2344 TEST_NEON(str_23, str(s0, MemOperand(x1, w2, UXTW, 0))) 2345 TEST_NEON(str_24, str(s0, MemOperand(x1, x2, SXTX, 2))) 2346 TEST_NEON(stur_0, stur(b0, MemOperand(x1, 83))) 2347 TEST_NEON(stur_1, stur(d0, MemOperand(x1, 22))) 2348 TEST_NEON(stur_2, stur(h0, MemOperand(x1, -236))) 2349 TEST_NEON(stur_3, stur(q0, MemOperand(x1, 13))) 2350 TEST_NEON(stur_4, stur(s0, MemOperand(x1, 23))) 2351 TEST_NEON(subhn_0, subhn(v0.V8B(), v1.V8H(), v2.V8H())) 2352 TEST_NEON(subhn_1, subhn(v0.V4H(), v1.V4S(), v2.V4S())) 2353 TEST_NEON(subhn_2, subhn(v0.V2S(), v1.V2D(), v2.V2D())) 2354 TEST_NEON(subhn2_0, subhn2(v0.V16B(), v1.V8H(), v2.V8H())) 2355 TEST_NEON(subhn2_1, subhn2(v0.V8H(), v1.V4S(), v2.V4S())) 2356 TEST_NEON(subhn2_2, subhn2(v0.V4S(), v1.V2D(), v2.V2D())) 2357 TEST_NEON(sub_0, sub(v0.V8B(), v1.V8B(), v2.V8B())) 2358 TEST_NEON(sub_1, sub(v0.V16B(), v1.V16B(), v2.V16B())) 2359 TEST_NEON(sub_2, sub(v0.V4H(), v1.V4H(), v2.V4H())) 2360 TEST_NEON(sub_3, sub(v0.V8H(), v1.V8H(), v2.V8H())) 2361 TEST_NEON(sub_4, sub(v0.V2S(), v1.V2S(), v2.V2S())) 2362 TEST_NEON(sub_5, sub(v0.V4S(), v1.V4S(), v2.V4S())) 2363 TEST_NEON(sub_6, sub(v0.V2D(), v1.V2D(), v2.V2D())) 2364 TEST_NEON(sub_7, sub(d0, d1, d2)) 2365 TEST_NEON(suqadd_0, suqadd(v0.V8B(), v1.V8B())) 2366 TEST_NEON(suqadd_1, suqadd(v0.V16B(), v1.V16B())) 2367 TEST_NEON(suqadd_2, suqadd(v0.V4H(), v1.V4H())) 2368 TEST_NEON(suqadd_3, suqadd(v0.V8H(), v1.V8H())) 2369 TEST_NEON(suqadd_4, suqadd(v0.V2S(), v1.V2S())) 2370 TEST_NEON(suqadd_5, suqadd(v0.V4S(), v1.V4S())) 2371 TEST_NEON(suqadd_6, suqadd(v0.V2D(), v1.V2D())) 2372 TEST_NEON(suqadd_7, suqadd(b0, b1)) 2373 TEST_NEON(suqadd_8, suqadd(h0, h1)) 2374 TEST_NEON(suqadd_9, suqadd(s0, s1)) 2375 TEST_NEON(suqadd_10, suqadd(d0, d1)) 2376 TEST_NEON(sxtl_0, sxtl(v0.V8H(), v1.V8B())) 2377 TEST_NEON(sxtl_1, sxtl(v0.V4S(), v1.V4H())) 2378 TEST_NEON(sxtl_2, sxtl(v0.V2D(), v1.V2S())) 2379 TEST_NEON(sxtl2_0, sxtl2(v0.V8H(), v1.V16B())) 2380 TEST_NEON(sxtl2_1, sxtl2(v0.V4S(), v1.V8H())) 2381 TEST_NEON(sxtl2_2, sxtl2(v0.V2D(), v1.V4S())) 2382 TEST_NEON(tbl_0, tbl(v0.V8B(), v1.V16B(), v2.V8B())) 2383 TEST_NEON(tbl_1, tbl(v0.V16B(), v1.V16B(), v2.V16B())) 2384 TEST_NEON(tbl_2, tbl(v0.V8B(), v1.V16B(), v2.V16B(), v3.V8B())) 2385 TEST_NEON(tbl_3, tbl(v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B())) 2386 TEST_NEON(tbl_4, tbl(v0.V8B(), v1.V16B(), v2.V16B(), v3.V16B(), v4.V8B())) 2387 TEST_NEON(tbl_5, tbl(v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B(), v4.V16B())) 2388 TEST_NEON(tbl_6, 2389 tbl(v0.V8B(), v1.V16B(), v2.V16B(), v3.V16B(), v4.V16B(), v5.V8B())) 2390 TEST_NEON(tbl_7, 2391 tbl(v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B(), v4.V16B(), v5.V16B())) 2392 TEST_NEON(tbx_0, tbx(v0.V8B(), v1.V16B(), v2.V8B())) 2393 TEST_NEON(tbx_1, tbx(v0.V16B(), v1.V16B(), v2.V16B())) 2394 TEST_NEON(tbx_2, tbx(v0.V8B(), v1.V16B(), v2.V16B(), v3.V8B())) 2395 TEST_NEON(tbx_3, tbx(v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B())) 2396 TEST_NEON(tbx_4, tbx(v0.V8B(), v1.V16B(), v2.V16B(), v3.V16B(), v4.V8B())) 2397 TEST_NEON(tbx_5, tbx(v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B(), v4.V16B())) 2398 TEST_NEON(tbx_6, 2399 tbx(v0.V8B(), v1.V16B(), v2.V16B(), v3.V16B(), v4.V16B(), v5.V8B())) 2400 TEST_NEON(tbx_7, 2401 tbx(v0.V16B(), v1.V16B(), v2.V16B(), v3.V16B(), v4.V16B(), v5.V16B())) 2402 TEST_NEON(trn1_0, trn1(v0.V8B(), v1.V8B(), v2.V8B())) 2403 TEST_NEON(trn1_1, trn1(v0.V16B(), v1.V16B(), v2.V16B())) 2404 TEST_NEON(trn1_2, trn1(v0.V4H(), v1.V4H(), v2.V4H())) 2405 TEST_NEON(trn1_3, trn1(v0.V8H(), v1.V8H(), v2.V8H())) 2406 TEST_NEON(trn1_4, trn1(v0.V2S(), v1.V2S(), v2.V2S())) 2407 TEST_NEON(trn1_5, trn1(v0.V4S(), v1.V4S(), v2.V4S())) 2408 TEST_NEON(trn1_6, trn1(v0.V2D(), v1.V2D(), v2.V2D())) 2409 TEST_NEON(trn2_0, trn2(v0.V8B(), v1.V8B(), v2.V8B())) 2410 TEST_NEON(trn2_1, trn2(v0.V16B(), v1.V16B(), v2.V16B())) 2411 TEST_NEON(trn2_2, trn2(v0.V4H(), v1.V4H(), v2.V4H())) 2412 TEST_NEON(trn2_3, trn2(v0.V8H(), v1.V8H(), v2.V8H())) 2413 TEST_NEON(trn2_4, trn2(v0.V2S(), v1.V2S(), v2.V2S())) 2414 TEST_NEON(trn2_5, trn2(v0.V4S(), v1.V4S(), v2.V4S())) 2415 TEST_NEON(trn2_6, trn2(v0.V2D(), v1.V2D(), v2.V2D())) 2416 TEST_NEON(uabal_0, uabal(v0.V8H(), v1.V8B(), v2.V8B())) 2417 TEST_NEON(uabal_1, uabal(v0.V4S(), v1.V4H(), v2.V4H())) 2418 TEST_NEON(uabal_2, uabal(v0.V2D(), v1.V2S(), v2.V2S())) 2419 TEST_NEON(uabal2_0, uabal2(v0.V8H(), v1.V16B(), v2.V16B())) 2420 TEST_NEON(uabal2_1, uabal2(v0.V4S(), v1.V8H(), v2.V8H())) 2421 TEST_NEON(uabal2_2, uabal2(v0.V2D(), v1.V4S(), v2.V4S())) 2422 TEST_NEON(uaba_0, uaba(v0.V8B(), v1.V8B(), v2.V8B())) 2423 TEST_NEON(uaba_1, uaba(v0.V16B(), v1.V16B(), v2.V16B())) 2424 TEST_NEON(uaba_2, uaba(v0.V4H(), v1.V4H(), v2.V4H())) 2425 TEST_NEON(uaba_3, uaba(v0.V8H(), v1.V8H(), v2.V8H())) 2426 TEST_NEON(uaba_4, uaba(v0.V2S(), v1.V2S(), v2.V2S())) 2427 TEST_NEON(uaba_5, uaba(v0.V4S(), v1.V4S(), v2.V4S())) 2428 TEST_NEON(uabdl_0, uabdl(v0.V8H(), v1.V8B(), v2.V8B())) 2429 TEST_NEON(uabdl_1, uabdl(v0.V4S(), v1.V4H(), v2.V4H())) 2430 TEST_NEON(uabdl_2, uabdl(v0.V2D(), v1.V2S(), v2.V2S())) 2431 TEST_NEON(uabdl2_0, uabdl2(v0.V8H(), v1.V16B(), v2.V16B())) 2432 TEST_NEON(uabdl2_1, uabdl2(v0.V4S(), v1.V8H(), v2.V8H())) 2433 TEST_NEON(uabdl2_2, uabdl2(v0.V2D(), v1.V4S(), v2.V4S())) 2434 TEST_NEON(uabd_0, uabd(v0.V8B(), v1.V8B(), v2.V8B())) 2435 TEST_NEON(uabd_1, uabd(v0.V16B(), v1.V16B(), v2.V16B())) 2436 TEST_NEON(uabd_2, uabd(v0.V4H(), v1.V4H(), v2.V4H())) 2437 TEST_NEON(uabd_3, uabd(v0.V8H(), v1.V8H(), v2.V8H())) 2438 TEST_NEON(uabd_4, uabd(v0.V2S(), v1.V2S(), v2.V2S())) 2439 TEST_NEON(uabd_5, uabd(v0.V4S(), v1.V4S(), v2.V4S())) 2440 TEST_NEON(uadalp_0, uadalp(v0.V4H(), v1.V8B())) 2441 TEST_NEON(uadalp_1, uadalp(v0.V8H(), v1.V16B())) 2442 TEST_NEON(uadalp_2, uadalp(v0.V2S(), v1.V4H())) 2443 TEST_NEON(uadalp_3, uadalp(v0.V4S(), v1.V8H())) 2444 TEST_NEON(uadalp_4, uadalp(v0.V1D(), v1.V2S())) 2445 TEST_NEON(uadalp_5, uadalp(v0.V2D(), v1.V4S())) 2446 TEST_NEON(uaddlp_0, uaddlp(v0.V4H(), v1.V8B())) 2447 TEST_NEON(uaddlp_1, uaddlp(v0.V8H(), v1.V16B())) 2448 TEST_NEON(uaddlp_2, uaddlp(v0.V2S(), v1.V4H())) 2449 TEST_NEON(uaddlp_3, uaddlp(v0.V4S(), v1.V8H())) 2450 TEST_NEON(uaddlp_4, uaddlp(v0.V1D(), v1.V2S())) 2451 TEST_NEON(uaddlp_5, uaddlp(v0.V2D(), v1.V4S())) 2452 TEST_NEON(uaddlv_0, uaddlv(h0, v1.V8B())) 2453 TEST_NEON(uaddlv_1, uaddlv(h0, v1.V16B())) 2454 TEST_NEON(uaddlv_2, uaddlv(s0, v1.V4H())) 2455 TEST_NEON(uaddlv_3, uaddlv(s0, v1.V8H())) 2456 TEST_NEON(uaddlv_4, uaddlv(d0, v1.V4S())) 2457 TEST_NEON(uaddl_0, uaddl(v0.V8H(), v1.V8B(), v2.V8B())) 2458 TEST_NEON(uaddl_1, uaddl(v0.V4S(), v1.V4H(), v2.V4H())) 2459 TEST_NEON(uaddl_2, uaddl(v0.V2D(), v1.V2S(), v2.V2S())) 2460 TEST_NEON(uaddl2_0, uaddl2(v0.V8H(), v1.V16B(), v2.V16B())) 2461 TEST_NEON(uaddl2_1, uaddl2(v0.V4S(), v1.V8H(), v2.V8H())) 2462 TEST_NEON(uaddl2_2, uaddl2(v0.V2D(), v1.V4S(), v2.V4S())) 2463 TEST_NEON(uaddw_0, uaddw(v0.V8H(), v1.V8H(), v2.V8B())) 2464 TEST_NEON(uaddw_1, uaddw(v0.V4S(), v1.V4S(), v2.V4H())) 2465 TEST_NEON(uaddw_2, uaddw(v0.V2D(), v1.V2D(), v2.V2S())) 2466 TEST_NEON(uaddw2_0, uaddw2(v0.V8H(), v1.V8H(), v2.V16B())) 2467 TEST_NEON(uaddw2_1, uaddw2(v0.V4S(), v1.V4S(), v2.V8H())) 2468 TEST_NEON(uaddw2_2, uaddw2(v0.V2D(), v1.V2D(), v2.V4S())) 2469 TEST_NEON(uhadd_0, uhadd(v0.V8B(), v1.V8B(), v2.V8B())) 2470 TEST_NEON(uhadd_1, uhadd(v0.V16B(), v1.V16B(), v2.V16B())) 2471 TEST_NEON(uhadd_2, uhadd(v0.V4H(), v1.V4H(), v2.V4H())) 2472 TEST_NEON(uhadd_3, uhadd(v0.V8H(), v1.V8H(), v2.V8H())) 2473 TEST_NEON(uhadd_4, uhadd(v0.V2S(), v1.V2S(), v2.V2S())) 2474 TEST_NEON(uhadd_5, uhadd(v0.V4S(), v1.V4S(), v2.V4S())) 2475 TEST_NEON(uhsub_0, uhsub(v0.V8B(), v1.V8B(), v2.V8B())) 2476 TEST_NEON(uhsub_1, uhsub(v0.V16B(), v1.V16B(), v2.V16B())) 2477 TEST_NEON(uhsub_2, uhsub(v0.V4H(), v1.V4H(), v2.V4H())) 2478 TEST_NEON(uhsub_3, uhsub(v0.V8H(), v1.V8H(), v2.V8H())) 2479 TEST_NEON(uhsub_4, uhsub(v0.V2S(), v1.V2S(), v2.V2S())) 2480 TEST_NEON(uhsub_5, uhsub(v0.V4S(), v1.V4S(), v2.V4S())) 2481 TEST_NEON(umaxp_0, umaxp(v0.V8B(), v1.V8B(), v2.V8B())) 2482 TEST_NEON(umaxp_1, umaxp(v0.V16B(), v1.V16B(), v2.V16B())) 2483 TEST_NEON(umaxp_2, umaxp(v0.V4H(), v1.V4H(), v2.V4H())) 2484 TEST_NEON(umaxp_3, umaxp(v0.V8H(), v1.V8H(), v2.V8H())) 2485 TEST_NEON(umaxp_4, umaxp(v0.V2S(), v1.V2S(), v2.V2S())) 2486 TEST_NEON(umaxp_5, umaxp(v0.V4S(), v1.V4S(), v2.V4S())) 2487 TEST_NEON(umaxv_0, umaxv(b0, v1.V8B())) 2488 TEST_NEON(umaxv_1, umaxv(b0, v1.V16B())) 2489 TEST_NEON(umaxv_2, umaxv(h0, v1.V4H())) 2490 TEST_NEON(umaxv_3, umaxv(h0, v1.V8H())) 2491 TEST_NEON(umaxv_4, umaxv(s0, v1.V4S())) 2492 TEST_NEON(umax_0, umax(v0.V8B(), v1.V8B(), v2.V8B())) 2493 TEST_NEON(umax_1, umax(v0.V16B(), v1.V16B(), v2.V16B())) 2494 TEST_NEON(umax_2, umax(v0.V4H(), v1.V4H(), v2.V4H())) 2495 TEST_NEON(umax_3, umax(v0.V8H(), v1.V8H(), v2.V8H())) 2496 TEST_NEON(umax_4, umax(v0.V2S(), v1.V2S(), v2.V2S())) 2497 TEST_NEON(umax_5, umax(v0.V4S(), v1.V4S(), v2.V4S())) 2498 TEST_NEON(uminp_0, uminp(v0.V8B(), v1.V8B(), v2.V8B())) 2499 TEST_NEON(uminp_1, uminp(v0.V16B(), v1.V16B(), v2.V16B())) 2500 TEST_NEON(uminp_2, uminp(v0.V4H(), v1.V4H(), v2.V4H())) 2501 TEST_NEON(uminp_3, uminp(v0.V8H(), v1.V8H(), v2.V8H())) 2502 TEST_NEON(uminp_4, uminp(v0.V2S(), v1.V2S(), v2.V2S())) 2503 TEST_NEON(uminp_5, uminp(v0.V4S(), v1.V4S(), v2.V4S())) 2504 TEST_NEON(uminv_0, uminv(b0, v1.V8B())) 2505 TEST_NEON(uminv_1, uminv(b0, v1.V16B())) 2506 TEST_NEON(uminv_2, uminv(h0, v1.V4H())) 2507 TEST_NEON(uminv_3, uminv(h0, v1.V8H())) 2508 TEST_NEON(uminv_4, uminv(s0, v1.V4S())) 2509 TEST_NEON(umin_0, umin(v0.V8B(), v1.V8B(), v2.V8B())) 2510 TEST_NEON(umin_1, umin(v0.V16B(), v1.V16B(), v2.V16B())) 2511 TEST_NEON(umin_2, umin(v0.V4H(), v1.V4H(), v2.V4H())) 2512 TEST_NEON(umin_3, umin(v0.V8H(), v1.V8H(), v2.V8H())) 2513 TEST_NEON(umin_4, umin(v0.V2S(), v1.V2S(), v2.V2S())) 2514 TEST_NEON(umin_5, umin(v0.V4S(), v1.V4S(), v2.V4S())) 2515 TEST_NEON(umlal_0, umlal(v0.V4S(), v1.V4H(), v2.H(), 1)) 2516 TEST_NEON(umlal_1, umlal(v0.V2D(), v1.V2S(), v2.S(), 2)) 2517 TEST_NEON(umlal2_0, umlal2(v0.V4S(), v1.V8H(), v2.H(), 6)) 2518 TEST_NEON(umlal2_1, umlal2(v0.V2D(), v1.V4S(), v2.S(), 0)) 2519 TEST_NEON(umlal_2, umlal(v0.V8H(), v1.V8B(), v2.V8B())) 2520 TEST_NEON(umlal_3, umlal(v0.V4S(), v1.V4H(), v2.V4H())) 2521 TEST_NEON(umlal_4, umlal(v0.V2D(), v1.V2S(), v2.V2S())) 2522 TEST_NEON(umlal2_2, umlal2(v0.V8H(), v1.V16B(), v2.V16B())) 2523 TEST_NEON(umlal2_3, umlal2(v0.V4S(), v1.V8H(), v2.V8H())) 2524 TEST_NEON(umlal2_4, umlal2(v0.V2D(), v1.V4S(), v2.V4S())) 2525 TEST_NEON(umlsl_0, umlsl(v0.V4S(), v1.V4H(), v2.H(), 0)) 2526 TEST_NEON(umlsl_1, umlsl(v0.V2D(), v1.V2S(), v2.S(), 3)) 2527 TEST_NEON(umlsl2_0, umlsl2(v0.V4S(), v1.V8H(), v2.H(), 1)) 2528 TEST_NEON(umlsl2_1, umlsl2(v0.V2D(), v1.V4S(), v2.S(), 1)) 2529 TEST_NEON(umlsl_2, umlsl(v0.V8H(), v1.V8B(), v2.V8B())) 2530 TEST_NEON(umlsl_3, umlsl(v0.V4S(), v1.V4H(), v2.V4H())) 2531 TEST_NEON(umlsl_4, umlsl(v0.V2D(), v1.V2S(), v2.V2S())) 2532 TEST_NEON(umlsl2_2, umlsl2(v0.V8H(), v1.V16B(), v2.V16B())) 2533 TEST_NEON(umlsl2_3, umlsl2(v0.V4S(), v1.V8H(), v2.V8H())) 2534 TEST_NEON(umlsl2_4, umlsl2(v0.V2D(), v1.V4S(), v2.V4S())) 2535 TEST_NEON(umov_0, umov(w0, v1.B(), 4)) 2536 TEST_NEON(umov_1, umov(w0, v1.H(), 3)) 2537 TEST_NEON(umov_2, umov(w0, v1.S(), 0)) 2538 TEST_NEON(umov_3, umov(x0, v1.D(), 1)) 2539 TEST_NEON(umull_0, umull(v0.V4S(), v1.V4H(), v2.H(), 0)) 2540 TEST_NEON(umull_1, umull(v0.V2D(), v1.V2S(), v2.S(), 1)) 2541 TEST_NEON(umull2_0, umull2(v0.V4S(), v1.V8H(), v2.H(), 6)) 2542 TEST_NEON(umull2_1, umull2(v0.V2D(), v1.V4S(), v2.S(), 3)) 2543 TEST_NEON(umull_2, umull(v0.V8H(), v1.V8B(), v2.V8B())) 2544 TEST_NEON(umull_3, umull(v0.V4S(), v1.V4H(), v2.V4H())) 2545 TEST_NEON(umull_4, umull(v0.V2D(), v1.V2S(), v2.V2S())) 2546 TEST_NEON(umull2_2, umull2(v0.V8H(), v1.V16B(), v2.V16B())) 2547 TEST_NEON(umull2_3, umull2(v0.V4S(), v1.V8H(), v2.V8H())) 2548 TEST_NEON(umull2_4, umull2(v0.V2D(), v1.V4S(), v2.V4S())) 2549 TEST_NEON(uqadd_0, uqadd(v0.V8B(), v1.V8B(), v2.V8B())) 2550 TEST_NEON(uqadd_1, uqadd(v0.V16B(), v1.V16B(), v2.V16B())) 2551 TEST_NEON(uqadd_2, uqadd(v0.V4H(), v1.V4H(), v2.V4H())) 2552 TEST_NEON(uqadd_3, uqadd(v0.V8H(), v1.V8H(), v2.V8H())) 2553 TEST_NEON(uqadd_4, uqadd(v0.V2S(), v1.V2S(), v2.V2S())) 2554 TEST_NEON(uqadd_5, uqadd(v0.V4S(), v1.V4S(), v2.V4S())) 2555 TEST_NEON(uqadd_6, uqadd(v0.V2D(), v1.V2D(), v2.V2D())) 2556 TEST_NEON(uqadd_7, uqadd(b0, b1, b2)) 2557 TEST_NEON(uqadd_8, uqadd(h0, h1, h2)) 2558 TEST_NEON(uqadd_9, uqadd(s0, s1, s2)) 2559 TEST_NEON(uqadd_10, uqadd(d0, d1, d2)) 2560 TEST_NEON(uqrshl_0, uqrshl(v0.V8B(), v1.V8B(), v2.V8B())) 2561 TEST_NEON(uqrshl_1, uqrshl(v0.V16B(), v1.V16B(), v2.V16B())) 2562 TEST_NEON(uqrshl_2, uqrshl(v0.V4H(), v1.V4H(), v2.V4H())) 2563 TEST_NEON(uqrshl_3, uqrshl(v0.V8H(), v1.V8H(), v2.V8H())) 2564 TEST_NEON(uqrshl_4, uqrshl(v0.V2S(), v1.V2S(), v2.V2S())) 2565 TEST_NEON(uqrshl_5, uqrshl(v0.V4S(), v1.V4S(), v2.V4S())) 2566 TEST_NEON(uqrshl_6, uqrshl(v0.V2D(), v1.V2D(), v2.V2D())) 2567 TEST_NEON(uqrshl_7, uqrshl(b0, b1, b2)) 2568 TEST_NEON(uqrshl_8, uqrshl(h0, h1, h2)) 2569 TEST_NEON(uqrshl_9, uqrshl(s0, s1, s2)) 2570 TEST_NEON(uqrshl_10, uqrshl(d0, d1, d2)) 2571 TEST_NEON(uqrshrn_0, uqrshrn(v0.V8B(), v1.V8H(), 5)) 2572 TEST_NEON(uqrshrn_1, uqrshrn(v0.V4H(), v1.V4S(), 4)) 2573 TEST_NEON(uqrshrn_2, uqrshrn(v0.V2S(), v1.V2D(), 23)) 2574 TEST_NEON(uqrshrn2_0, uqrshrn2(v0.V16B(), v1.V8H(), 4)) 2575 TEST_NEON(uqrshrn2_1, uqrshrn2(v0.V8H(), v1.V4S(), 5)) 2576 TEST_NEON(uqrshrn2_2, uqrshrn2(v0.V4S(), v1.V2D(), 11)) 2577 TEST_NEON(uqrshrn_3, uqrshrn(b0, h1, 4)) 2578 TEST_NEON(uqrshrn_4, uqrshrn(h0, s1, 4)) 2579 TEST_NEON(uqrshrn_5, uqrshrn(s0, d1, 7)) 2580 TEST_NEON(uqshl_0, uqshl(v0.V8B(), v1.V8B(), 7)) 2581 TEST_NEON(uqshl_1, uqshl(v0.V16B(), v1.V16B(), 2)) 2582 TEST_NEON(uqshl_2, uqshl(v0.V4H(), v1.V4H(), 4)) 2583 TEST_NEON(uqshl_3, uqshl(v0.V8H(), v1.V8H(), 4)) 2584 TEST_NEON(uqshl_4, uqshl(v0.V2S(), v1.V2S(), 1)) 2585 TEST_NEON(uqshl_5, uqshl(v0.V4S(), v1.V4S(), 2)) 2586 TEST_NEON(uqshl_6, uqshl(v0.V2D(), v1.V2D(), 28)) 2587 TEST_NEON(uqshl_7, uqshl(b0, b1, 6)) 2588 TEST_NEON(uqshl_8, uqshl(h0, h1, 15)) 2589 TEST_NEON(uqshl_9, uqshl(s0, s1, 21)) 2590 TEST_NEON(uqshl_10, uqshl(d0, d1, 24)) 2591 TEST_NEON(uqshl_11, uqshl(v0.V8B(), v1.V8B(), v2.V8B())) 2592 TEST_NEON(uqshl_12, uqshl(v0.V16B(), v1.V16B(), v2.V16B())) 2593 TEST_NEON(uqshl_13, uqshl(v0.V4H(), v1.V4H(), v2.V4H())) 2594 TEST_NEON(uqshl_14, uqshl(v0.V8H(), v1.V8H(), v2.V8H())) 2595 TEST_NEON(uqshl_15, uqshl(v0.V2S(), v1.V2S(), v2.V2S())) 2596 TEST_NEON(uqshl_16, uqshl(v0.V4S(), v1.V4S(), v2.V4S())) 2597 TEST_NEON(uqshl_17, uqshl(v0.V2D(), v1.V2D(), v2.V2D())) 2598 TEST_NEON(uqshl_18, uqshl(b0, b1, b2)) 2599 TEST_NEON(uqshl_19, uqshl(h0, h1, h2)) 2600 TEST_NEON(uqshl_20, uqshl(s0, s1, s2)) 2601 TEST_NEON(uqshl_21, uqshl(d0, d1, d2)) 2602 TEST_NEON(uqshrn_0, uqshrn(v0.V8B(), v1.V8H(), 6)) 2603 TEST_NEON(uqshrn_1, uqshrn(v0.V4H(), v1.V4S(), 1)) 2604 TEST_NEON(uqshrn_2, uqshrn(v0.V2S(), v1.V2D(), 7)) 2605 TEST_NEON(uqshrn2_0, uqshrn2(v0.V16B(), v1.V8H(), 3)) 2606 TEST_NEON(uqshrn2_1, uqshrn2(v0.V8H(), v1.V4S(), 9)) 2607 TEST_NEON(uqshrn2_2, uqshrn2(v0.V4S(), v1.V2D(), 20)) 2608 TEST_NEON(uqshrn_3, uqshrn(b0, h1, 7)) 2609 TEST_NEON(uqshrn_4, uqshrn(h0, s1, 11)) 2610 TEST_NEON(uqshrn_5, uqshrn(s0, d1, 17)) 2611 TEST_NEON(uqsub_0, uqsub(v0.V8B(), v1.V8B(), v2.V8B())) 2612 TEST_NEON(uqsub_1, uqsub(v0.V16B(), v1.V16B(), v2.V16B())) 2613 TEST_NEON(uqsub_2, uqsub(v0.V4H(), v1.V4H(), v2.V4H())) 2614 TEST_NEON(uqsub_3, uqsub(v0.V8H(), v1.V8H(), v2.V8H())) 2615 TEST_NEON(uqsub_4, uqsub(v0.V2S(), v1.V2S(), v2.V2S())) 2616 TEST_NEON(uqsub_5, uqsub(v0.V4S(), v1.V4S(), v2.V4S())) 2617 TEST_NEON(uqsub_6, uqsub(v0.V2D(), v1.V2D(), v2.V2D())) 2618 TEST_NEON(uqsub_7, uqsub(b0, b1, b2)) 2619 TEST_NEON(uqsub_8, uqsub(h0, h1, h2)) 2620 TEST_NEON(uqsub_9, uqsub(s0, s1, s2)) 2621 TEST_NEON(uqsub_10, uqsub(d0, d1, d2)) 2622 TEST_NEON(uqxtn_0, uqxtn(v0.V8B(), v1.V8H())) 2623 TEST_NEON(uqxtn_1, uqxtn(v0.V4H(), v1.V4S())) 2624 TEST_NEON(uqxtn_2, uqxtn(v0.V2S(), v1.V2D())) 2625 TEST_NEON(uqxtn2_0, uqxtn2(v0.V16B(), v1.V8H())) 2626 TEST_NEON(uqxtn2_1, uqxtn2(v0.V8H(), v1.V4S())) 2627 TEST_NEON(uqxtn2_2, uqxtn2(v0.V4S(), v1.V2D())) 2628 TEST_NEON(uqxtn_3, uqxtn(b0, h1)) 2629 TEST_NEON(uqxtn_4, uqxtn(h0, s1)) 2630 TEST_NEON(uqxtn_5, uqxtn(s0, d1)) 2631 TEST_NEON(urecpe_0, urecpe(v0.V2S(), v1.V2S())) 2632 TEST_NEON(urecpe_1, urecpe(v0.V4S(), v1.V4S())) 2633 TEST_NEON(urhadd_0, urhadd(v0.V8B(), v1.V8B(), v2.V8B())) 2634 TEST_NEON(urhadd_1, urhadd(v0.V16B(), v1.V16B(), v2.V16B())) 2635 TEST_NEON(urhadd_2, urhadd(v0.V4H(), v1.V4H(), v2.V4H())) 2636 TEST_NEON(urhadd_3, urhadd(v0.V8H(), v1.V8H(), v2.V8H())) 2637 TEST_NEON(urhadd_4, urhadd(v0.V2S(), v1.V2S(), v2.V2S())) 2638 TEST_NEON(urhadd_5, urhadd(v0.V4S(), v1.V4S(), v2.V4S())) 2639 TEST_NEON(urshl_0, urshl(v0.V8B(), v1.V8B(), v2.V8B())) 2640 TEST_NEON(urshl_1, urshl(v0.V16B(), v1.V16B(), v2.V16B())) 2641 TEST_NEON(urshl_2, urshl(v0.V4H(), v1.V4H(), v2.V4H())) 2642 TEST_NEON(urshl_3, urshl(v0.V8H(), v1.V8H(), v2.V8H())) 2643 TEST_NEON(urshl_4, urshl(v0.V2S(), v1.V2S(), v2.V2S())) 2644 TEST_NEON(urshl_5, urshl(v0.V4S(), v1.V4S(), v2.V4S())) 2645 TEST_NEON(urshl_6, urshl(v0.V2D(), v1.V2D(), v2.V2D())) 2646 TEST_NEON(urshl_7, urshl(d0, d1, d2)) 2647 TEST_NEON(urshr_0, urshr(v0.V8B(), v1.V8B(), 4)) 2648 TEST_NEON(urshr_1, urshr(v0.V16B(), v1.V16B(), 5)) 2649 TEST_NEON(urshr_2, urshr(v0.V4H(), v1.V4H(), 11)) 2650 TEST_NEON(urshr_3, urshr(v0.V8H(), v1.V8H(), 4)) 2651 TEST_NEON(urshr_4, urshr(v0.V2S(), v1.V2S(), 27)) 2652 TEST_NEON(urshr_5, urshr(v0.V4S(), v1.V4S(), 21)) 2653 TEST_NEON(urshr_6, urshr(v0.V2D(), v1.V2D(), 8)) 2654 TEST_NEON(urshr_7, urshr(d0, d1, 11)) 2655 TEST_NEON(ursqrte_0, ursqrte(v0.V2S(), v1.V2S())) 2656 TEST_NEON(ursqrte_1, ursqrte(v0.V4S(), v1.V4S())) 2657 TEST_NEON(ursra_0, ursra(v0.V8B(), v1.V8B(), 3)) 2658 TEST_NEON(ursra_1, ursra(v0.V16B(), v1.V16B(), 6)) 2659 TEST_NEON(ursra_2, ursra(v0.V4H(), v1.V4H(), 12)) 2660 TEST_NEON(ursra_3, ursra(v0.V8H(), v1.V8H(), 7)) 2661 TEST_NEON(ursra_4, ursra(v0.V2S(), v1.V2S(), 6)) 2662 TEST_NEON(ursra_5, ursra(v0.V4S(), v1.V4S(), 6)) 2663 TEST_NEON(ursra_6, ursra(v0.V2D(), v1.V2D(), 26)) 2664 TEST_NEON(ursra_7, ursra(d0, d1, 20)) 2665 TEST_NEON(ushll_0, ushll(v0.V8H(), v1.V8B(), 6)) 2666 TEST_NEON(ushll_1, ushll(v0.V4S(), v1.V4H(), 9)) 2667 TEST_NEON(ushll_2, ushll(v0.V2D(), v1.V2S(), 21)) 2668 TEST_NEON(ushll2_0, ushll2(v0.V8H(), v1.V16B(), 7)) 2669 TEST_NEON(ushll2_1, ushll2(v0.V4S(), v1.V8H(), 15)) 2670 TEST_NEON(ushll2_2, ushll2(v0.V2D(), v1.V4S(), 14)) 2671 TEST_NEON(ushl_0, ushl(v0.V8B(), v1.V8B(), v2.V8B())) 2672 TEST_NEON(ushl_1, ushl(v0.V16B(), v1.V16B(), v2.V16B())) 2673 TEST_NEON(ushl_2, ushl(v0.V4H(), v1.V4H(), v2.V4H())) 2674 TEST_NEON(ushl_3, ushl(v0.V8H(), v1.V8H(), v2.V8H())) 2675 TEST_NEON(ushl_4, ushl(v0.V2S(), v1.V2S(), v2.V2S())) 2676 TEST_NEON(ushl_5, ushl(v0.V4S(), v1.V4S(), v2.V4S())) 2677 TEST_NEON(ushl_6, ushl(v0.V2D(), v1.V2D(), v2.V2D())) 2678 TEST_NEON(ushl_7, ushl(d0, d1, d2)) 2679 TEST_NEON(ushr_0, ushr(v0.V8B(), v1.V8B(), 1)) 2680 TEST_NEON(ushr_1, ushr(v0.V16B(), v1.V16B(), 1)) 2681 TEST_NEON(ushr_2, ushr(v0.V4H(), v1.V4H(), 5)) 2682 TEST_NEON(ushr_3, ushr(v0.V8H(), v1.V8H(), 4)) 2683 TEST_NEON(ushr_4, ushr(v0.V2S(), v1.V2S(), 1)) 2684 TEST_NEON(ushr_5, ushr(v0.V4S(), v1.V4S(), 24)) 2685 TEST_NEON(ushr_6, ushr(v0.V2D(), v1.V2D(), 50)) 2686 TEST_NEON(ushr_7, ushr(d0, d1, 30)) 2687 TEST_NEON(usqadd_0, usqadd(v0.V8B(), v1.V8B())) 2688 TEST_NEON(usqadd_1, usqadd(v0.V16B(), v1.V16B())) 2689 TEST_NEON(usqadd_2, usqadd(v0.V4H(), v1.V4H())) 2690 TEST_NEON(usqadd_3, usqadd(v0.V8H(), v1.V8H())) 2691 TEST_NEON(usqadd_4, usqadd(v0.V2S(), v1.V2S())) 2692 TEST_NEON(usqadd_5, usqadd(v0.V4S(), v1.V4S())) 2693 TEST_NEON(usqadd_6, usqadd(v0.V2D(), v1.V2D())) 2694 TEST_NEON(usqadd_7, usqadd(b0, b1)) 2695 TEST_NEON(usqadd_8, usqadd(h0, h1)) 2696 TEST_NEON(usqadd_9, usqadd(s0, s1)) 2697 TEST_NEON(usqadd_10, usqadd(d0, d1)) 2698 TEST_NEON(usra_0, usra(v0.V8B(), v1.V8B(), 6)) 2699 TEST_NEON(usra_1, usra(v0.V16B(), v1.V16B(), 4)) 2700 TEST_NEON(usra_2, usra(v0.V4H(), v1.V4H(), 9)) 2701 TEST_NEON(usra_3, usra(v0.V8H(), v1.V8H(), 3)) 2702 TEST_NEON(usra_4, usra(v0.V2S(), v1.V2S(), 12)) 2703 TEST_NEON(usra_5, usra(v0.V4S(), v1.V4S(), 14)) 2704 TEST_NEON(usra_6, usra(v0.V2D(), v1.V2D(), 27)) 2705 TEST_NEON(usra_7, usra(d0, d1, 54)) 2706 TEST_NEON(usubl_0, usubl(v0.V8H(), v1.V8B(), v2.V8B())) 2707 TEST_NEON(usubl_1, usubl(v0.V4S(), v1.V4H(), v2.V4H())) 2708 TEST_NEON(usubl_2, usubl(v0.V2D(), v1.V2S(), v2.V2S())) 2709 TEST_NEON(usubl2_0, usubl2(v0.V8H(), v1.V16B(), v2.V16B())) 2710 TEST_NEON(usubl2_1, usubl2(v0.V4S(), v1.V8H(), v2.V8H())) 2711 TEST_NEON(usubl2_2, usubl2(v0.V2D(), v1.V4S(), v2.V4S())) 2712 TEST_NEON(usubw_0, usubw(v0.V8H(), v1.V8H(), v2.V8B())) 2713 TEST_NEON(usubw_1, usubw(v0.V4S(), v1.V4S(), v2.V4H())) 2714 TEST_NEON(usubw_2, usubw(v0.V2D(), v1.V2D(), v2.V2S())) 2715 TEST_NEON(usubw2_0, usubw2(v0.V8H(), v1.V8H(), v2.V16B())) 2716 TEST_NEON(usubw2_1, usubw2(v0.V4S(), v1.V4S(), v2.V8H())) 2717 TEST_NEON(usubw2_2, usubw2(v0.V2D(), v1.V2D(), v2.V4S())) 2718 TEST_NEON(uxtl_0, uxtl(v0.V8H(), v1.V8B())) 2719 TEST_NEON(uxtl_1, uxtl(v0.V4S(), v1.V4H())) 2720 TEST_NEON(uxtl_2, uxtl(v0.V2D(), v1.V2S())) 2721 TEST_NEON(uxtl2_0, uxtl2(v0.V8H(), v1.V16B())) 2722 TEST_NEON(uxtl2_1, uxtl2(v0.V4S(), v1.V8H())) 2723 TEST_NEON(uxtl2_2, uxtl2(v0.V2D(), v1.V4S())) 2724 TEST_NEON(uzp1_0, uzp1(v0.V8B(), v1.V8B(), v2.V8B())) 2725 TEST_NEON(uzp1_1, uzp1(v0.V16B(), v1.V16B(), v2.V16B())) 2726 TEST_NEON(uzp1_2, uzp1(v0.V4H(), v1.V4H(), v2.V4H())) 2727 TEST_NEON(uzp1_3, uzp1(v0.V8H(), v1.V8H(), v2.V8H())) 2728 TEST_NEON(uzp1_4, uzp1(v0.V2S(), v1.V2S(), v2.V2S())) 2729 TEST_NEON(uzp1_5, uzp1(v0.V4S(), v1.V4S(), v2.V4S())) 2730 TEST_NEON(uzp1_6, uzp1(v0.V2D(), v1.V2D(), v2.V2D())) 2731 TEST_NEON(uzp2_0, uzp2(v0.V8B(), v1.V8B(), v2.V8B())) 2732 TEST_NEON(uzp2_1, uzp2(v0.V16B(), v1.V16B(), v2.V16B())) 2733 TEST_NEON(uzp2_2, uzp2(v0.V4H(), v1.V4H(), v2.V4H())) 2734 TEST_NEON(uzp2_3, uzp2(v0.V8H(), v1.V8H(), v2.V8H())) 2735 TEST_NEON(uzp2_4, uzp2(v0.V2S(), v1.V2S(), v2.V2S())) 2736 TEST_NEON(uzp2_5, uzp2(v0.V4S(), v1.V4S(), v2.V4S())) 2737 TEST_NEON(uzp2_6, uzp2(v0.V2D(), v1.V2D(), v2.V2D())) 2738 TEST_NEON(xtn_0, xtn(v0.V8B(), v1.V8H())) 2739 TEST_NEON(xtn_1, xtn(v0.V4H(), v1.V4S())) 2740 TEST_NEON(xtn_2, xtn(v0.V2S(), v1.V2D())) 2741 TEST_NEON(xtn2_0, xtn2(v0.V16B(), v1.V8H())) 2742 TEST_NEON(xtn2_1, xtn2(v0.V8H(), v1.V4S())) 2743 TEST_NEON(xtn2_2, xtn2(v0.V4S(), v1.V2D())) 2744 TEST_NEON(zip1_0, zip1(v0.V8B(), v1.V8B(), v2.V8B())) 2745 TEST_NEON(zip1_1, zip1(v0.V16B(), v1.V16B(), v2.V16B())) 2746 TEST_NEON(zip1_2, zip1(v0.V4H(), v1.V4H(), v2.V4H())) 2747 TEST_NEON(zip1_3, zip1(v0.V8H(), v1.V8H(), v2.V8H())) 2748 TEST_NEON(zip1_4, zip1(v0.V2S(), v1.V2S(), v2.V2S())) 2749 TEST_NEON(zip1_5, zip1(v0.V4S(), v1.V4S(), v2.V4S())) 2750 TEST_NEON(zip1_6, zip1(v0.V2D(), v1.V2D(), v2.V2D())) 2751 TEST_NEON(zip2_0, zip2(v0.V8B(), v1.V8B(), v2.V8B())) 2752 TEST_NEON(zip2_1, zip2(v0.V16B(), v1.V16B(), v2.V16B())) 2753 TEST_NEON(zip2_2, zip2(v0.V4H(), v1.V4H(), v2.V4H())) 2754 TEST_NEON(zip2_3, zip2(v0.V8H(), v1.V8H(), v2.V8H())) 2755 TEST_NEON(zip2_4, zip2(v0.V2S(), v1.V2S(), v2.V2S())) 2756 TEST_NEON(zip2_5, zip2(v0.V4S(), v1.V4S(), v2.V4S())) 2757 TEST_NEON(zip2_6, zip2(v0.V2D(), v1.V2D(), v2.V2D())) 2758 2759 #define TEST_RCPC(NAME, ASM) \ 2760 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kRCpc), RCpc_##NAME, ASM) 2761 TEST_RCPC(ldapr_0, ldapr(w0, MemOperand(x1, 0))) 2762 TEST_RCPC(ldapr_1, ldapr(x0, MemOperand(x1, 0))) 2763 TEST_RCPC(ldaprb_0, ldaprb(w0, MemOperand(x1, 0))) 2764 TEST_RCPC(ldaprh_0, ldaprh(w0, MemOperand(x1, 0))) 2765 2766 #define TEST_CRC32(NAME, ASM) \ 2767 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kCRC32), CRC32_##NAME, ASM) 2768 TEST_CRC32(crc32b_0, crc32b(w0, w1, w2)) 2769 TEST_CRC32(crc32h_0, crc32h(w0, w1, w2)) 2770 TEST_CRC32(crc32w_0, crc32w(w0, w1, w2)) 2771 TEST_CRC32(crc32x_0, crc32x(w0, w1, x2)) 2772 TEST_CRC32(crc32cb_0, crc32cb(w0, w1, w2)) 2773 TEST_CRC32(crc32ch_0, crc32ch(w0, w1, w2)) 2774 TEST_CRC32(crc32cw_0, crc32cw(w0, w1, w2)) 2775 TEST_CRC32(crc32cx_0, crc32cx(w0, w1, x2)) 2776 2777 #define TEST_PAUTH(NAME, ASM) \ 2778 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kPAuth), PAuth_##NAME, ASM) 2779 TEST_PAUTH(autda_0, autda(x0, x1)) 2780 TEST_PAUTH(autdza_0, autdza(x0)) 2781 TEST_PAUTH(autdb_0, autdb(x0, x1)) 2782 TEST_PAUTH(autdzb_0, autdzb(x0)) 2783 TEST_PAUTH(autia1716_0, autia1716()) 2784 TEST_PAUTH(autiasp_0, autiasp()) 2785 TEST_PAUTH(autiaz_0, autiaz()) 2786 TEST_PAUTH(autia_0, autia(x0, x1)) 2787 TEST_PAUTH(autiza_0, autiza(x0)) 2788 TEST_PAUTH(autib1716_0, autib1716()) 2789 TEST_PAUTH(autibsp_0, autibsp()) 2790 TEST_PAUTH(autibz_0, autibz()) 2791 TEST_PAUTH(autib_0, autib(x0, x1)) 2792 TEST_PAUTH(autizb_0, autizb(x0)) 2793 TEST_PAUTH(blraaz_0, blraaz(x0)) 2794 TEST_PAUTH(blraa_0, blraa(x0, x1)) 2795 TEST_PAUTH(blrabz_0, blrabz(x0)) 2796 TEST_PAUTH(blrab_0, blrab(x0, x1)) 2797 TEST_PAUTH(braaz_0, braaz(x0)) 2798 TEST_PAUTH(braa_0, braa(x0, x1)) 2799 TEST_PAUTH(brabz_0, brabz(x0)) 2800 TEST_PAUTH(brab_0, brab(x0, x1)) 2801 TEST_PAUTH(pacda_0, pacda(x0, x1)) 2802 TEST_PAUTH(pacdza_0, pacdza(x0)) 2803 TEST_PAUTH(pacdb_0, pacdb(x0, x1)) 2804 TEST_PAUTH(pacdzb_0, pacdzb(x0)) 2805 TEST_PAUTH(pacia1716_0, pacia1716()) 2806 TEST_PAUTH(paciasp_0, paciasp()) 2807 TEST_PAUTH(paciaz_0, paciaz()) 2808 TEST_PAUTH(pacia_0, pacia(x0, x1)) 2809 TEST_PAUTH(paciza_0, paciza(x0)) 2810 TEST_PAUTH(pacib1716_0, pacib1716()) 2811 TEST_PAUTH(pacibsp_0, pacibsp()) 2812 TEST_PAUTH(pacibz_0, pacibz()) 2813 TEST_PAUTH(pacib_0, pacib(x0, x1)) 2814 TEST_PAUTH(pacizb_0, pacizb(x0)) 2815 TEST_PAUTH(retaa_0, retaa()) 2816 TEST_PAUTH(retab_0, retab()) 2817 TEST_PAUTH(xpacd_0, xpacd(x0)) 2818 TEST_PAUTH(xpaci_0, xpaci(x0)) 2819 TEST_PAUTH(xpaclri_0, xpaclri()) 2820 2821 #define TEST_ATOMICS(NAME, ASM) \ 2822 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kAtomics), Atomics_##NAME, ASM) 2823 TEST_ATOMICS(casal_0, casal(w0, w1, MemOperand(x2, 0))) 2824 TEST_ATOMICS(casal_1, casal(x0, x1, MemOperand(x2, 0))) 2825 TEST_ATOMICS(casa_0, casa(w0, w1, MemOperand(x2, 0))) 2826 TEST_ATOMICS(casa_1, casa(x0, x1, MemOperand(x2, 0))) 2827 TEST_ATOMICS(casl_0, casl(w0, w1, MemOperand(x2, 0))) 2828 TEST_ATOMICS(casl_1, casl(x0, x1, MemOperand(x2, 0))) 2829 TEST_ATOMICS(cas_0, cas(w0, w1, MemOperand(x2, 0))) 2830 TEST_ATOMICS(cas_1, cas(x0, x1, MemOperand(x2, 0))) 2831 TEST_ATOMICS(casab_0, casab(w0, w1, MemOperand(x2, 0))) 2832 TEST_ATOMICS(casalb_0, casalb(w0, w1, MemOperand(x2, 0))) 2833 TEST_ATOMICS(casb_0, casb(w0, w1, MemOperand(x2, 0))) 2834 TEST_ATOMICS(caslb_0, caslb(w0, w1, MemOperand(x2, 0))) 2835 TEST_ATOMICS(casah_0, casah(w0, w1, MemOperand(x2, 0))) 2836 TEST_ATOMICS(casalh_0, casalh(w0, w1, MemOperand(x2, 0))) 2837 TEST_ATOMICS(cash_0, cash(w0, w1, MemOperand(x2, 0))) 2838 TEST_ATOMICS(caslh_0, caslh(w0, w1, MemOperand(x2, 0))) 2839 TEST_ATOMICS(caspal_0, caspal(w0, w1, w2, w3, MemOperand(x4, 0))) 2840 TEST_ATOMICS(caspal_1, caspal(x0, x1, x2, x3, MemOperand(x4, 0))) 2841 TEST_ATOMICS(caspa_0, caspa(w0, w1, w2, w3, MemOperand(x4, 0))) 2842 TEST_ATOMICS(caspa_1, caspa(x0, x1, x2, x3, MemOperand(x4, 0))) 2843 TEST_ATOMICS(caspl_0, caspl(w0, w1, w2, w3, MemOperand(x4, 0))) 2844 TEST_ATOMICS(caspl_1, caspl(x0, x1, x2, x3, MemOperand(x4, 0))) 2845 TEST_ATOMICS(casp_0, casp(w0, w1, w2, w3, MemOperand(x4, 0))) 2846 TEST_ATOMICS(casp_1, casp(x0, x1, x2, x3, MemOperand(x4, 0))) 2847 TEST_ATOMICS(ldaddal_0, ldaddal(w0, w1, MemOperand(x2))) 2848 TEST_ATOMICS(ldaddal_1, ldaddal(x0, x1, MemOperand(x2))) 2849 TEST_ATOMICS(ldadda_0, ldadda(w0, w1, MemOperand(x2))) 2850 TEST_ATOMICS(ldadda_1, ldadda(x0, x1, MemOperand(x2))) 2851 TEST_ATOMICS(ldaddl_0, ldaddl(w0, w1, MemOperand(x2))) 2852 TEST_ATOMICS(ldaddl_1, ldaddl(x0, x1, MemOperand(x2))) 2853 TEST_ATOMICS(ldadd_0, ldadd(w0, w1, MemOperand(x2))) 2854 TEST_ATOMICS(ldadd_1, ldadd(x0, x1, MemOperand(x2))) 2855 TEST_ATOMICS(ldaddab_0, ldaddab(w0, w1, MemOperand(x2))) 2856 TEST_ATOMICS(ldaddalb_0, ldaddalb(w0, w1, MemOperand(x2))) 2857 TEST_ATOMICS(ldaddb_0, ldaddb(w0, w1, MemOperand(x2))) 2858 TEST_ATOMICS(ldaddlb_0, ldaddlb(w0, w1, MemOperand(x2))) 2859 TEST_ATOMICS(ldaddah_0, ldaddah(w0, w1, MemOperand(x2))) 2860 TEST_ATOMICS(ldaddalh_0, ldaddalh(w0, w1, MemOperand(x2))) 2861 TEST_ATOMICS(ldaddh_0, ldaddh(w0, w1, MemOperand(x2))) 2862 TEST_ATOMICS(ldaddlh_0, ldaddlh(w0, w1, MemOperand(x2))) 2863 TEST_ATOMICS(ldclral_0, ldclral(w0, w1, MemOperand(x2))) 2864 TEST_ATOMICS(ldclral_1, ldclral(x0, x1, MemOperand(x2))) 2865 TEST_ATOMICS(ldclra_0, ldclra(w0, w1, MemOperand(x2))) 2866 TEST_ATOMICS(ldclra_1, ldclra(x0, x1, MemOperand(x2))) 2867 TEST_ATOMICS(ldclrl_0, ldclrl(w0, w1, MemOperand(x2))) 2868 TEST_ATOMICS(ldclrl_1, ldclrl(x0, x1, MemOperand(x2))) 2869 TEST_ATOMICS(ldclr_0, ldclr(w0, w1, MemOperand(x2))) 2870 TEST_ATOMICS(ldclr_1, ldclr(x0, x1, MemOperand(x2))) 2871 TEST_ATOMICS(ldclrab_0, ldclrab(w0, w1, MemOperand(x2))) 2872 TEST_ATOMICS(ldclralb_0, ldclralb(w0, w1, MemOperand(x2))) 2873 TEST_ATOMICS(ldclrb_0, ldclrb(w0, w1, MemOperand(x2))) 2874 TEST_ATOMICS(ldclrlb_0, ldclrlb(w0, w1, MemOperand(x2))) 2875 TEST_ATOMICS(ldclrah_0, ldclrah(w0, w1, MemOperand(x2))) 2876 TEST_ATOMICS(ldclralh_0, ldclralh(w0, w1, MemOperand(x2))) 2877 TEST_ATOMICS(ldclrh_0, ldclrh(w0, w1, MemOperand(x2))) 2878 TEST_ATOMICS(ldclrlh_0, ldclrlh(w0, w1, MemOperand(x2))) 2879 TEST_ATOMICS(ldeoral_0, ldeoral(w0, w1, MemOperand(x2))) 2880 TEST_ATOMICS(ldeoral_1, ldeoral(x0, x1, MemOperand(x2))) 2881 TEST_ATOMICS(ldeora_0, ldeora(w0, w1, MemOperand(x2))) 2882 TEST_ATOMICS(ldeora_1, ldeora(x0, x1, MemOperand(x2))) 2883 TEST_ATOMICS(ldeorl_0, ldeorl(w0, w1, MemOperand(x2))) 2884 TEST_ATOMICS(ldeorl_1, ldeorl(x0, x1, MemOperand(x2))) 2885 TEST_ATOMICS(ldeor_0, ldeor(w0, w1, MemOperand(x2))) 2886 TEST_ATOMICS(ldeor_1, ldeor(x0, x1, MemOperand(x2))) 2887 TEST_ATOMICS(ldeorab_0, ldeorab(w0, w1, MemOperand(x2))) 2888 TEST_ATOMICS(ldeoralb_0, ldeoralb(w0, w1, MemOperand(x2))) 2889 TEST_ATOMICS(ldeorb_0, ldeorb(w0, w1, MemOperand(x2))) 2890 TEST_ATOMICS(ldeorlb_0, ldeorlb(w0, w1, MemOperand(x2))) 2891 TEST_ATOMICS(ldeorah_0, ldeorah(w0, w1, MemOperand(x2))) 2892 TEST_ATOMICS(ldeoralh_0, ldeoralh(w0, w1, MemOperand(x2))) 2893 TEST_ATOMICS(ldeorh_0, ldeorh(w0, w1, MemOperand(x2))) 2894 TEST_ATOMICS(ldeorlh_0, ldeorlh(w0, w1, MemOperand(x2))) 2895 TEST_ATOMICS(ldsetal_0, ldsetal(w0, w1, MemOperand(x2))) 2896 TEST_ATOMICS(ldsetal_1, ldsetal(x0, x1, MemOperand(x2))) 2897 TEST_ATOMICS(ldseta_0, ldseta(w0, w1, MemOperand(x2))) 2898 TEST_ATOMICS(ldseta_1, ldseta(x0, x1, MemOperand(x2))) 2899 TEST_ATOMICS(ldsetl_0, ldsetl(w0, w1, MemOperand(x2))) 2900 TEST_ATOMICS(ldsetl_1, ldsetl(x0, x1, MemOperand(x2))) 2901 TEST_ATOMICS(ldset_0, ldset(w0, w1, MemOperand(x2))) 2902 TEST_ATOMICS(ldset_1, ldset(x0, x1, MemOperand(x2))) 2903 TEST_ATOMICS(ldsetab_0, ldsetab(w0, w1, MemOperand(x2))) 2904 TEST_ATOMICS(ldsetalb_0, ldsetalb(w0, w1, MemOperand(x2))) 2905 TEST_ATOMICS(ldsetb_0, ldsetb(w0, w1, MemOperand(x2))) 2906 TEST_ATOMICS(ldsetlb_0, ldsetlb(w0, w1, MemOperand(x2))) 2907 TEST_ATOMICS(ldsetah_0, ldsetah(w0, w1, MemOperand(x2))) 2908 TEST_ATOMICS(ldsetalh_0, ldsetalh(w0, w1, MemOperand(x2))) 2909 TEST_ATOMICS(ldseth_0, ldseth(w0, w1, MemOperand(x2))) 2910 TEST_ATOMICS(ldsetlh_0, ldsetlh(w0, w1, MemOperand(x2))) 2911 TEST_ATOMICS(ldsmaxal_0, ldsmaxal(w0, w1, MemOperand(x2))) 2912 TEST_ATOMICS(ldsmaxal_1, ldsmaxal(x0, x1, MemOperand(x2))) 2913 TEST_ATOMICS(ldsmaxa_0, ldsmaxa(w0, w1, MemOperand(x2))) 2914 TEST_ATOMICS(ldsmaxa_1, ldsmaxa(x0, x1, MemOperand(x2))) 2915 TEST_ATOMICS(ldsmaxl_0, ldsmaxl(w0, w1, MemOperand(x2))) 2916 TEST_ATOMICS(ldsmaxl_1, ldsmaxl(x0, x1, MemOperand(x2))) 2917 TEST_ATOMICS(ldsmax_0, ldsmax(w0, w1, MemOperand(x2))) 2918 TEST_ATOMICS(ldsmax_1, ldsmax(x0, x1, MemOperand(x2))) 2919 TEST_ATOMICS(ldsmaxab_0, ldsmaxab(w0, w1, MemOperand(x2))) 2920 TEST_ATOMICS(ldsmaxalb_0, ldsmaxalb(w0, w1, MemOperand(x2))) 2921 TEST_ATOMICS(ldsmaxb_0, ldsmaxb(w0, w1, MemOperand(x2))) 2922 TEST_ATOMICS(ldsmaxlb_0, ldsmaxlb(w0, w1, MemOperand(x2))) 2923 TEST_ATOMICS(ldsmaxah_0, ldsmaxah(w0, w1, MemOperand(x2))) 2924 TEST_ATOMICS(ldsmaxalh_0, ldsmaxalh(w0, w1, MemOperand(x2))) 2925 TEST_ATOMICS(ldsmaxh_0, ldsmaxh(w0, w1, MemOperand(x2))) 2926 TEST_ATOMICS(ldsmaxlh_0, ldsmaxlh(w0, w1, MemOperand(x2))) 2927 TEST_ATOMICS(ldsminal_0, ldsminal(w0, w1, MemOperand(x2))) 2928 TEST_ATOMICS(ldsminal_1, ldsminal(x0, x1, MemOperand(x2))) 2929 TEST_ATOMICS(ldsmina_0, ldsmina(w0, w1, MemOperand(x2))) 2930 TEST_ATOMICS(ldsmina_1, ldsmina(x0, x1, MemOperand(x2))) 2931 TEST_ATOMICS(ldsminl_0, ldsminl(w0, w1, MemOperand(x2))) 2932 TEST_ATOMICS(ldsminl_1, ldsminl(x0, x1, MemOperand(x2))) 2933 TEST_ATOMICS(ldsmin_0, ldsmin(w0, w1, MemOperand(x2))) 2934 TEST_ATOMICS(ldsmin_1, ldsmin(x0, x1, MemOperand(x2))) 2935 TEST_ATOMICS(ldsminab_0, ldsminab(w0, w1, MemOperand(x2))) 2936 TEST_ATOMICS(ldsminalb_0, ldsminalb(w0, w1, MemOperand(x2))) 2937 TEST_ATOMICS(ldsminb_0, ldsminb(w0, w1, MemOperand(x2))) 2938 TEST_ATOMICS(ldsminlb_0, ldsminlb(w0, w1, MemOperand(x2))) 2939 TEST_ATOMICS(ldsminah_0, ldsminah(w0, w1, MemOperand(x2))) 2940 TEST_ATOMICS(ldsminalh_0, ldsminalh(w0, w1, MemOperand(x2))) 2941 TEST_ATOMICS(ldsminh_0, ldsminh(w0, w1, MemOperand(x2))) 2942 TEST_ATOMICS(ldsminlh_0, ldsminlh(w0, w1, MemOperand(x2))) 2943 TEST_ATOMICS(ldumaxal_0, ldumaxal(w0, w1, MemOperand(x2))) 2944 TEST_ATOMICS(ldumaxal_1, ldumaxal(x0, x1, MemOperand(x2))) 2945 TEST_ATOMICS(ldumaxa_0, ldumaxa(w0, w1, MemOperand(x2))) 2946 TEST_ATOMICS(ldumaxa_1, ldumaxa(x0, x1, MemOperand(x2))) 2947 TEST_ATOMICS(ldumaxl_0, ldumaxl(w0, w1, MemOperand(x2))) 2948 TEST_ATOMICS(ldumaxl_1, ldumaxl(x0, x1, MemOperand(x2))) 2949 TEST_ATOMICS(ldumax_0, ldumax(w0, w1, MemOperand(x2))) 2950 TEST_ATOMICS(ldumax_1, ldumax(x0, x1, MemOperand(x2))) 2951 TEST_ATOMICS(ldumaxab_0, ldumaxab(w0, w1, MemOperand(x2))) 2952 TEST_ATOMICS(ldumaxalb_0, ldumaxalb(w0, w1, MemOperand(x2))) 2953 TEST_ATOMICS(ldumaxb_0, ldumaxb(w0, w1, MemOperand(x2))) 2954 TEST_ATOMICS(ldumaxlb_0, ldumaxlb(w0, w1, MemOperand(x2))) 2955 TEST_ATOMICS(ldumaxah_0, ldumaxah(w0, w1, MemOperand(x2))) 2956 TEST_ATOMICS(ldumaxalh_0, ldumaxalh(w0, w1, MemOperand(x2))) 2957 TEST_ATOMICS(ldumaxh_0, ldumaxh(w0, w1, MemOperand(x2))) 2958 TEST_ATOMICS(ldumaxlh_0, ldumaxlh(w0, w1, MemOperand(x2))) 2959 TEST_ATOMICS(lduminal_0, lduminal(w0, w1, MemOperand(x2))) 2960 TEST_ATOMICS(lduminal_1, lduminal(x0, x1, MemOperand(x2))) 2961 TEST_ATOMICS(ldumina_0, ldumina(w0, w1, MemOperand(x2))) 2962 TEST_ATOMICS(ldumina_1, ldumina(x0, x1, MemOperand(x2))) 2963 TEST_ATOMICS(lduminl_0, lduminl(w0, w1, MemOperand(x2))) 2964 TEST_ATOMICS(lduminl_1, lduminl(x0, x1, MemOperand(x2))) 2965 TEST_ATOMICS(ldumin_0, ldumin(w0, w1, MemOperand(x2))) 2966 TEST_ATOMICS(ldumin_1, ldumin(x0, x1, MemOperand(x2))) 2967 TEST_ATOMICS(lduminab_0, lduminab(w0, w1, MemOperand(x2))) 2968 TEST_ATOMICS(lduminalb_0, lduminalb(w0, w1, MemOperand(x2))) 2969 TEST_ATOMICS(lduminb_0, lduminb(w0, w1, MemOperand(x2))) 2970 TEST_ATOMICS(lduminlb_0, lduminlb(w0, w1, MemOperand(x2))) 2971 TEST_ATOMICS(lduminah_0, lduminah(w0, w1, MemOperand(x2))) 2972 TEST_ATOMICS(lduminalh_0, lduminalh(w0, w1, MemOperand(x2))) 2973 TEST_ATOMICS(lduminh_0, lduminh(w0, w1, MemOperand(x2))) 2974 TEST_ATOMICS(lduminlh_0, lduminlh(w0, w1, MemOperand(x2))) 2975 TEST_ATOMICS(staddb_0, staddb(w0, MemOperand(x1))) 2976 TEST_ATOMICS(staddlb_0, staddlb(w0, MemOperand(x1))) 2977 TEST_ATOMICS(staddh_0, staddh(w0, MemOperand(x1))) 2978 TEST_ATOMICS(staddlh_0, staddlh(w0, MemOperand(x1))) 2979 TEST_ATOMICS(staddl_0, staddl(w0, MemOperand(x1))) 2980 TEST_ATOMICS(staddl_1, staddl(x0, MemOperand(x1))) 2981 TEST_ATOMICS(stadd_0, stadd(w0, MemOperand(x1))) 2982 TEST_ATOMICS(stadd_1, stadd(x0, MemOperand(x1))) 2983 TEST_ATOMICS(stclrb_0, stclrb(w0, MemOperand(x1))) 2984 TEST_ATOMICS(stclrlb_0, stclrlb(w0, MemOperand(x1))) 2985 TEST_ATOMICS(stclrh_0, stclrh(w0, MemOperand(x1))) 2986 TEST_ATOMICS(stclrlh_0, stclrlh(w0, MemOperand(x1))) 2987 TEST_ATOMICS(stclrl_0, stclrl(w0, MemOperand(x1))) 2988 TEST_ATOMICS(stclrl_1, stclrl(x0, MemOperand(x1))) 2989 TEST_ATOMICS(stclr_0, stclr(w0, MemOperand(x1))) 2990 TEST_ATOMICS(stclr_1, stclr(x0, MemOperand(x1))) 2991 TEST_ATOMICS(steorb_0, steorb(w0, MemOperand(x1))) 2992 TEST_ATOMICS(steorlb_0, steorlb(w0, MemOperand(x1))) 2993 TEST_ATOMICS(steorh_0, steorh(w0, MemOperand(x1))) 2994 TEST_ATOMICS(steorlh_0, steorlh(w0, MemOperand(x1))) 2995 TEST_ATOMICS(steorl_0, steorl(w0, MemOperand(x1))) 2996 TEST_ATOMICS(steorl_1, steorl(x0, MemOperand(x1))) 2997 TEST_ATOMICS(steor_0, steor(w0, MemOperand(x1))) 2998 TEST_ATOMICS(steor_1, steor(x0, MemOperand(x1))) 2999 TEST_ATOMICS(stsetb_0, stsetb(w0, MemOperand(x1))) 3000 TEST_ATOMICS(stsetlb_0, stsetlb(w0, MemOperand(x1))) 3001 TEST_ATOMICS(stseth_0, stseth(w0, MemOperand(x1))) 3002 TEST_ATOMICS(stsetlh_0, stsetlh(w0, MemOperand(x1))) 3003 TEST_ATOMICS(stsetl_0, stsetl(w0, MemOperand(x1))) 3004 TEST_ATOMICS(stsetl_1, stsetl(x0, MemOperand(x1))) 3005 TEST_ATOMICS(stset_0, stset(w0, MemOperand(x1))) 3006 TEST_ATOMICS(stset_1, stset(x0, MemOperand(x1))) 3007 TEST_ATOMICS(stsmaxb_0, stsmaxb(w0, MemOperand(x1))) 3008 TEST_ATOMICS(stsmaxlb_0, stsmaxlb(w0, MemOperand(x1))) 3009 TEST_ATOMICS(stsmaxh_0, stsmaxh(w0, MemOperand(x1))) 3010 TEST_ATOMICS(stsmaxlh_0, stsmaxlh(w0, MemOperand(x1))) 3011 TEST_ATOMICS(stsmaxl_0, stsmaxl(w0, MemOperand(x1))) 3012 TEST_ATOMICS(stsmaxl_1, stsmaxl(x0, MemOperand(x1))) 3013 TEST_ATOMICS(stsmax_0, stsmax(w0, MemOperand(x1))) 3014 TEST_ATOMICS(stsmax_1, stsmax(x0, MemOperand(x1))) 3015 TEST_ATOMICS(stsminb_0, stsminb(w0, MemOperand(x1))) 3016 TEST_ATOMICS(stsminlb_0, stsminlb(w0, MemOperand(x1))) 3017 TEST_ATOMICS(stsminh_0, stsminh(w0, MemOperand(x1))) 3018 TEST_ATOMICS(stsminlh_0, stsminlh(w0, MemOperand(x1))) 3019 TEST_ATOMICS(stsminl_0, stsminl(w0, MemOperand(x1))) 3020 TEST_ATOMICS(stsminl_1, stsminl(x0, MemOperand(x1))) 3021 TEST_ATOMICS(stsmin_0, stsmin(w0, MemOperand(x1))) 3022 TEST_ATOMICS(stsmin_1, stsmin(x0, MemOperand(x1))) 3023 TEST_ATOMICS(stumaxb_0, stumaxb(w0, MemOperand(x1))) 3024 TEST_ATOMICS(stumaxlb_0, stumaxlb(w0, MemOperand(x1))) 3025 TEST_ATOMICS(stumaxh_0, stumaxh(w0, MemOperand(x1))) 3026 TEST_ATOMICS(stumaxlh_0, stumaxlh(w0, MemOperand(x1))) 3027 TEST_ATOMICS(stumaxl_0, stumaxl(w0, MemOperand(x1))) 3028 TEST_ATOMICS(stumaxl_1, stumaxl(x0, MemOperand(x1))) 3029 TEST_ATOMICS(stumax_0, stumax(w0, MemOperand(x1))) 3030 TEST_ATOMICS(stumax_1, stumax(x0, MemOperand(x1))) 3031 TEST_ATOMICS(stuminb_0, stuminb(w0, MemOperand(x1))) 3032 TEST_ATOMICS(stuminlb_0, stuminlb(w0, MemOperand(x1))) 3033 TEST_ATOMICS(stuminh_0, stuminh(w0, MemOperand(x1))) 3034 TEST_ATOMICS(stuminlh_0, stuminlh(w0, MemOperand(x1))) 3035 TEST_ATOMICS(stuminl_0, stuminl(w0, MemOperand(x1))) 3036 TEST_ATOMICS(stuminl_1, stuminl(x0, MemOperand(x1))) 3037 TEST_ATOMICS(stumin_0, stumin(w0, MemOperand(x1))) 3038 TEST_ATOMICS(stumin_1, stumin(x0, MemOperand(x1))) 3039 TEST_ATOMICS(swpal_0, swpal(w0, w1, MemOperand(x2))) 3040 TEST_ATOMICS(swpal_1, swpal(x0, x1, MemOperand(x2))) 3041 TEST_ATOMICS(swpa_0, swpa(w0, w1, MemOperand(x2))) 3042 TEST_ATOMICS(swpa_1, swpa(x0, x1, MemOperand(x2))) 3043 TEST_ATOMICS(swpl_0, swpl(w0, w1, MemOperand(x2))) 3044 TEST_ATOMICS(swpl_1, swpl(x0, x1, MemOperand(x2))) 3045 TEST_ATOMICS(swp_0, swp(w0, w1, MemOperand(x2))) 3046 TEST_ATOMICS(swp_1, swp(x0, x1, MemOperand(x2))) 3047 TEST_ATOMICS(swpab_0, swpab(w0, w1, MemOperand(x2))) 3048 TEST_ATOMICS(swpalb_0, swpalb(w0, w1, MemOperand(x2))) 3049 TEST_ATOMICS(swpb_0, swpb(w0, w1, MemOperand(x2))) 3050 TEST_ATOMICS(swplb_0, swplb(w0, w1, MemOperand(x2))) 3051 TEST_ATOMICS(swpah_0, swpah(w0, w1, MemOperand(x2))) 3052 TEST_ATOMICS(swpalh_0, swpalh(w0, w1, MemOperand(x2))) 3053 TEST_ATOMICS(swph_0, swph(w0, w1, MemOperand(x2))) 3054 TEST_ATOMICS(swplh_0, swplh(w0, w1, MemOperand(x2))) 3055 3056 #define TEST_FP_NEON(NAME, ASM) \ 3057 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kFP, CPUFeatures::kNEON), \ 3058 FP_NEON_##NAME, \ 3059 ASM) 3060 TEST_FP_NEON(fabd_0, fabd(v0.V2S(), v1.V2S(), v2.V2S())) 3061 TEST_FP_NEON(fabd_1, fabd(v0.V4S(), v1.V4S(), v2.V4S())) 3062 TEST_FP_NEON(fabd_2, fabd(v0.V2D(), v1.V2D(), v2.V2D())) 3063 TEST_FP_NEON(fabd_3, fabd(s0, s1, s2)) 3064 TEST_FP_NEON(fabd_4, fabd(d0, d1, d2)) 3065 TEST_FP_NEON(fabs_0, fabs(v0.V2S(), v1.V2S())) 3066 TEST_FP_NEON(fabs_1, fabs(v0.V4S(), v1.V4S())) 3067 TEST_FP_NEON(fabs_2, fabs(v0.V2D(), v1.V2D())) 3068 TEST_FP_NEON(facge_0, facge(v0.V2S(), v1.V2S(), v2.V2S())) 3069 TEST_FP_NEON(facge_1, facge(v0.V4S(), v1.V4S(), v2.V4S())) 3070 TEST_FP_NEON(facge_2, facge(v0.V2D(), v1.V2D(), v2.V2D())) 3071 TEST_FP_NEON(facge_3, facge(s0, s1, s2)) 3072 TEST_FP_NEON(facge_4, facge(d0, d1, d2)) 3073 TEST_FP_NEON(facgt_0, facgt(v0.V2S(), v1.V2S(), v2.V2S())) 3074 TEST_FP_NEON(facgt_1, facgt(v0.V4S(), v1.V4S(), v2.V4S())) 3075 TEST_FP_NEON(facgt_2, facgt(v0.V2D(), v1.V2D(), v2.V2D())) 3076 TEST_FP_NEON(facgt_3, facgt(s0, s1, s2)) 3077 TEST_FP_NEON(facgt_4, facgt(d0, d1, d2)) 3078 TEST_FP_NEON(faddp_0, faddp(s0, v1.V2S())) 3079 TEST_FP_NEON(faddp_1, faddp(d0, v1.V2D())) 3080 TEST_FP_NEON(faddp_2, faddp(v0.V2S(), v1.V2S(), v2.V2S())) 3081 TEST_FP_NEON(faddp_3, faddp(v0.V4S(), v1.V4S(), v2.V4S())) 3082 TEST_FP_NEON(faddp_4, faddp(v0.V2D(), v1.V2D(), v2.V2D())) 3083 TEST_FP_NEON(fadd_0, fadd(v0.V2S(), v1.V2S(), v2.V2S())) 3084 TEST_FP_NEON(fadd_1, fadd(v0.V4S(), v1.V4S(), v2.V4S())) 3085 TEST_FP_NEON(fadd_2, fadd(v0.V2D(), v1.V2D(), v2.V2D())) 3086 TEST_FP_NEON(fcmeq_0, fcmeq(v0.V2S(), v1.V2S(), v2.V2S())) 3087 TEST_FP_NEON(fcmeq_1, fcmeq(v0.V4S(), v1.V4S(), v2.V4S())) 3088 TEST_FP_NEON(fcmeq_2, fcmeq(v0.V2D(), v1.V2D(), v2.V2D())) 3089 TEST_FP_NEON(fcmeq_3, fcmeq(s0, s1, s2)) 3090 TEST_FP_NEON(fcmeq_4, fcmeq(d0, d1, d2)) 3091 TEST_FP_NEON(fcmeq_5, fcmeq(v0.V2S(), v1.V2S(), 0.0)) 3092 TEST_FP_NEON(fcmeq_6, fcmeq(v0.V4S(), v1.V4S(), 0.0)) 3093 TEST_FP_NEON(fcmeq_7, fcmeq(v0.V2D(), v1.V2D(), 0.0)) 3094 TEST_FP_NEON(fcmeq_8, fcmeq(s0, s1, 0.0)) 3095 TEST_FP_NEON(fcmeq_9, fcmeq(d0, d1, 0.0)) 3096 TEST_FP_NEON(fcmge_0, fcmge(v0.V2S(), v1.V2S(), v2.V2S())) 3097 TEST_FP_NEON(fcmge_1, fcmge(v0.V4S(), v1.V4S(), v2.V4S())) 3098 TEST_FP_NEON(fcmge_2, fcmge(v0.V2D(), v1.V2D(), v2.V2D())) 3099 TEST_FP_NEON(fcmge_3, fcmge(s0, s1, s2)) 3100 TEST_FP_NEON(fcmge_4, fcmge(d0, d1, d2)) 3101 TEST_FP_NEON(fcmge_5, fcmge(v0.V2S(), v1.V2S(), 0.0)) 3102 TEST_FP_NEON(fcmge_6, fcmge(v0.V4S(), v1.V4S(), 0.0)) 3103 TEST_FP_NEON(fcmge_7, fcmge(v0.V2D(), v1.V2D(), 0.0)) 3104 TEST_FP_NEON(fcmge_8, fcmge(s0, s1, 0.0)) 3105 TEST_FP_NEON(fcmge_9, fcmge(d0, d1, 0.0)) 3106 TEST_FP_NEON(fcmgt_0, fcmgt(v0.V2S(), v1.V2S(), v2.V2S())) 3107 TEST_FP_NEON(fcmgt_1, fcmgt(v0.V4S(), v1.V4S(), v2.V4S())) 3108 TEST_FP_NEON(fcmgt_2, fcmgt(v0.V2D(), v1.V2D(), v2.V2D())) 3109 TEST_FP_NEON(fcmgt_3, fcmgt(s0, s1, s2)) 3110 TEST_FP_NEON(fcmgt_4, fcmgt(d0, d1, d2)) 3111 TEST_FP_NEON(fcmgt_5, fcmgt(v0.V2S(), v1.V2S(), 0.0)) 3112 TEST_FP_NEON(fcmgt_6, fcmgt(v0.V4S(), v1.V4S(), 0.0)) 3113 TEST_FP_NEON(fcmgt_7, fcmgt(v0.V2D(), v1.V2D(), 0.0)) 3114 TEST_FP_NEON(fcmgt_8, fcmgt(s0, s1, 0.0)) 3115 TEST_FP_NEON(fcmgt_9, fcmgt(d0, d1, 0.0)) 3116 TEST_FP_NEON(fcmle_0, fcmle(v0.V2S(), v1.V2S(), 0.0)) 3117 TEST_FP_NEON(fcmle_1, fcmle(v0.V4S(), v1.V4S(), 0.0)) 3118 TEST_FP_NEON(fcmle_2, fcmle(v0.V2D(), v1.V2D(), 0.0)) 3119 TEST_FP_NEON(fcmle_3, fcmle(s0, s1, 0.0)) 3120 TEST_FP_NEON(fcmle_4, fcmle(d0, d1, 0.0)) 3121 TEST_FP_NEON(fcmlt_0, fcmlt(v0.V2S(), v1.V2S(), 0.0)) 3122 TEST_FP_NEON(fcmlt_1, fcmlt(v0.V4S(), v1.V4S(), 0.0)) 3123 TEST_FP_NEON(fcmlt_2, fcmlt(v0.V2D(), v1.V2D(), 0.0)) 3124 TEST_FP_NEON(fcmlt_3, fcmlt(s0, s1, 0.0)) 3125 TEST_FP_NEON(fcmlt_4, fcmlt(d0, d1, 0.0)) 3126 TEST_FP_NEON(fcvtas_0, fcvtas(v0.V2S(), v1.V2S())) 3127 TEST_FP_NEON(fcvtas_1, fcvtas(v0.V4S(), v1.V4S())) 3128 TEST_FP_NEON(fcvtas_2, fcvtas(v0.V2D(), v1.V2D())) 3129 TEST_FP_NEON(fcvtas_3, fcvtas(s0, s1)) 3130 TEST_FP_NEON(fcvtas_4, fcvtas(d0, d1)) 3131 TEST_FP_NEON(fcvtau_0, fcvtau(v0.V2S(), v1.V2S())) 3132 TEST_FP_NEON(fcvtau_1, fcvtau(v0.V4S(), v1.V4S())) 3133 TEST_FP_NEON(fcvtau_2, fcvtau(v0.V2D(), v1.V2D())) 3134 TEST_FP_NEON(fcvtau_3, fcvtau(s0, s1)) 3135 TEST_FP_NEON(fcvtau_4, fcvtau(d0, d1)) 3136 TEST_FP_NEON(fcvtl_0, fcvtl(v0.V4S(), v1.V4H())) 3137 TEST_FP_NEON(fcvtl_1, fcvtl(v0.V2D(), v1.V2S())) 3138 TEST_FP_NEON(fcvtl2_0, fcvtl2(v0.V4S(), v1.V8H())) 3139 TEST_FP_NEON(fcvtl2_1, fcvtl2(v0.V2D(), v1.V4S())) 3140 TEST_FP_NEON(fcvtms_0, fcvtms(v0.V2S(), v1.V2S())) 3141 TEST_FP_NEON(fcvtms_1, fcvtms(v0.V4S(), v1.V4S())) 3142 TEST_FP_NEON(fcvtms_2, fcvtms(v0.V2D(), v1.V2D())) 3143 TEST_FP_NEON(fcvtms_3, fcvtms(s0, s1)) 3144 TEST_FP_NEON(fcvtms_4, fcvtms(d0, d1)) 3145 TEST_FP_NEON(fcvtmu_0, fcvtmu(v0.V2S(), v1.V2S())) 3146 TEST_FP_NEON(fcvtmu_1, fcvtmu(v0.V4S(), v1.V4S())) 3147 TEST_FP_NEON(fcvtmu_2, fcvtmu(v0.V2D(), v1.V2D())) 3148 TEST_FP_NEON(fcvtmu_3, fcvtmu(s0, s1)) 3149 TEST_FP_NEON(fcvtmu_4, fcvtmu(d0, d1)) 3150 TEST_FP_NEON(fcvtns_0, fcvtns(v0.V2S(), v1.V2S())) 3151 TEST_FP_NEON(fcvtns_1, fcvtns(v0.V4S(), v1.V4S())) 3152 TEST_FP_NEON(fcvtns_2, fcvtns(v0.V2D(), v1.V2D())) 3153 TEST_FP_NEON(fcvtns_3, fcvtns(s0, s1)) 3154 TEST_FP_NEON(fcvtns_4, fcvtns(d0, d1)) 3155 TEST_FP_NEON(fcvtnu_0, fcvtnu(v0.V2S(), v1.V2S())) 3156 TEST_FP_NEON(fcvtnu_1, fcvtnu(v0.V4S(), v1.V4S())) 3157 TEST_FP_NEON(fcvtnu_2, fcvtnu(v0.V2D(), v1.V2D())) 3158 TEST_FP_NEON(fcvtnu_3, fcvtnu(s0, s1)) 3159 TEST_FP_NEON(fcvtnu_4, fcvtnu(d0, d1)) 3160 TEST_FP_NEON(fcvtn_0, fcvtn(v0.V4H(), v1.V4S())) 3161 TEST_FP_NEON(fcvtn_1, fcvtn(v0.V2S(), v1.V2D())) 3162 TEST_FP_NEON(fcvtn2_0, fcvtn2(v0.V8H(), v1.V4S())) 3163 TEST_FP_NEON(fcvtn2_1, fcvtn2(v0.V4S(), v1.V2D())) 3164 TEST_FP_NEON(fcvtps_0, fcvtps(v0.V2S(), v1.V2S())) 3165 TEST_FP_NEON(fcvtps_1, fcvtps(v0.V4S(), v1.V4S())) 3166 TEST_FP_NEON(fcvtps_2, fcvtps(v0.V2D(), v1.V2D())) 3167 TEST_FP_NEON(fcvtps_3, fcvtps(s0, s1)) 3168 TEST_FP_NEON(fcvtps_4, fcvtps(d0, d1)) 3169 TEST_FP_NEON(fcvtpu_0, fcvtpu(v0.V2S(), v1.V2S())) 3170 TEST_FP_NEON(fcvtpu_1, fcvtpu(v0.V4S(), v1.V4S())) 3171 TEST_FP_NEON(fcvtpu_2, fcvtpu(v0.V2D(), v1.V2D())) 3172 TEST_FP_NEON(fcvtpu_3, fcvtpu(s0, s1)) 3173 TEST_FP_NEON(fcvtpu_4, fcvtpu(d0, d1)) 3174 TEST_FP_NEON(fcvtxn_0, fcvtxn(v0.V2S(), v1.V2D())) 3175 TEST_FP_NEON(fcvtxn2_0, fcvtxn2(v0.V4S(), v1.V2D())) 3176 TEST_FP_NEON(fcvtxn_1, fcvtxn(s0, d1)) 3177 TEST_FP_NEON(fcvtzs_0, fcvtzs(v0.V2S(), v1.V2S(), 5)) 3178 TEST_FP_NEON(fcvtzs_1, fcvtzs(v0.V4S(), v1.V4S(), 5)) 3179 TEST_FP_NEON(fcvtzs_2, fcvtzs(v0.V2D(), v1.V2D(), 5)) 3180 TEST_FP_NEON(fcvtzs_3, fcvtzs(s0, s1, 5)) 3181 TEST_FP_NEON(fcvtzs_4, fcvtzs(d0, d1, 5)) 3182 TEST_FP_NEON(fcvtzs_5, fcvtzs(v0.V2S(), v1.V2S())) 3183 TEST_FP_NEON(fcvtzs_6, fcvtzs(v0.V4S(), v1.V4S())) 3184 TEST_FP_NEON(fcvtzs_7, fcvtzs(v0.V2D(), v1.V2D())) 3185 TEST_FP_NEON(fcvtzs_8, fcvtzs(s0, s1)) 3186 TEST_FP_NEON(fcvtzs_9, fcvtzs(d0, d1)) 3187 TEST_FP_NEON(fcvtzu_0, fcvtzu(v0.V2S(), v1.V2S(), 5)) 3188 TEST_FP_NEON(fcvtzu_1, fcvtzu(v0.V4S(), v1.V4S(), 5)) 3189 TEST_FP_NEON(fcvtzu_2, fcvtzu(v0.V2D(), v1.V2D(), 5)) 3190 TEST_FP_NEON(fcvtzu_3, fcvtzu(s0, s1, 5)) 3191 TEST_FP_NEON(fcvtzu_4, fcvtzu(d0, d1, 5)) 3192 TEST_FP_NEON(fcvtzu_5, fcvtzu(v0.V2S(), v1.V2S())) 3193 TEST_FP_NEON(fcvtzu_6, fcvtzu(v0.V4S(), v1.V4S())) 3194 TEST_FP_NEON(fcvtzu_7, fcvtzu(v0.V2D(), v1.V2D())) 3195 TEST_FP_NEON(fcvtzu_8, fcvtzu(s0, s1)) 3196 TEST_FP_NEON(fcvtzu_9, fcvtzu(d0, d1)) 3197 TEST_FP_NEON(fdiv_0, fdiv(v0.V2S(), v1.V2S(), v2.V2S())) 3198 TEST_FP_NEON(fdiv_1, fdiv(v0.V4S(), v1.V4S(), v2.V4S())) 3199 TEST_FP_NEON(fdiv_2, fdiv(v0.V2D(), v1.V2D(), v2.V2D())) 3200 TEST_FP_NEON(fmaxnmp_0, fmaxnmp(s0, v1.V2S())) 3201 TEST_FP_NEON(fmaxnmp_1, fmaxnmp(d0, v1.V2D())) 3202 TEST_FP_NEON(fmaxnmp_2, fmaxnmp(v0.V2S(), v1.V2S(), v2.V2S())) 3203 TEST_FP_NEON(fmaxnmp_3, fmaxnmp(v0.V4S(), v1.V4S(), v2.V4S())) 3204 TEST_FP_NEON(fmaxnmp_4, fmaxnmp(v0.V2D(), v1.V2D(), v2.V2D())) 3205 TEST_FP_NEON(fmaxnmv_0, fmaxnmv(s0, v1.V4S())) 3206 TEST_FP_NEON(fmaxnm_0, fmaxnm(v0.V2S(), v1.V2S(), v2.V2S())) 3207 TEST_FP_NEON(fmaxnm_1, fmaxnm(v0.V4S(), v1.V4S(), v2.V4S())) 3208 TEST_FP_NEON(fmaxnm_2, fmaxnm(v0.V2D(), v1.V2D(), v2.V2D())) 3209 TEST_FP_NEON(fmaxp_0, fmaxp(s0, v1.V2S())) 3210 TEST_FP_NEON(fmaxp_1, fmaxp(d0, v1.V2D())) 3211 TEST_FP_NEON(fmaxp_2, fmaxp(v0.V2S(), v1.V2S(), v2.V2S())) 3212 TEST_FP_NEON(fmaxp_3, fmaxp(v0.V4S(), v1.V4S(), v2.V4S())) 3213 TEST_FP_NEON(fmaxp_4, fmaxp(v0.V2D(), v1.V2D(), v2.V2D())) 3214 TEST_FP_NEON(fmaxv_0, fmaxv(s0, v1.V4S())) 3215 TEST_FP_NEON(fmax_0, fmax(v0.V2S(), v1.V2S(), v2.V2S())) 3216 TEST_FP_NEON(fmax_1, fmax(v0.V4S(), v1.V4S(), v2.V4S())) 3217 TEST_FP_NEON(fmax_2, fmax(v0.V2D(), v1.V2D(), v2.V2D())) 3218 TEST_FP_NEON(fminnmp_0, fminnmp(s0, v1.V2S())) 3219 TEST_FP_NEON(fminnmp_1, fminnmp(d0, v1.V2D())) 3220 TEST_FP_NEON(fminnmp_2, fminnmp(v0.V2S(), v1.V2S(), v2.V2S())) 3221 TEST_FP_NEON(fminnmp_3, fminnmp(v0.V4S(), v1.V4S(), v2.V4S())) 3222 TEST_FP_NEON(fminnmp_4, fminnmp(v0.V2D(), v1.V2D(), v2.V2D())) 3223 TEST_FP_NEON(fminnmv_0, fminnmv(s0, v1.V4S())) 3224 TEST_FP_NEON(fminnm_0, fminnm(v0.V2S(), v1.V2S(), v2.V2S())) 3225 TEST_FP_NEON(fminnm_1, fminnm(v0.V4S(), v1.V4S(), v2.V4S())) 3226 TEST_FP_NEON(fminnm_2, fminnm(v0.V2D(), v1.V2D(), v2.V2D())) 3227 TEST_FP_NEON(fminp_0, fminp(s0, v1.V2S())) 3228 TEST_FP_NEON(fminp_1, fminp(d0, v1.V2D())) 3229 TEST_FP_NEON(fminp_2, fminp(v0.V2S(), v1.V2S(), v2.V2S())) 3230 TEST_FP_NEON(fminp_3, fminp(v0.V4S(), v1.V4S(), v2.V4S())) 3231 TEST_FP_NEON(fminp_4, fminp(v0.V2D(), v1.V2D(), v2.V2D())) 3232 TEST_FP_NEON(fminv_0, fminv(s0, v1.V4S())) 3233 TEST_FP_NEON(fmin_0, fmin(v0.V2S(), v1.V2S(), v2.V2S())) 3234 TEST_FP_NEON(fmin_1, fmin(v0.V4S(), v1.V4S(), v2.V4S())) 3235 TEST_FP_NEON(fmin_2, fmin(v0.V2D(), v1.V2D(), v2.V2D())) 3236 TEST_FP_NEON(fmla_0, fmla(v0.V2S(), v1.V2S(), v2.S(), 3)) 3237 TEST_FP_NEON(fmla_1, fmla(v0.V4S(), v1.V4S(), v2.S(), 2)) 3238 TEST_FP_NEON(fmla_2, fmla(v0.V2D(), v1.V2D(), v2.D(), 0)) 3239 TEST_FP_NEON(fmla_3, fmla(s0, s1, v2.S(), 1)) 3240 TEST_FP_NEON(fmla_4, fmla(d0, d1, v2.D(), 0)) 3241 TEST_FP_NEON(fmla_5, fmla(v0.V2S(), v1.V2S(), v2.V2S())) 3242 TEST_FP_NEON(fmla_6, fmla(v0.V4S(), v1.V4S(), v2.V4S())) 3243 TEST_FP_NEON(fmls_0, fmls(v0.V2S(), v1.V2S(), v2.S(), 3)) 3244 TEST_FP_NEON(fmls_1, fmls(v0.V4S(), v1.V4S(), v2.S(), 1)) 3245 TEST_FP_NEON(fmls_2, fmls(v0.V2D(), v1.V2D(), v2.D(), 1)) 3246 TEST_FP_NEON(fmls_3, fmls(s0, s1, v2.S(), 3)) 3247 TEST_FP_NEON(fmls_4, fmls(d0, d1, v2.D(), 0)) 3248 TEST_FP_NEON(fmls_5, fmls(v0.V2S(), v1.V2S(), v2.V2S())) 3249 TEST_FP_NEON(fmls_6, fmls(v0.V4S(), v1.V4S(), v2.V4S())) 3250 TEST_FP_NEON(fmov_0, fmov(v0.V2D(), -0.96875)) 3251 TEST_FP_NEON(fmov_1, fmov(v0.V2S(), 3.875f)) 3252 TEST_FP_NEON(fmov_2, fmov(v0.V4S(), 0.1328125f)) 3253 TEST_FP_NEON(fmov_3, fmov(x0, v1.D(), 1)) 3254 TEST_FP_NEON(fmov_4, fmov(v0.D(), 1, x1)) 3255 TEST_FP_NEON(fmulx_0, fmulx(v0.V2S(), v1.V2S(), v2.S(), 1)) 3256 TEST_FP_NEON(fmulx_1, fmulx(v0.V4S(), v1.V4S(), v2.S(), 2)) 3257 TEST_FP_NEON(fmulx_2, fmulx(v0.V2D(), v1.V2D(), v2.D(), 0)) 3258 TEST_FP_NEON(fmulx_3, fmulx(s0, s1, v2.S(), 2)) 3259 TEST_FP_NEON(fmulx_4, fmulx(d0, d1, v2.D(), 0)) 3260 TEST_FP_NEON(fmulx_5, fmulx(v0.V2S(), v1.V2S(), v2.V2S())) 3261 TEST_FP_NEON(fmulx_6, fmulx(v0.V4S(), v1.V4S(), v2.V4S())) 3262 TEST_FP_NEON(fmulx_7, fmulx(s0, s1, s2)) 3263 TEST_FP_NEON(fmulx_8, fmulx(d0, d1, d2)) 3264 TEST_FP_NEON(fmul_0, fmul(v0.V2S(), v1.V2S(), v2.S(), 3)) 3265 TEST_FP_NEON(fmul_1, fmul(v0.V4S(), v1.V4S(), v2.S(), 2)) 3266 TEST_FP_NEON(fmul_2, fmul(v0.V2D(), v1.V2D(), v2.D(), 1)) 3267 TEST_FP_NEON(fmul_3, fmul(s0, s1, v2.S(), 1)) 3268 TEST_FP_NEON(fmul_4, fmul(d0, d1, v2.D(), 1)) 3269 TEST_FP_NEON(fmul_5, fmul(v0.V2S(), v1.V2S(), v2.V2S())) 3270 TEST_FP_NEON(fmul_6, fmul(v0.V4S(), v1.V4S(), v2.V4S())) 3271 TEST_FP_NEON(fneg_0, fneg(v0.V2S(), v1.V2S())) 3272 TEST_FP_NEON(fneg_1, fneg(v0.V4S(), v1.V4S())) 3273 TEST_FP_NEON(fneg_2, fneg(v0.V2D(), v1.V2D())) 3274 TEST_FP_NEON(frecpe_0, frecpe(v0.V2S(), v1.V2S())) 3275 TEST_FP_NEON(frecpe_1, frecpe(v0.V4S(), v1.V4S())) 3276 TEST_FP_NEON(frecpe_2, frecpe(v0.V2D(), v1.V2D())) 3277 TEST_FP_NEON(frecpe_3, frecpe(s0, s1)) 3278 TEST_FP_NEON(frecpe_4, frecpe(d0, d1)) 3279 TEST_FP_NEON(frecps_0, frecps(v0.V2S(), v1.V2S(), v2.V2S())) 3280 TEST_FP_NEON(frecps_1, frecps(v0.V4S(), v1.V4S(), v2.V4S())) 3281 TEST_FP_NEON(frecps_2, frecps(v0.V2D(), v1.V2D(), v2.V2D())) 3282 TEST_FP_NEON(frecps_3, frecps(s0, s1, s2)) 3283 TEST_FP_NEON(frecps_4, frecps(d0, d1, d2)) 3284 TEST_FP_NEON(frecpx_0, frecpx(s0, s1)) 3285 TEST_FP_NEON(frecpx_1, frecpx(d0, d1)) 3286 TEST_FP_NEON(frinta_0, frinta(v0.V2S(), v1.V2S())) 3287 TEST_FP_NEON(frinta_1, frinta(v0.V4S(), v1.V4S())) 3288 TEST_FP_NEON(frinta_2, frinta(v0.V2D(), v1.V2D())) 3289 TEST_FP_NEON(frinti_0, frinti(v0.V2S(), v1.V2S())) 3290 TEST_FP_NEON(frinti_1, frinti(v0.V4S(), v1.V4S())) 3291 TEST_FP_NEON(frinti_2, frinti(v0.V2D(), v1.V2D())) 3292 TEST_FP_NEON(frintm_0, frintm(v0.V2S(), v1.V2S())) 3293 TEST_FP_NEON(frintm_1, frintm(v0.V4S(), v1.V4S())) 3294 TEST_FP_NEON(frintm_2, frintm(v0.V2D(), v1.V2D())) 3295 TEST_FP_NEON(frintn_0, frintn(v0.V2S(), v1.V2S())) 3296 TEST_FP_NEON(frintn_1, frintn(v0.V4S(), v1.V4S())) 3297 TEST_FP_NEON(frintn_2, frintn(v0.V2D(), v1.V2D())) 3298 TEST_FP_NEON(frintp_0, frintp(v0.V2S(), v1.V2S())) 3299 TEST_FP_NEON(frintp_1, frintp(v0.V4S(), v1.V4S())) 3300 TEST_FP_NEON(frintp_2, frintp(v0.V2D(), v1.V2D())) 3301 TEST_FP_NEON(frintx_0, frintx(v0.V2S(), v1.V2S())) 3302 TEST_FP_NEON(frintx_1, frintx(v0.V4S(), v1.V4S())) 3303 TEST_FP_NEON(frintx_2, frintx(v0.V2D(), v1.V2D())) 3304 TEST_FP_NEON(frintz_0, frintz(v0.V2S(), v1.V2S())) 3305 TEST_FP_NEON(frintz_1, frintz(v0.V4S(), v1.V4S())) 3306 TEST_FP_NEON(frintz_2, frintz(v0.V2D(), v1.V2D())) 3307 TEST_FP_NEON(frsqrte_0, frsqrte(v0.V2S(), v1.V2S())) 3308 TEST_FP_NEON(frsqrte_1, frsqrte(v0.V4S(), v1.V4S())) 3309 TEST_FP_NEON(frsqrte_2, frsqrte(v0.V2D(), v1.V2D())) 3310 TEST_FP_NEON(frsqrte_3, frsqrte(s0, s1)) 3311 TEST_FP_NEON(frsqrte_4, frsqrte(d0, d1)) 3312 TEST_FP_NEON(frsqrts_0, frsqrts(v0.V2S(), v1.V2S(), v2.V2S())) 3313 TEST_FP_NEON(frsqrts_1, frsqrts(v0.V4S(), v1.V4S(), v2.V4S())) 3314 TEST_FP_NEON(frsqrts_2, frsqrts(v0.V2D(), v1.V2D(), v2.V2D())) 3315 TEST_FP_NEON(frsqrts_3, frsqrts(s0, s1, s2)) 3316 TEST_FP_NEON(frsqrts_4, frsqrts(d0, d1, d2)) 3317 TEST_FP_NEON(fsqrt_0, fsqrt(v0.V2S(), v1.V2S())) 3318 TEST_FP_NEON(fsqrt_1, fsqrt(v0.V4S(), v1.V4S())) 3319 TEST_FP_NEON(fsqrt_2, fsqrt(v0.V2D(), v1.V2D())) 3320 TEST_FP_NEON(fsub_0, fsub(v0.V2S(), v1.V2S(), v2.V2S())) 3321 TEST_FP_NEON(fsub_1, fsub(v0.V4S(), v1.V4S(), v2.V4S())) 3322 TEST_FP_NEON(fsub_2, fsub(v0.V2D(), v1.V2D(), v2.V2D())) 3323 TEST_FP_NEON(scvtf_0, scvtf(v0.V2S(), v1.V2S(), 5)) 3324 TEST_FP_NEON(scvtf_1, scvtf(v0.V4S(), v1.V4S(), 5)) 3325 TEST_FP_NEON(scvtf_2, scvtf(v0.V2D(), v1.V2D(), 5)) 3326 TEST_FP_NEON(scvtf_3, scvtf(s0, s1, 5)) 3327 TEST_FP_NEON(scvtf_4, scvtf(d0, d1, 5)) 3328 TEST_FP_NEON(scvtf_5, scvtf(v0.V2S(), v1.V2S())) 3329 TEST_FP_NEON(scvtf_6, scvtf(v0.V4S(), v1.V4S())) 3330 TEST_FP_NEON(scvtf_7, scvtf(v0.V2D(), v1.V2D())) 3331 TEST_FP_NEON(scvtf_8, scvtf(s0, s1)) 3332 TEST_FP_NEON(scvtf_9, scvtf(d0, d1)) 3333 TEST_FP_NEON(ucvtf_0, ucvtf(v0.V2S(), v1.V2S(), 5)) 3334 TEST_FP_NEON(ucvtf_1, ucvtf(v0.V4S(), v1.V4S(), 5)) 3335 TEST_FP_NEON(ucvtf_2, ucvtf(v0.V2D(), v1.V2D(), 5)) 3336 TEST_FP_NEON(ucvtf_3, ucvtf(s0, s1, 5)) 3337 TEST_FP_NEON(ucvtf_4, ucvtf(d0, d1, 5)) 3338 TEST_FP_NEON(ucvtf_5, ucvtf(v0.V2S(), v1.V2S())) 3339 TEST_FP_NEON(ucvtf_6, ucvtf(v0.V4S(), v1.V4S())) 3340 TEST_FP_NEON(ucvtf_7, ucvtf(v0.V2D(), v1.V2D())) 3341 TEST_FP_NEON(ucvtf_8, ucvtf(s0, s1)) 3342 TEST_FP_NEON(ucvtf_9, ucvtf(d0, d1)) 3343 3344 #define TEST_FP_JSCVT(NAME, ASM) \ 3345 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kFP, CPUFeatures::kJSCVT), \ 3346 FP_JSCVT_##NAME, \ 3347 ASM) 3348 TEST_FP_JSCVT(fjcvtzs_0, fjcvtzs(w0, d1)) 3349 3350 #define TEST_RDM_NEON(NAME, ASM) \ 3351 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kRDM, CPUFeatures::kNEON), \ 3352 RDM_NEON_##NAME, \ 3353 ASM) 3354 TEST_RDM_NEON(sqrdmlah_0, sqrdmlah(v0.V4H(), v1.V4H(), v2.H(), 5)) 3355 TEST_RDM_NEON(sqrdmlah_1, sqrdmlah(v0.V8H(), v1.V8H(), v2.H(), 4)) 3356 TEST_RDM_NEON(sqrdmlah_2, sqrdmlah(v0.V2S(), v1.V2S(), v2.S(), 3)) 3357 TEST_RDM_NEON(sqrdmlah_3, sqrdmlah(v0.V4S(), v1.V4S(), v2.S(), 0)) 3358 TEST_RDM_NEON(sqrdmlah_4, sqrdmlah(h0, h1, v2.H(), 5)) 3359 TEST_RDM_NEON(sqrdmlah_5, sqrdmlah(s0, s1, v2.S(), 1)) 3360 TEST_RDM_NEON(sqrdmlah_6, sqrdmlah(v0.V4H(), v1.V4H(), v2.V4H())) 3361 TEST_RDM_NEON(sqrdmlah_7, sqrdmlah(v0.V8H(), v1.V8H(), v2.V8H())) 3362 TEST_RDM_NEON(sqrdmlah_8, sqrdmlah(v0.V2S(), v1.V2S(), v2.V2S())) 3363 TEST_RDM_NEON(sqrdmlah_9, sqrdmlah(v0.V4S(), v1.V4S(), v2.V4S())) 3364 TEST_RDM_NEON(sqrdmlah_10, sqrdmlah(h0, h1, h2)) 3365 TEST_RDM_NEON(sqrdmlah_11, sqrdmlah(s0, s1, s2)) 3366 TEST_RDM_NEON(sqrdmlsh_0, sqrdmlsh(v0.V4H(), v1.V4H(), v2.H(), 5)) 3367 TEST_RDM_NEON(sqrdmlsh_1, sqrdmlsh(v0.V8H(), v1.V8H(), v2.H(), 5)) 3368 TEST_RDM_NEON(sqrdmlsh_2, sqrdmlsh(v0.V2S(), v1.V2S(), v2.S(), 2)) 3369 TEST_RDM_NEON(sqrdmlsh_3, sqrdmlsh(v0.V4S(), v1.V4S(), v2.S(), 1)) 3370 TEST_RDM_NEON(sqrdmlsh_4, sqrdmlsh(h0, h1, v2.H(), 6)) 3371 TEST_RDM_NEON(sqrdmlsh_5, sqrdmlsh(s0, s1, v2.S(), 1)) 3372 TEST_RDM_NEON(sqrdmlsh_6, sqrdmlsh(v0.V4H(), v1.V4H(), v2.V4H())) 3373 TEST_RDM_NEON(sqrdmlsh_7, sqrdmlsh(v0.V8H(), v1.V8H(), v2.V8H())) 3374 TEST_RDM_NEON(sqrdmlsh_8, sqrdmlsh(v0.V2S(), v1.V2S(), v2.V2S())) 3375 TEST_RDM_NEON(sqrdmlsh_9, sqrdmlsh(v0.V4S(), v1.V4S(), v2.V4S())) 3376 TEST_RDM_NEON(sqrdmlsh_10, sqrdmlsh(h0, h1, h2)) 3377 TEST_RDM_NEON(sqrdmlsh_11, sqrdmlsh(s0, s1, s2)) 3378 3379 #define TEST_FP_FPHALF(NAME, ASM) \ 3380 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kFP, CPUFeatures::kFPHalf), \ 3381 FP_FPHalf_##NAME, \ 3382 ASM) 3383 TEST_FP_FPHALF(fabs_0, fabs(h0, h1)) 3384 TEST_FP_FPHALF(fadd_0, fadd(h0, h1, h2)) 3385 TEST_FP_FPHALF(fccmpe_0, fccmpe(h0, h1, CFlag, cc)) 3386 TEST_FP_FPHALF(fccmp_0, fccmp(h0, h1, NCFlag, lt)) 3387 TEST_FP_FPHALF(fcmpe_0, fcmpe(h0, 0.0)) 3388 TEST_FP_FPHALF(fcmpe_1, fcmpe(h0, h1)) 3389 TEST_FP_FPHALF(fcmp_0, fcmp(h0, 0.0)) 3390 TEST_FP_FPHALF(fcmp_1, fcmp(h0, h1)) 3391 TEST_FP_FPHALF(fcsel_0, fcsel(h0, h1, h2, cc)) 3392 TEST_FP_FPHALF(fcvtas_0, fcvtas(w0, h1)) 3393 TEST_FP_FPHALF(fcvtas_1, fcvtas(x0, h1)) 3394 TEST_FP_FPHALF(fcvtau_0, fcvtau(w0, h1)) 3395 TEST_FP_FPHALF(fcvtau_1, fcvtau(x0, h1)) 3396 TEST_FP_FPHALF(fcvtms_0, fcvtms(w0, h1)) 3397 TEST_FP_FPHALF(fcvtms_1, fcvtms(x0, h1)) 3398 TEST_FP_FPHALF(fcvtmu_0, fcvtmu(w0, h1)) 3399 TEST_FP_FPHALF(fcvtmu_1, fcvtmu(x0, h1)) 3400 TEST_FP_FPHALF(fcvtns_0, fcvtns(w0, h1)) 3401 TEST_FP_FPHALF(fcvtns_1, fcvtns(x0, h1)) 3402 TEST_FP_FPHALF(fcvtnu_0, fcvtnu(w0, h1)) 3403 TEST_FP_FPHALF(fcvtnu_1, fcvtnu(x0, h1)) 3404 TEST_FP_FPHALF(fcvtps_0, fcvtps(w0, h1)) 3405 TEST_FP_FPHALF(fcvtps_1, fcvtps(x0, h1)) 3406 TEST_FP_FPHALF(fcvtpu_0, fcvtpu(w0, h1)) 3407 TEST_FP_FPHALF(fcvtpu_1, fcvtpu(x0, h1)) 3408 TEST_FP_FPHALF(fcvtzs_0, fcvtzs(w0, h1, 5)) 3409 TEST_FP_FPHALF(fcvtzs_1, fcvtzs(x0, h1, 5)) 3410 TEST_FP_FPHALF(fcvtzs_2, fcvtzs(w0, h1)) 3411 TEST_FP_FPHALF(fcvtzs_3, fcvtzs(x0, h1)) 3412 TEST_FP_FPHALF(fcvtzu_0, fcvtzu(w0, h1, 5)) 3413 TEST_FP_FPHALF(fcvtzu_1, fcvtzu(x0, h1, 5)) 3414 TEST_FP_FPHALF(fcvtzu_2, fcvtzu(w0, h1)) 3415 TEST_FP_FPHALF(fcvtzu_3, fcvtzu(x0, h1)) 3416 TEST_FP_FPHALF(fdiv_0, fdiv(h0, h1, h2)) 3417 TEST_FP_FPHALF(fmadd_0, fmadd(h0, h1, h2, h3)) 3418 TEST_FP_FPHALF(fmaxnm_0, fmaxnm(h0, h1, h2)) 3419 TEST_FP_FPHALF(fmax_0, fmax(h0, h1, h2)) 3420 TEST_FP_FPHALF(fminnm_0, fminnm(h0, h1, h2)) 3421 TEST_FP_FPHALF(fmin_0, fmin(h0, h1, h2)) 3422 TEST_FP_FPHALF(fmov_0, fmov(h0, h1)) 3423 TEST_FP_FPHALF(fmov_1, fmov(w0, h1)) 3424 TEST_FP_FPHALF(fmov_2, fmov(x0, h1)) 3425 TEST_FP_FPHALF(fmov_3, fmov(h0, w1)) 3426 TEST_FP_FPHALF(fmov_4, fmov(h0, x1)) 3427 TEST_FP_FPHALF(fmov_5, fmov(h0, Float16(0.390625))) 3428 TEST_FP_FPHALF(fmsub_0, fmsub(h0, h1, h2, h3)) 3429 TEST_FP_FPHALF(fmul_0, fmul(h0, h1, h2)) 3430 TEST_FP_FPHALF(fneg_0, fneg(h0, h1)) 3431 TEST_FP_FPHALF(fnmadd_0, fnmadd(h0, h1, h2, h3)) 3432 TEST_FP_FPHALF(fnmsub_0, fnmsub(h0, h1, h2, h3)) 3433 TEST_FP_FPHALF(fnmul_0, fnmul(h0, h1, h2)) 3434 TEST_FP_FPHALF(frinta_0, frinta(h0, h1)) 3435 TEST_FP_FPHALF(frinti_0, frinti(h0, h1)) 3436 TEST_FP_FPHALF(frintm_0, frintm(h0, h1)) 3437 TEST_FP_FPHALF(frintn_0, frintn(h0, h1)) 3438 TEST_FP_FPHALF(frintp_0, frintp(h0, h1)) 3439 TEST_FP_FPHALF(frintx_0, frintx(h0, h1)) 3440 TEST_FP_FPHALF(frintz_0, frintz(h0, h1)) 3441 TEST_FP_FPHALF(fsqrt_0, fsqrt(h0, h1)) 3442 TEST_FP_FPHALF(fsub_0, fsub(h0, h1, h2)) 3443 TEST_FP_FPHALF(scvtf_0, scvtf(h0, w1, 5)) 3444 TEST_FP_FPHALF(scvtf_1, scvtf(h0, x1, 5)) 3445 TEST_FP_FPHALF(scvtf_2, scvtf(h0, w1)) 3446 TEST_FP_FPHALF(scvtf_3, scvtf(h0, x1)) 3447 TEST_FP_FPHALF(ucvtf_0, ucvtf(h0, w1, 5)) 3448 TEST_FP_FPHALF(ucvtf_1, ucvtf(h0, x1, 5)) 3449 TEST_FP_FPHALF(ucvtf_2, ucvtf(h0, w1)) 3450 TEST_FP_FPHALF(ucvtf_3, ucvtf(h0, x1)) 3451 3452 #define TEST_LOREGIONS(NAME, ASM) \ 3453 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kLORegions), LORegions_##NAME, ASM) 3454 TEST_LOREGIONS(ldlar_0, ldlar(w0, MemOperand(x1, 0))) 3455 TEST_LOREGIONS(ldlar_1, ldlar(x0, MemOperand(x1, 0))) 3456 TEST_LOREGIONS(ldlarb_0, ldlarb(w0, MemOperand(x1, 0))) 3457 TEST_LOREGIONS(ldlarh_0, ldlarh(w0, MemOperand(x1, 0))) 3458 TEST_LOREGIONS(stllr_0, stllr(w0, MemOperand(x1, 0))) 3459 TEST_LOREGIONS(stllr_1, stllr(x0, MemOperand(x1, 0))) 3460 TEST_LOREGIONS(stllrb_0, stllrb(w0, MemOperand(x1, 0))) 3461 TEST_LOREGIONS(stllrh_0, stllrh(w0, MemOperand(x1, 0))) 3462 3463 #define TEST_FP_FCMA_NEON(NAME, ASM) \ 3464 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kFP, \ 3465 CPUFeatures::kFcma, \ 3466 CPUFeatures::kNEON), \ 3467 FP_Fcma_NEON_##NAME, \ 3468 ASM) 3469 TEST_FP_FCMA_NEON(fcadd_0, fcadd(v0.V2S(), v1.V2S(), v2.V2S(), 270)) 3470 TEST_FP_FCMA_NEON(fcadd_1, fcadd(v0.V4S(), v1.V4S(), v2.V4S(), 90)) 3471 TEST_FP_FCMA_NEON(fcadd_2, fcadd(v0.V2D(), v1.V2D(), v2.V2D(), 270)) 3472 TEST_FP_FCMA_NEON(fcmla_0, fcmla(v0.V4S(), v1.V4S(), v2.S(), 0, 180)) 3473 TEST_FP_FCMA_NEON(fcmla_1, fcmla(v0.V2S(), v1.V2S(), v2.V2S(), 90)) 3474 TEST_FP_FCMA_NEON(fcmla_2, fcmla(v0.V4S(), v1.V4S(), v2.V4S(), 90)) 3475 TEST_FP_FCMA_NEON(fcmla_3, fcmla(v0.V2D(), v1.V2D(), v2.V2D(), 90)) 3476 3477 #define TEST_NEON_DOTPRODUCT(NAME, ASM) \ 3478 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kDotProduct), \ 3479 NEON_DotProduct_##NAME, \ 3480 ASM) 3481 TEST_NEON_DOTPRODUCT(sdot_0, sdot(v0.V2S(), v1.V8B(), v2.S4B(), 1)) 3482 TEST_NEON_DOTPRODUCT(sdot_1, sdot(v0.V4S(), v1.V16B(), v2.S4B(), 1)) 3483 TEST_NEON_DOTPRODUCT(sdot_2, sdot(v0.V2S(), v1.V8B(), v2.V8B())) 3484 TEST_NEON_DOTPRODUCT(sdot_3, sdot(v0.V4S(), v1.V16B(), v2.V16B())) 3485 TEST_NEON_DOTPRODUCT(udot_0, udot(v0.V2S(), v1.V8B(), v2.S4B(), 0)) 3486 TEST_NEON_DOTPRODUCT(udot_1, udot(v0.V4S(), v1.V16B(), v2.S4B(), 1)) 3487 TEST_NEON_DOTPRODUCT(udot_2, udot(v0.V2S(), v1.V8B(), v2.V8B())) 3488 TEST_NEON_DOTPRODUCT(udot_3, udot(v0.V4S(), v1.V16B(), v2.V16B())) 3489 3490 #define TEST_FP_NEON_NEONHALF(NAME, ASM) \ 3491 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kFP, \ 3492 CPUFeatures::kNEON, \ 3493 CPUFeatures::kNEONHalf), \ 3494 FP_NEON_NEONHalf_##NAME, \ 3495 ASM) 3496 TEST_FP_NEON_NEONHALF(fabd_0, fabd(v0.V4H(), v1.V4H(), v2.V4H())) 3497 TEST_FP_NEON_NEONHALF(fabd_1, fabd(v0.V8H(), v1.V8H(), v2.V8H())) 3498 TEST_FP_NEON_NEONHALF(fabd_2, fabd(h0, h1, h2)) 3499 TEST_FP_NEON_NEONHALF(fabs_0, fabs(v0.V4H(), v1.V4H())) 3500 TEST_FP_NEON_NEONHALF(fabs_1, fabs(v0.V8H(), v1.V8H())) 3501 TEST_FP_NEON_NEONHALF(facge_0, facge(v0.V4H(), v1.V4H(), v2.V4H())) 3502 TEST_FP_NEON_NEONHALF(facge_1, facge(v0.V8H(), v1.V8H(), v2.V8H())) 3503 TEST_FP_NEON_NEONHALF(facge_2, facge(h0, h1, h2)) 3504 TEST_FP_NEON_NEONHALF(facgt_0, facgt(v0.V4H(), v1.V4H(), v2.V4H())) 3505 TEST_FP_NEON_NEONHALF(facgt_1, facgt(v0.V8H(), v1.V8H(), v2.V8H())) 3506 TEST_FP_NEON_NEONHALF(facgt_2, facgt(h0, h1, h2)) 3507 TEST_FP_NEON_NEONHALF(faddp_0, faddp(v0.V4H(), v1.V4H(), v2.V4H())) 3508 TEST_FP_NEON_NEONHALF(faddp_1, faddp(v0.V8H(), v1.V8H(), v2.V8H())) 3509 TEST_FP_NEON_NEONHALF(fadd_0, fadd(v0.V4H(), v1.V4H(), v2.V4H())) 3510 TEST_FP_NEON_NEONHALF(fadd_1, fadd(v0.V8H(), v1.V8H(), v2.V8H())) 3511 TEST_FP_NEON_NEONHALF(fcmeq_0, fcmeq(v0.V4H(), v1.V4H(), v2.V4H())) 3512 TEST_FP_NEON_NEONHALF(fcmeq_1, fcmeq(v0.V8H(), v1.V8H(), v2.V8H())) 3513 TEST_FP_NEON_NEONHALF(fcmeq_2, fcmeq(h0, h1, h2)) 3514 TEST_FP_NEON_NEONHALF(fcmeq_3, fcmeq(v0.V4H(), v1.V4H(), 0.0)) 3515 TEST_FP_NEON_NEONHALF(fcmeq_4, fcmeq(v0.V8H(), v1.V8H(), 0.0)) 3516 TEST_FP_NEON_NEONHALF(fcmeq_5, fcmeq(h0, h1, 0.0)) 3517 TEST_FP_NEON_NEONHALF(fcmge_0, fcmge(v0.V4H(), v1.V4H(), v2.V4H())) 3518 TEST_FP_NEON_NEONHALF(fcmge_1, fcmge(v0.V8H(), v1.V8H(), v2.V8H())) 3519 TEST_FP_NEON_NEONHALF(fcmge_2, fcmge(h0, h1, h2)) 3520 TEST_FP_NEON_NEONHALF(fcmge_3, fcmge(v0.V4H(), v1.V4H(), 0.0)) 3521 TEST_FP_NEON_NEONHALF(fcmge_4, fcmge(v0.V8H(), v1.V8H(), 0.0)) 3522 TEST_FP_NEON_NEONHALF(fcmge_5, fcmge(h0, h1, 0.0)) 3523 TEST_FP_NEON_NEONHALF(fcmgt_0, fcmgt(v0.V4H(), v1.V4H(), v2.V4H())) 3524 TEST_FP_NEON_NEONHALF(fcmgt_1, fcmgt(v0.V8H(), v1.V8H(), v2.V8H())) 3525 TEST_FP_NEON_NEONHALF(fcmgt_2, fcmgt(h0, h1, h2)) 3526 TEST_FP_NEON_NEONHALF(fcmgt_3, fcmgt(v0.V4H(), v1.V4H(), 0.0)) 3527 TEST_FP_NEON_NEONHALF(fcmgt_4, fcmgt(v0.V8H(), v1.V8H(), 0.0)) 3528 TEST_FP_NEON_NEONHALF(fcmgt_5, fcmgt(h0, h1, 0.0)) 3529 TEST_FP_NEON_NEONHALF(fcmle_0, fcmle(v0.V4H(), v1.V4H(), 0.0)) 3530 TEST_FP_NEON_NEONHALF(fcmle_1, fcmle(v0.V8H(), v1.V8H(), 0.0)) 3531 TEST_FP_NEON_NEONHALF(fcmle_2, fcmle(h0, h1, 0.0)) 3532 TEST_FP_NEON_NEONHALF(fcmlt_0, fcmlt(v0.V4H(), v1.V4H(), 0.0)) 3533 TEST_FP_NEON_NEONHALF(fcmlt_1, fcmlt(v0.V8H(), v1.V8H(), 0.0)) 3534 TEST_FP_NEON_NEONHALF(fcmlt_2, fcmlt(h0, h1, 0.0)) 3535 TEST_FP_NEON_NEONHALF(fcvtas_0, fcvtas(v0.V4H(), v1.V4H())) 3536 TEST_FP_NEON_NEONHALF(fcvtas_1, fcvtas(v0.V8H(), v1.V8H())) 3537 TEST_FP_NEON_NEONHALF(fcvtas_2, fcvtas(h0, h1)) 3538 TEST_FP_NEON_NEONHALF(fcvtau_0, fcvtau(v0.V4H(), v1.V4H())) 3539 TEST_FP_NEON_NEONHALF(fcvtau_1, fcvtau(v0.V8H(), v1.V8H())) 3540 TEST_FP_NEON_NEONHALF(fcvtau_2, fcvtau(h0, h1)) 3541 TEST_FP_NEON_NEONHALF(fcvtms_0, fcvtms(v0.V4H(), v1.V4H())) 3542 TEST_FP_NEON_NEONHALF(fcvtms_1, fcvtms(v0.V8H(), v1.V8H())) 3543 TEST_FP_NEON_NEONHALF(fcvtms_2, fcvtms(h0, h1)) 3544 TEST_FP_NEON_NEONHALF(fcvtmu_0, fcvtmu(v0.V4H(), v1.V4H())) 3545 TEST_FP_NEON_NEONHALF(fcvtmu_1, fcvtmu(v0.V8H(), v1.V8H())) 3546 TEST_FP_NEON_NEONHALF(fcvtmu_2, fcvtmu(h0, h1)) 3547 TEST_FP_NEON_NEONHALF(fcvtns_0, fcvtns(v0.V4H(), v1.V4H())) 3548 TEST_FP_NEON_NEONHALF(fcvtns_1, fcvtns(v0.V8H(), v1.V8H())) 3549 TEST_FP_NEON_NEONHALF(fcvtns_2, fcvtns(h0, h1)) 3550 TEST_FP_NEON_NEONHALF(fcvtnu_0, fcvtnu(v0.V4H(), v1.V4H())) 3551 TEST_FP_NEON_NEONHALF(fcvtnu_1, fcvtnu(v0.V8H(), v1.V8H())) 3552 TEST_FP_NEON_NEONHALF(fcvtnu_2, fcvtnu(h0, h1)) 3553 TEST_FP_NEON_NEONHALF(fcvtps_0, fcvtps(v0.V4H(), v1.V4H())) 3554 TEST_FP_NEON_NEONHALF(fcvtps_1, fcvtps(v0.V8H(), v1.V8H())) 3555 TEST_FP_NEON_NEONHALF(fcvtps_2, fcvtps(h0, h1)) 3556 TEST_FP_NEON_NEONHALF(fcvtpu_0, fcvtpu(v0.V4H(), v1.V4H())) 3557 TEST_FP_NEON_NEONHALF(fcvtpu_1, fcvtpu(v0.V8H(), v1.V8H())) 3558 TEST_FP_NEON_NEONHALF(fcvtpu_2, fcvtpu(h0, h1)) 3559 TEST_FP_NEON_NEONHALF(fcvtzs_0, fcvtzs(v0.V4H(), v1.V4H(), 5)) 3560 TEST_FP_NEON_NEONHALF(fcvtzs_1, fcvtzs(v0.V8H(), v1.V8H(), 5)) 3561 TEST_FP_NEON_NEONHALF(fcvtzs_2, fcvtzs(h0, h1, 5)) 3562 TEST_FP_NEON_NEONHALF(fcvtzs_3, fcvtzs(v0.V4H(), v1.V4H())) 3563 TEST_FP_NEON_NEONHALF(fcvtzs_4, fcvtzs(v0.V8H(), v1.V8H())) 3564 TEST_FP_NEON_NEONHALF(fcvtzs_5, fcvtzs(h0, h1)) 3565 TEST_FP_NEON_NEONHALF(fcvtzu_0, fcvtzu(v0.V4H(), v1.V4H(), 5)) 3566 TEST_FP_NEON_NEONHALF(fcvtzu_1, fcvtzu(v0.V8H(), v1.V8H(), 5)) 3567 TEST_FP_NEON_NEONHALF(fcvtzu_2, fcvtzu(h0, h1, 5)) 3568 TEST_FP_NEON_NEONHALF(fcvtzu_3, fcvtzu(v0.V4H(), v1.V4H())) 3569 TEST_FP_NEON_NEONHALF(fcvtzu_4, fcvtzu(v0.V8H(), v1.V8H())) 3570 TEST_FP_NEON_NEONHALF(fcvtzu_5, fcvtzu(h0, h1)) 3571 TEST_FP_NEON_NEONHALF(fdiv_0, fdiv(v0.V4H(), v1.V4H(), v2.V4H())) 3572 TEST_FP_NEON_NEONHALF(fdiv_1, fdiv(v0.V8H(), v1.V8H(), v2.V8H())) 3573 TEST_FP_NEON_NEONHALF(fmaxnmp_0, fmaxnmp(v0.V4H(), v1.V4H(), v2.V4H())) 3574 TEST_FP_NEON_NEONHALF(fmaxnmp_1, fmaxnmp(v0.V8H(), v1.V8H(), v2.V8H())) 3575 TEST_FP_NEON_NEONHALF(fmaxnmv_0, fmaxnmv(h0, v1.V4H())) 3576 TEST_FP_NEON_NEONHALF(fmaxnmv_1, fmaxnmv(h0, v1.V8H())) 3577 TEST_FP_NEON_NEONHALF(fmaxnm_0, fmaxnm(v0.V4H(), v1.V4H(), v2.V4H())) 3578 TEST_FP_NEON_NEONHALF(fmaxnm_1, fmaxnm(v0.V8H(), v1.V8H(), v2.V8H())) 3579 TEST_FP_NEON_NEONHALF(fmaxp_0, fmaxp(v0.V4H(), v1.V4H(), v2.V4H())) 3580 TEST_FP_NEON_NEONHALF(fmaxp_1, fmaxp(v0.V8H(), v1.V8H(), v2.V8H())) 3581 TEST_FP_NEON_NEONHALF(fmax_0, fmax(v0.V4H(), v1.V4H(), v2.V4H())) 3582 TEST_FP_NEON_NEONHALF(fmax_1, fmax(v0.V8H(), v1.V8H(), v2.V8H())) 3583 TEST_FP_NEON_NEONHALF(fminnmp_0, fminnmp(v0.V4H(), v1.V4H(), v2.V4H())) 3584 TEST_FP_NEON_NEONHALF(fminnmp_1, fminnmp(v0.V8H(), v1.V8H(), v2.V8H())) 3585 TEST_FP_NEON_NEONHALF(fminnmv_0, fminnmv(h0, v1.V4H())) 3586 TEST_FP_NEON_NEONHALF(fminnmv_1, fminnmv(h0, v1.V8H())) 3587 TEST_FP_NEON_NEONHALF(fminnm_0, fminnm(v0.V4H(), v1.V4H(), v2.V4H())) 3588 TEST_FP_NEON_NEONHALF(fminnm_1, fminnm(v0.V8H(), v1.V8H(), v2.V8H())) 3589 TEST_FP_NEON_NEONHALF(fminp_0, fminp(v0.V4H(), v1.V4H(), v2.V4H())) 3590 TEST_FP_NEON_NEONHALF(fminp_1, fminp(v0.V8H(), v1.V8H(), v2.V8H())) 3591 TEST_FP_NEON_NEONHALF(fmin_0, fmin(v0.V4H(), v1.V4H(), v2.V4H())) 3592 TEST_FP_NEON_NEONHALF(fmin_1, fmin(v0.V8H(), v1.V8H(), v2.V8H())) 3593 TEST_FP_NEON_NEONHALF(fmla_0, fmla(v0.V4H(), v1.V4H(), v2.H(), 4)) 3594 TEST_FP_NEON_NEONHALF(fmla_1, fmla(v0.V8H(), v1.V8H(), v2.H(), 2)) 3595 TEST_FP_NEON_NEONHALF(fmla_2, fmla(h0, h1, v2.H(), 5)) 3596 TEST_FP_NEON_NEONHALF(fmla_3, fmla(v0.V4H(), v1.V4H(), v2.V4H())) 3597 TEST_FP_NEON_NEONHALF(fmla_4, fmla(v0.V8H(), v1.V8H(), v2.V8H())) 3598 TEST_FP_NEON_NEONHALF(fmls_0, fmls(v0.V4H(), v1.V4H(), v2.H(), 0)) 3599 TEST_FP_NEON_NEONHALF(fmls_1, fmls(v0.V8H(), v1.V8H(), v2.H(), 0)) 3600 TEST_FP_NEON_NEONHALF(fmls_2, fmls(h0, h1, v2.H(), 0)) 3601 TEST_FP_NEON_NEONHALF(fmls_3, fmls(v0.V4H(), v1.V4H(), v2.V4H())) 3602 TEST_FP_NEON_NEONHALF(fmls_4, fmls(v0.V8H(), v1.V8H(), v2.V8H())) 3603 TEST_FP_NEON_NEONHALF(fmov_0, fmov(v0.V4H(), Float16(18.0))) 3604 TEST_FP_NEON_NEONHALF(fmov_1, fmov(v0.V8H(), Float16(-0.2421875))) 3605 TEST_FP_NEON_NEONHALF(fmulx_0, fmulx(v0.V4H(), v1.V4H(), v2.H(), 6)) 3606 TEST_FP_NEON_NEONHALF(fmulx_1, fmulx(v0.V8H(), v1.V8H(), v2.H(), 2)) 3607 TEST_FP_NEON_NEONHALF(fmulx_2, fmulx(h0, h1, v2.H(), 4)) 3608 TEST_FP_NEON_NEONHALF(fmulx_3, fmulx(v0.V4H(), v1.V4H(), v2.V4H())) 3609 TEST_FP_NEON_NEONHALF(fmulx_4, fmulx(v0.V8H(), v1.V8H(), v2.V8H())) 3610 TEST_FP_NEON_NEONHALF(fmulx_5, fmulx(h0, h1, h2)) 3611 TEST_FP_NEON_NEONHALF(fmul_0, fmul(v0.V4H(), v1.V4H(), v2.H(), 3)) 3612 TEST_FP_NEON_NEONHALF(fmul_1, fmul(v0.V8H(), v1.V8H(), v2.H(), 1)) 3613 TEST_FP_NEON_NEONHALF(fmul_2, fmul(h0, h1, v2.H(), 1)) 3614 TEST_FP_NEON_NEONHALF(fmul_3, fmul(v0.V4H(), v1.V4H(), v2.V4H())) 3615 TEST_FP_NEON_NEONHALF(fmul_4, fmul(v0.V8H(), v1.V8H(), v2.V8H())) 3616 TEST_FP_NEON_NEONHALF(fneg_0, fneg(v0.V4H(), v1.V4H())) 3617 TEST_FP_NEON_NEONHALF(fneg_1, fneg(v0.V8H(), v1.V8H())) 3618 TEST_FP_NEON_NEONHALF(frecpe_0, frecpe(v0.V4H(), v1.V4H())) 3619 TEST_FP_NEON_NEONHALF(frecpe_1, frecpe(v0.V8H(), v1.V8H())) 3620 TEST_FP_NEON_NEONHALF(frecpe_2, frecpe(h0, h1)) 3621 TEST_FP_NEON_NEONHALF(frecps_0, frecps(v0.V4H(), v1.V4H(), v2.V4H())) 3622 TEST_FP_NEON_NEONHALF(frecps_1, frecps(v0.V8H(), v1.V8H(), v2.V8H())) 3623 TEST_FP_NEON_NEONHALF(frecps_2, frecps(h0, h1, h2)) 3624 TEST_FP_NEON_NEONHALF(frecpx_0, frecpx(h0, h1)) 3625 TEST_FP_NEON_NEONHALF(frinta_0, frinta(v0.V4H(), v1.V4H())) 3626 TEST_FP_NEON_NEONHALF(frinta_1, frinta(v0.V8H(), v1.V8H())) 3627 TEST_FP_NEON_NEONHALF(frinti_0, frinti(v0.V4H(), v1.V4H())) 3628 TEST_FP_NEON_NEONHALF(frinti_1, frinti(v0.V8H(), v1.V8H())) 3629 TEST_FP_NEON_NEONHALF(frintm_0, frintm(v0.V4H(), v1.V4H())) 3630 TEST_FP_NEON_NEONHALF(frintm_1, frintm(v0.V8H(), v1.V8H())) 3631 TEST_FP_NEON_NEONHALF(frintn_0, frintn(v0.V4H(), v1.V4H())) 3632 TEST_FP_NEON_NEONHALF(frintn_1, frintn(v0.V8H(), v1.V8H())) 3633 TEST_FP_NEON_NEONHALF(frintp_0, frintp(v0.V4H(), v1.V4H())) 3634 TEST_FP_NEON_NEONHALF(frintp_1, frintp(v0.V8H(), v1.V8H())) 3635 TEST_FP_NEON_NEONHALF(frintx_0, frintx(v0.V4H(), v1.V4H())) 3636 TEST_FP_NEON_NEONHALF(frintx_1, frintx(v0.V8H(), v1.V8H())) 3637 TEST_FP_NEON_NEONHALF(frintz_0, frintz(v0.V4H(), v1.V4H())) 3638 TEST_FP_NEON_NEONHALF(frintz_1, frintz(v0.V8H(), v1.V8H())) 3639 TEST_FP_NEON_NEONHALF(frsqrte_0, frsqrte(v0.V4H(), v1.V4H())) 3640 TEST_FP_NEON_NEONHALF(frsqrte_1, frsqrte(v0.V8H(), v1.V8H())) 3641 TEST_FP_NEON_NEONHALF(frsqrte_2, frsqrte(h0, h1)) 3642 TEST_FP_NEON_NEONHALF(frsqrts_0, frsqrts(v0.V4H(), v1.V4H(), v2.V4H())) 3643 TEST_FP_NEON_NEONHALF(frsqrts_1, frsqrts(v0.V8H(), v1.V8H(), v2.V8H())) 3644 TEST_FP_NEON_NEONHALF(frsqrts_2, frsqrts(h0, h1, h2)) 3645 TEST_FP_NEON_NEONHALF(fsqrt_0, fsqrt(v0.V4H(), v1.V4H())) 3646 TEST_FP_NEON_NEONHALF(fsqrt_1, fsqrt(v0.V8H(), v1.V8H())) 3647 TEST_FP_NEON_NEONHALF(fsub_0, fsub(v0.V4H(), v1.V4H(), v2.V4H())) 3648 TEST_FP_NEON_NEONHALF(fsub_1, fsub(v0.V8H(), v1.V8H(), v2.V8H())) 3649 TEST_FP_NEON_NEONHALF(scvtf_0, scvtf(v0.V4H(), v1.V4H(), 5)) 3650 TEST_FP_NEON_NEONHALF(scvtf_1, scvtf(v0.V8H(), v1.V8H(), 5)) 3651 TEST_FP_NEON_NEONHALF(scvtf_2, scvtf(h0, h1, 5)) 3652 TEST_FP_NEON_NEONHALF(scvtf_3, scvtf(v0.V4H(), v1.V4H())) 3653 TEST_FP_NEON_NEONHALF(scvtf_4, scvtf(v0.V8H(), v1.V8H())) 3654 TEST_FP_NEON_NEONHALF(scvtf_5, scvtf(h0, h1)) 3655 TEST_FP_NEON_NEONHALF(ucvtf_0, ucvtf(v0.V4H(), v1.V4H(), 5)) 3656 TEST_FP_NEON_NEONHALF(ucvtf_1, ucvtf(v0.V8H(), v1.V8H(), 5)) 3657 TEST_FP_NEON_NEONHALF(ucvtf_2, ucvtf(h0, h1, 5)) 3658 TEST_FP_NEON_NEONHALF(ucvtf_3, ucvtf(v0.V4H(), v1.V4H())) 3659 TEST_FP_NEON_NEONHALF(ucvtf_4, ucvtf(v0.V8H(), v1.V8H())) 3660 TEST_FP_NEON_NEONHALF(ucvtf_5, ucvtf(h0, h1)) 3661 3662 #define TEST_PAUTH_PAUTHGENERIC(NAME, ASM) \ 3663 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kPAuth, CPUFeatures::kPAuthGeneric), \ 3664 PAuth_PAuthGeneric_##NAME, \ 3665 ASM) 3666 TEST_PAUTH_PAUTHGENERIC(pacga_0, pacga(x0, x1, x2)) 3667 3668 #define TEST_FP_FCMA_NEON_NEONHALF(NAME, ASM) \ 3669 TEST_TEMPLATE(CPUFeatures(CPUFeatures::kFP, \ 3670 CPUFeatures::kFcma, \ 3671 CPUFeatures::kNEON, \ 3672 CPUFeatures::kNEONHalf), \ 3673 FP_Fcma_NEON_NEONHalf_##NAME, \ 3674 ASM) 3675 TEST_FP_FCMA_NEON_NEONHALF(fcadd_0, fcadd(v0.V4H(), v1.V4H(), v2.V4H(), 90)) 3676 TEST_FP_FCMA_NEON_NEONHALF(fcadd_1, fcadd(v0.V8H(), v1.V8H(), v2.V8H(), 90)) 3677 TEST_FP_FCMA_NEON_NEONHALF(fcmla_0, fcmla(v0.V4H(), v1.V4H(), v2.H(), 0, 0)) 3678 TEST_FP_FCMA_NEON_NEONHALF(fcmla_1, fcmla(v0.V8H(), v1.V8H(), v2.H(), 2, 180)) 3679 TEST_FP_FCMA_NEON_NEONHALF(fcmla_2, fcmla(v0.V4H(), v1.V4H(), v2.V4H(), 180)) 3680 TEST_FP_FCMA_NEON_NEONHALF(fcmla_3, fcmla(v0.V8H(), v1.V8H(), v2.V8H(), 0)) 3681 3682 } // namespace aarch64 3683 } // namespace vixl 3684