Lines Matching refs:x86
41 class AssemblerX86Test : public AssemblerTest<x86::X86Assembler,
42 x86::Address,
43 x86::Register,
44 x86::XmmRegister,
45 x86::Immediate> {
47 using Base = AssemblerTest<x86::X86Assembler,
48 x86::Address,
49 x86::Register,
50 x86::XmmRegister,
51 x86::Immediate>;
61 addresses_singleton_.push_back(x86::Address(x86::EAX, x86::EBX, x86::TIMES_1, 2)); in SetUpHelpers()
66 addresses_.push_back(x86::Address(x86::EDI, x86::EAX, x86::TIMES_1, 15)); in SetUpHelpers()
67 addresses_.push_back(x86::Address(x86::EDI, x86::EBX, x86::TIMES_2, 16)); in SetUpHelpers()
68 addresses_.push_back(x86::Address(x86::EDI, x86::ECX, x86::TIMES_4, 17)); in SetUpHelpers()
69 addresses_.push_back(x86::Address(x86::EDI, x86::EDX, x86::TIMES_8, 18)); in SetUpHelpers()
70 addresses_.push_back(x86::Address(x86::EAX, -1)); in SetUpHelpers()
71 addresses_.push_back(x86::Address(x86::EBX, 0)); in SetUpHelpers()
72 addresses_.push_back(x86::Address(x86::ESI, 1)); in SetUpHelpers()
73 addresses_.push_back(x86::Address(x86::EDI, 987654321)); in SetUpHelpers()
75 addresses_.push_back(x86::Address(x86::ESP, x86::EAX, x86::TIMES_1, 15)); in SetUpHelpers()
76 addresses_.push_back(x86::Address(x86::ESP, x86::EBX, x86::TIMES_2, 16)); in SetUpHelpers()
77 addresses_.push_back(x86::Address(x86::ESP, x86::ECX, x86::TIMES_4, 17)); in SetUpHelpers()
78 addresses_.push_back(x86::Address(x86::ESP, x86::EDX, x86::TIMES_8, 18)); in SetUpHelpers()
79 addresses_.push_back(x86::Address(x86::ESP, -1)); in SetUpHelpers()
80 addresses_.push_back(x86::Address(x86::ESP, 0)); in SetUpHelpers()
81 addresses_.push_back(x86::Address(x86::ESP, 1)); in SetUpHelpers()
82 addresses_.push_back(x86::Address(x86::ESP, 987654321)); in SetUpHelpers()
87 new x86::Register(x86::EAX), in SetUpHelpers()
88 new x86::Register(x86::EBX), in SetUpHelpers()
89 new x86::Register(x86::ECX), in SetUpHelpers()
90 new x86::Register(x86::EDX), in SetUpHelpers()
91 new x86::Register(x86::EBP), in SetUpHelpers()
92 new x86::Register(x86::ESP), in SetUpHelpers()
93 new x86::Register(x86::ESI), in SetUpHelpers()
94 new x86::Register(x86::EDI) in SetUpHelpers()
101 new x86::XmmRegister(x86::XMM0), in SetUpHelpers()
102 new x86::XmmRegister(x86::XMM1), in SetUpHelpers()
103 new x86::XmmRegister(x86::XMM2), in SetUpHelpers()
104 new x86::XmmRegister(x86::XMM3), in SetUpHelpers()
105 new x86::XmmRegister(x86::XMM4), in SetUpHelpers()
106 new x86::XmmRegister(x86::XMM5), in SetUpHelpers()
107 new x86::XmmRegister(x86::XMM6), in SetUpHelpers()
108 new x86::XmmRegister(x86::XMM7) in SetUpHelpers()
119 std::vector<x86::Address> GetAddresses() override { in GetAddresses()
123 std::vector<x86::Register*> GetRegisters() override { in GetRegisters()
127 std::vector<x86::XmmRegister*> GetFPRegisters() override { in GetFPRegisters()
131 x86::Immediate CreateImmediate(int64_t imm_value) override { in CreateImmediate()
132 return x86::Immediate(imm_value); in CreateImmediate()
135 std::vector<x86::Address> addresses_singleton_;
138 std::vector<x86::Address> addresses_;
139 std::vector<x86::Register*> registers_;
140 std::vector<x86::XmmRegister*> fp_registers_;
148 x86::X86Assembler* CreateAssembler(ArenaAllocator* allocator) override { in CreateAssembler()
149 return new (allocator) x86::X86Assembler(allocator, instruction_set_features_.get()); in CreateAssembler()
230 std::vector<x86::Address> all_addresses; in TEST_F()
231 for (x86::Register* base : GetRegisters()) { in TEST_F()
233 all_addresses.push_back(x86::Address(*base, -1)); in TEST_F()
234 all_addresses.push_back(x86::Address(*base, 0)); in TEST_F()
235 all_addresses.push_back(x86::Address(*base, 1)); in TEST_F()
236 all_addresses.push_back(x86::Address(*base, 123456789)); in TEST_F()
237 for (x86::Register* index : GetRegisters()) { in TEST_F()
238 if (*index == x86::ESP) { in TEST_F()
243 all_addresses.push_back(x86::Address(*index, x86::TIMES_1, -1)); in TEST_F()
244 all_addresses.push_back(x86::Address(*index, x86::TIMES_2, 0)); in TEST_F()
245 all_addresses.push_back(x86::Address(*index, x86::TIMES_4, 1)); in TEST_F()
246 all_addresses.push_back(x86::Address(*index, x86::TIMES_8, 123456789)); in TEST_F()
249 all_addresses.push_back(x86::Address(*base, *index, x86::TIMES_1, -1)); in TEST_F()
250 all_addresses.push_back(x86::Address(*base, *index, x86::TIMES_2, 0)); in TEST_F()
251 all_addresses.push_back(x86::Address(*base, *index, x86::TIMES_4, 1)); in TEST_F()
252 all_addresses.push_back(x86::Address(*base, *index, x86::TIMES_8, 123456789)); in TEST_F()
255 DriverStr(RepeatA(&x86::X86Assembler::popl, all_addresses, "popl {mem}"), "popq"); in TEST_F()
259 DriverStr(RepeatRR(&x86::X86Assembler::movl, "movl %{reg2}, %{reg1}"), "movl"); in TEST_F()
263 DriverStr(RepeatRA(&x86::X86Assembler::movl, "movl {mem}, %{reg}"), "movl-load"); in TEST_F()
267 DriverStr(RepeatAI(&x86::X86Assembler::addw, /*imm_bytes*/ 2U, "addw ${imm}, {mem}"), "addw"); in TEST_F()
271 DriverStr(RepeatAR(&x86::X86Assembler::movl, "movl %{reg}, {mem}"), "movl-store"); in TEST_F()
275 DriverStr(RepeatAR(&x86::X86Assembler::movntl, "movntil %{reg}, {mem}"), "movntl"); in TEST_F()
279 GetAssembler()->LoadLongConstant(x86::XMM0, 51); in TEST_F()
289 DriverStr(RepeatAR(&x86::X86Assembler::LockCmpxchgl, in TEST_F()
294 DriverStr(RepeatA(&x86::X86Assembler::LockCmpxchg8b, in TEST_F()
299 DriverStr(RepeatA(&x86::X86Assembler::filds, "fildl {mem}"), "fildd"); in TEST_F()
303 DriverStr(RepeatA(&x86::X86Assembler::fildl, "fildll {mem}"), "fildl"); in TEST_F()
307 DriverStr(RepeatA(&x86::X86Assembler::fistps, "fistpl {mem}"), "fistps"); in TEST_F()
311 DriverStr(RepeatA(&x86::X86Assembler::fistpl, "fistpll {mem}"), "fistpl"); in TEST_F()
357 DriverStr(RepeatRR(&x86::X86Assembler::blsmsk, "blsmsk %{reg2}, %{reg1}"), "blsmsk"); in TEST_F()
361 DriverStr(RepeatRR(&x86::X86Assembler::blsi, "blsi %{reg2}, %{reg1}"), "blsi"); in TEST_F()
365 DriverStr(RepeatRR(&x86::X86Assembler::blsr, "blsr %{reg2}, %{reg1}"), "blsr"); in TEST_F()
369 DriverStr(RepeatRR(&x86::X86Assembler::bsfl, "bsfl %{reg2}, %{reg1}"), "bsfl"); in TEST_F()
373 DriverStr(RepeatRA(&x86::X86Assembler::bsfl, "bsfl {mem}, %{reg}"), "bsfl_address"); in TEST_F()
377 DriverStr(RepeatRR(&x86::X86Assembler::bsrl, "bsrl %{reg2}, %{reg1}"), "bsrl"); in TEST_F()
381 DriverStr(RepeatRA(&x86::X86Assembler::bsrl, "bsrl {mem}, %{reg}"), "bsrl_address"); in TEST_F()
385 DriverStr(RepeatRR(&x86::X86Assembler::popcntl, "popcntl %{reg2}, %{reg1}"), "popcntl"); in TEST_F()
389 DriverStr(RepeatRA(&x86::X86Assembler::popcntl, "popcntl {mem}, %{reg}"), "popcntl_address"); in TEST_F()
393 std::string rorl_fn(AssemblerX86Test::Base* assembler_test, x86::X86Assembler* assembler) { in rorl_fn()
395 std::vector<x86::Register*> registers = assembler_test->GetRegisters(); in rorl_fn()
396 x86::Register shifter(x86::ECX); in rorl_fn()
409 DriverStr(RepeatRI(&x86::X86Assembler::rorl, /*imm_bytes*/ 1U, "rorl ${imm}, %{reg}"), "rorli"); in TEST_F()
413 std::string roll_fn(AssemblerX86Test::Base* assembler_test, x86::X86Assembler* assembler) { in roll_fn()
415 std::vector<x86::Register*> registers = assembler_test->GetRegisters(); in roll_fn()
416 x86::Register shifter(x86::ECX); in roll_fn()
429 DriverStr(RepeatRI(&x86::X86Assembler::roll, /*imm_bytes*/ 1U, "roll ${imm}, %{reg}"), "rolli"); in TEST_F()
433 DriverStr(RepeatFF(&x86::X86Assembler::cvtdq2ps, "cvtdq2ps %{reg2}, %{reg1}"), "cvtdq2ps"); in TEST_F()
437 DriverStr(RepeatFF(&x86::X86Assembler::cvtdq2pd, "cvtdq2pd %{reg2}, %{reg1}"), "cvtdq2pd"); in TEST_F()
441 DriverStr(RepeatFA(&x86::X86Assembler::comiss, "comiss {mem}, %{reg}"), "comiss"); in TEST_F()
445 DriverStr(RepeatFA(&x86::X86Assembler::ucomiss, "ucomiss {mem}, %{reg}"), "ucomiss"); in TEST_F()
449 DriverStr(RepeatFA(&x86::X86Assembler::comisd, "comisd {mem}, %{reg}"), "comisd"); in TEST_F()
453 DriverStr(RepeatFA(&x86::X86Assembler::ucomisd, "ucomisd {mem}, %{reg}"), "ucomisd"); in TEST_F()
457 DriverStr(RepeatFFI(&x86::X86Assembler::roundss, /*imm_bytes*/ 1U, in TEST_F()
462 DriverStr(RepeatFFI(&x86::X86Assembler::roundsd, /*imm_bytes*/ 1U, in TEST_F()
467 GetAssembler()->cmovl(x86::kEqual, x86::Register(x86::EAX), x86::Address( in TEST_F()
468 x86::Register(x86::EDI), x86::Register(x86::EBX), x86::TIMES_4, 12)); in TEST_F()
469 GetAssembler()->cmovl(x86::kNotEqual, x86::Register(x86::EDI), x86::Address( in TEST_F()
470 x86::Register(x86::ESI), x86::Register(x86::EBX), x86::TIMES_4, 12)); in TEST_F()
471 GetAssembler()->cmovl(x86::kEqual, x86::Register(x86::EDI), x86::Address( in TEST_F()
472 x86::Register(x86::EDI), x86::Register(x86::EAX), x86::TIMES_4, 12)); in TEST_F()
481 DriverStr(RepeatAI(&x86::X86Assembler::testb, /*imm_bytes*/ 1U, "testb ${imm}, {mem}"), "testb"); in TEST_F()
485 DriverStr(RepeatAI(&x86::X86Assembler::testl, /*imm_bytes*/ 4U, "testl ${imm}, {mem}"), "testl"); in TEST_F()
489 DriverStr(RepeatFF(&x86::X86Assembler::movaps, "movaps %{reg2}, %{reg1}"), "movaps"); in TEST_F()
493 DriverStr(RepeatFF(&x86::X86Assembler::vmovaps, "vmovaps %{reg2}, %{reg1}"), "vmovaps"); in TEST_F()
497 DriverStr(RepeatFF(&x86::X86Assembler::movaps, "vmovaps %{reg2}, %{reg1}"), "avx_movaps"); in TEST_F()
501 DriverStr(RepeatFA(&x86::X86Assembler::movaps, "movaps {mem}, %{reg}"), "movaps_load"); in TEST_F()
505 DriverStr(RepeatFA(&x86::X86Assembler::vmovaps, "vmovaps {mem}, %{reg}"), "vmovaps_load"); in TEST_F()
509 DriverStr(RepeatFA(&x86::X86Assembler::movaps, "vmovaps {mem}, %{reg}"), "avx_movaps_load"); in TEST_F()
513 DriverStr(RepeatAF(&x86::X86Assembler::movaps, "movaps %{reg}, {mem}"), "movaps_store"); in TEST_F()
517 DriverStr(RepeatAF(&x86::X86Assembler::vmovaps, "vmovaps %{reg}, {mem}"), "vmovaps_store"); in TEST_F()
521 DriverStr(RepeatAF(&x86::X86Assembler::movaps, "vmovaps %{reg}, {mem}"), "avx_movaps_store"); in TEST_F()
525 DriverStr(RepeatFA(&x86::X86Assembler::movups, "movups {mem}, %{reg}"), "movups_load"); in TEST_F()
529 DriverStr(RepeatFA(&x86::X86Assembler::vmovups, "vmovups {mem}, %{reg}"), "vmovups_load"); in TEST_F()
533 DriverStr(RepeatFA(&x86::X86Assembler::movups, "vmovups {mem}, %{reg}"), "avx_movups_load"); in TEST_F()
537 DriverStr(RepeatAF(&x86::X86Assembler::movups, "movups %{reg}, {mem}"), "movups_store"); in TEST_F()
541 DriverStr(RepeatAF(&x86::X86Assembler::vmovups, "vmovups %{reg}, {mem}"), "vmovups_store"); in TEST_F()
545 DriverStr(RepeatAF(&x86::X86Assembler::movups, "vmovups %{reg}, {mem}"), "avx_movups_store"); in TEST_F()
549 DriverStr(RepeatFF(&x86::X86Assembler::movapd, "movapd %{reg2}, %{reg1}"), "movapd"); in TEST_F()
553 DriverStr(RepeatFF(&x86::X86Assembler::vmovapd, "vmovapd %{reg2}, %{reg1}"), "vmovapd"); in TEST_F()
557 DriverStr(RepeatFF(&x86::X86Assembler::movapd, "vmovapd %{reg2}, %{reg1}"), "avx_movapd"); in TEST_F()
561 DriverStr(RepeatFA(&x86::X86Assembler::movapd, "movapd {mem}, %{reg}"), "movapd_load"); in TEST_F()
565 DriverStr(RepeatFA(&x86::X86Assembler::vmovapd, "vmovapd {mem}, %{reg}"), "vmovapd_load"); in TEST_F()
569 DriverStr(RepeatFA(&x86::X86Assembler::movapd, "vmovapd {mem}, %{reg}"), "avx_movapd_load"); in TEST_F()
573 DriverStr(RepeatAF(&x86::X86Assembler::movapd, "movapd %{reg}, {mem}"), "movapd_store"); in TEST_F()
577 DriverStr(RepeatAF(&x86::X86Assembler::vmovapd, "vmovapd %{reg}, {mem}"), "vmovapd_store"); in TEST_F()
581 DriverStr(RepeatAF(&x86::X86Assembler::movapd, "vmovapd %{reg}, {mem}"), "avx_movapd_store"); in TEST_F()
585 DriverStr(RepeatFA(&x86::X86Assembler::movupd, "movupd {mem}, %{reg}"), "movupd_load"); in TEST_F()
589 DriverStr(RepeatFA(&x86::X86Assembler::vmovupd, "vmovupd {mem}, %{reg}"), "vmovupd_load"); in TEST_F()
593 DriverStr(RepeatFA(&x86::X86Assembler::movupd, "vmovupd {mem}, %{reg}"), "avx_movupd_load"); in TEST_F()
597 DriverStr(RepeatAF(&x86::X86Assembler::movupd, "movupd %{reg}, {mem}"), "movupd_store"); in TEST_F()
601 DriverStr(RepeatAF(&x86::X86Assembler::vmovupd, "vmovupd %{reg}, {mem}"), "vmovupd_store"); in TEST_F()
605 DriverStr(RepeatAF(&x86::X86Assembler::movupd, "vmovupd %{reg}, {mem}"), "avx_movupd_store"); in TEST_F()
609 DriverStr(RepeatFF(&x86::X86Assembler::movdqa, "movdqa %{reg2}, %{reg1}"), "movdqa"); in TEST_F()
613 DriverStr(RepeatFF(&x86::X86Assembler::vmovdqa, "vmovdqa %{reg2}, %{reg1}"), "vmovdqa"); in TEST_F()
617 DriverStr(RepeatFF(&x86::X86Assembler::movdqa, "vmovdqa %{reg2}, %{reg1}"), "avx_movdqa"); in TEST_F()
621 DriverStr(RepeatFA(&x86::X86Assembler::movdqa, "movdqa {mem}, %{reg}"), "movdqa_load"); in TEST_F()
625 DriverStr(RepeatFA(&x86::X86Assembler::vmovdqa, "vmovdqa {mem}, %{reg}"), "vmovdqa_load"); in TEST_F()
629 DriverStr(RepeatFA(&x86::X86Assembler::movdqa, "vmovdqa {mem}, %{reg}"), "avx_movdqa_load"); in TEST_F()
633 DriverStr(RepeatAF(&x86::X86Assembler::movdqa, "movdqa %{reg}, {mem}"), "movdqa_store"); in TEST_F()
637 DriverStr(RepeatAF(&x86::X86Assembler::vmovdqa, "vmovdqa %{reg}, {mem}"), "vmovdqa_store"); in TEST_F()
641 DriverStr(RepeatAF(&x86::X86Assembler::movdqa, "vmovdqa %{reg}, {mem}"), "avx_movdqa_store"); in TEST_F()
645 DriverStr(RepeatFA(&x86::X86Assembler::movdqu, "movdqu {mem}, %{reg}"), "movdqu_load"); in TEST_F()
649 DriverStr(RepeatFA(&x86::X86Assembler::vmovdqu, "vmovdqu {mem}, %{reg}"), "vmovdqu_load"); in TEST_F()
653 DriverStr(RepeatFA(&x86::X86Assembler::movdqu, "vmovdqu {mem}, %{reg}"), "avx_movdqu_load"); in TEST_F()
657 DriverStr(RepeatAF(&x86::X86Assembler::movdqu, "movdqu %{reg}, {mem}"), "movdqu_store"); in TEST_F()
661 DriverStr(RepeatAF(&x86::X86Assembler::vmovdqu, "vmovdqu %{reg}, {mem}"), "vmovdqu_store"); in TEST_F()
665 DriverStr(RepeatAF(&x86::X86Assembler::movdqu, "vmovdqu %{reg}, {mem}"), "avx_movdqu_store"); in TEST_F()
669 DriverStr(RepeatFF(&x86::X86Assembler::addps, "addps %{reg2}, %{reg1}"), "addps"); in TEST_F()
673 DriverStr(RepeatFFF(&x86::X86Assembler::vaddps, "vaddps %{reg3}, %{reg2}, %{reg1}"), "vaddps"); in TEST_F()
677 DriverStr(RepeatFF(&x86::X86Assembler::addpd, "addpd %{reg2}, %{reg1}"), "addpd"); in TEST_F()
681 DriverStr(RepeatFFF(&x86::X86Assembler::vaddpd, "vaddpd %{reg3}, %{reg2}, %{reg1}"), "vaddpd"); in TEST_F()
685 DriverStr(RepeatFF(&x86::X86Assembler::subps, "subps %{reg2}, %{reg1}"), "subps"); in TEST_F()
689 DriverStr(RepeatFFF(&x86::X86Assembler::vsubps, "vsubps %{reg3},%{reg2}, %{reg1}"), "vsubps"); in TEST_F()
693 DriverStr(RepeatFF(&x86::X86Assembler::subpd, "subpd %{reg2}, %{reg1}"), "subpd"); in TEST_F()
697 DriverStr(RepeatFFF(&x86::X86Assembler::vsubpd, "vsubpd %{reg3}, %{reg2}, %{reg1}"), "vsubpd"); in TEST_F()
701 DriverStr(RepeatFF(&x86::X86Assembler::mulps, "mulps %{reg2}, %{reg1}"), "mulps"); in TEST_F()
705 DriverStr(RepeatFFF(&x86::X86Assembler::vmulps, "vmulps %{reg3}, %{reg2}, %{reg1}"), "vmulps"); in TEST_F()
709 DriverStr(RepeatFF(&x86::X86Assembler::mulpd, "mulpd %{reg2}, %{reg1}"), "mulpd"); in TEST_F()
713 DriverStr(RepeatFFF(&x86::X86Assembler::vmulpd, "vmulpd %{reg3}, %{reg2}, %{reg1}"), "vmulpd"); in TEST_F()
717 DriverStr(RepeatFF(&x86::X86Assembler::divps, "divps %{reg2}, %{reg1}"), "divps"); in TEST_F()
721 DriverStr(RepeatFFF(&x86::X86Assembler::vdivps, "vdivps %{reg3}, %{reg2}, %{reg1}"), "vdivps"); in TEST_F()
725 DriverStr(RepeatFF(&x86::X86Assembler::divpd, "divpd %{reg2}, %{reg1}"), "divpd"); in TEST_F()
729 DriverStr(RepeatFFF(&x86::X86Assembler::vdivpd, "vdivpd %{reg3}, %{reg2}, %{reg1}"), "vdivpd"); in TEST_F()
733 DriverStr(RepeatFF(&x86::X86Assembler::paddb, "paddb %{reg2}, %{reg1}"), "paddb"); in TEST_F()
737 DriverStr(RepeatFFF(&x86::X86Assembler::vpaddb, "vpaddb %{reg3}, %{reg2}, %{reg1}"), "vpaddb"); in TEST_F()
741 DriverStr(RepeatFF(&x86::X86Assembler::psubb, "psubb %{reg2}, %{reg1}"), "psubb"); in TEST_F()
745 DriverStr(RepeatFFF(&x86::X86Assembler::vpsubb, "vpsubb %{reg3},%{reg2}, %{reg1}"), "vpsubb"); in TEST_F()
749 DriverStr(RepeatFF(&x86::X86Assembler::paddw, "paddw %{reg2}, %{reg1}"), "paddw"); in TEST_F()
753 DriverStr(RepeatFFF(&x86::X86Assembler::vpaddw, "vpaddw %{reg3}, %{reg2}, %{reg1}"), "vpaddw"); in TEST_F()
757 DriverStr(RepeatFF(&x86::X86Assembler::psubw, "psubw %{reg2}, %{reg1}"), "psubw"); in TEST_F()
761 DriverStr(RepeatFFF(&x86::X86Assembler::vpsubw, "vpsubw %{reg3}, %{reg2}, %{reg1}"), "vpsubw"); in TEST_F()
765 DriverStr(RepeatFF(&x86::X86Assembler::pmullw, "pmullw %{reg2}, %{reg1}"), "pmullw"); in TEST_F()
769 DriverStr(RepeatFFF(&x86::X86Assembler::vpmullw, "vpmullw %{reg3}, %{reg2}, %{reg1}"), "vpmullw"); in TEST_F()
773 DriverStr(RepeatFF(&x86::X86Assembler::paddd, "paddd %{reg2}, %{reg1}"), "paddd"); in TEST_F()
777 DriverStr(RepeatFFF(&x86::X86Assembler::vpaddd, "vpaddd %{reg3}, %{reg2}, %{reg1}"), "vpaddd"); in TEST_F()
781 DriverStr(RepeatFF(&x86::X86Assembler::psubd, "psubd %{reg2}, %{reg1}"), "psubd"); in TEST_F()
785 DriverStr(RepeatFFF(&x86::X86Assembler::vpsubd, "vpsubd %{reg3}, %{reg2}, %{reg1}"), "vpsubd"); in TEST_F()
789 DriverStr(RepeatFF(&x86::X86Assembler::pmulld, "pmulld %{reg2}, %{reg1}"), "pmulld"); in TEST_F()
793 DriverStr(RepeatFFF(&x86::X86Assembler::vpmulld, "vpmulld %{reg3}, %{reg2}, %{reg1}"), "vpmulld"); in TEST_F()
797 DriverStr(RepeatFF(&x86::X86Assembler::paddq, "paddq %{reg2}, %{reg1}"), "paddq"); in TEST_F()
801 DriverStr(RepeatFFF(&x86::X86Assembler::vpaddq, "vpaddq %{reg3}, %{reg2}, %{reg1}"), "vpaddq"); in TEST_F()
805 DriverStr(RepeatFF(&x86::X86Assembler::psubq, "psubq %{reg2}, %{reg1}"), "psubq"); in TEST_F()
809 DriverStr(RepeatFFF(&x86::X86Assembler::vpsubq, "vpsubq %{reg3}, %{reg2}, %{reg1}"), "vpsubq"); in TEST_F()
813 DriverStr(RepeatFF(&x86::X86Assembler::paddusb, "paddusb %{reg2}, %{reg1}"), "paddusb"); in TEST_F()
817 DriverStr(RepeatFF(&x86::X86Assembler::paddsb, "paddsb %{reg2}, %{reg1}"), "paddsb"); in TEST_F()
821 DriverStr(RepeatFF(&x86::X86Assembler::paddusw, "paddusw %{reg2}, %{reg1}"), "paddusw"); in TEST_F()
825 DriverStr(RepeatFF(&x86::X86Assembler::psubsw, "psubsw %{reg2}, %{reg1}"), "psubsw"); in TEST_F()
829 DriverStr(RepeatFF(&x86::X86Assembler::psubusb, "psubusb %{reg2}, %{reg1}"), "psubusb"); in TEST_F()
833 DriverStr(RepeatFF(&x86::X86Assembler::psubsb, "psubsb %{reg2}, %{reg1}"), "psubsb"); in TEST_F()
837 DriverStr(RepeatFF(&x86::X86Assembler::psubusw, "psubusw %{reg2}, %{reg1}"), "psubusw"); in TEST_F()
841 DriverStr(RepeatFF(&x86::X86Assembler::psubsw, "psubsw %{reg2}, %{reg1}"), "psubsw"); in TEST_F()
845 DriverStr(RepeatFF(&x86::X86Assembler::xorpd, "xorpd %{reg2}, %{reg1}"), "xorpd"); in TEST_F()
849 DriverStr(RepeatFF(&x86::X86Assembler::xorps, "xorps %{reg2}, %{reg1}"), "xorps"); in TEST_F()
853 DriverStr(RepeatFF(&x86::X86Assembler::pxor, "pxor %{reg2}, %{reg1}"), "pxor"); in TEST_F()
857 DriverStr(RepeatFFF(&x86::X86Assembler::vpxor, "vpxor %{reg3}, %{reg2}, %{reg1}"), "vpxor"); in TEST_F()
861 DriverStr(RepeatFFF(&x86::X86Assembler::vxorps, "vxorps %{reg3}, %{reg2}, %{reg1}"), "vxorps"); in TEST_F()
865 DriverStr(RepeatFFF(&x86::X86Assembler::vxorpd, "vxorpd %{reg3}, %{reg2}, %{reg1}"), "vxorpd"); in TEST_F()
869 DriverStr(RepeatFF(&x86::X86Assembler::andpd, "andpd %{reg2}, %{reg1}"), "andpd"); in TEST_F()
873 DriverStr(RepeatFF(&x86::X86Assembler::andps, "andps %{reg2}, %{reg1}"), "andps"); in TEST_F()
877 DriverStr(RepeatFF(&x86::X86Assembler::pand, "pand %{reg2}, %{reg1}"), "pand"); in TEST_F()
881 DriverStr(RepeatFFF(&x86::X86Assembler::vpand, "vpand %{reg3}, %{reg2}, %{reg1}"), "vpand"); in TEST_F()
885 DriverStr(RepeatFFF(&x86::X86Assembler::vandps, "vandps %{reg3}, %{reg2}, %{reg1}"), "vandps"); in TEST_F()
889 DriverStr(RepeatFFF(&x86::X86Assembler::vandpd, "vandpd %{reg3}, %{reg2}, %{reg1}"), "vandpd"); in TEST_F()
893 DriverStr(RepeatRRR(&x86::X86Assembler::andn, "andn %{reg3}, %{reg2}, %{reg1}"), "andn"); in TEST_F()
897 DriverStr(RepeatFF(&x86::X86Assembler::andnpd, "andnpd %{reg2}, %{reg1}"), "andnpd"); in TEST_F()
901 DriverStr(RepeatFF(&x86::X86Assembler::andnps, "andnps %{reg2}, %{reg1}"), "andnps"); in TEST_F()
905 DriverStr(RepeatFF(&x86::X86Assembler::pandn, "pandn %{reg2}, %{reg1}"), "pandn"); in TEST_F()
909 DriverStr(RepeatFFF(&x86::X86Assembler::vpandn, "vpandn %{reg3}, %{reg2}, %{reg1}"), "vpandn"); in TEST_F()
913 DriverStr(RepeatFFF(&x86::X86Assembler::vandnps, "vandnps %{reg3}, %{reg2}, %{reg1}"), "vandnps"); in TEST_F()
917 DriverStr(RepeatFFF(&x86::X86Assembler::vandnpd, "vandnpd %{reg3}, %{reg2}, %{reg1}"), "vandnpd"); in TEST_F()
921 DriverStr(RepeatFF(&x86::X86Assembler::orpd, "orpd %{reg2}, %{reg1}"), "orpd"); in TEST_F()
925 DriverStr(RepeatFF(&x86::X86Assembler::orps, "orps %{reg2}, %{reg1}"), "orps"); in TEST_F()
929 DriverStr(RepeatFF(&x86::X86Assembler::por, "por %{reg2}, %{reg1}"), "por"); in TEST_F()
933 DriverStr(RepeatFFF(&x86::X86Assembler::vpor, "vpor %{reg3}, %{reg2}, %{reg1}"), "vpor"); in TEST_F()
937 DriverStr(RepeatFFF(&x86::X86Assembler::vorps, "vorps %{reg3}, %{reg2}, %{reg1}"), "vorps"); in TEST_F()
941 DriverStr(RepeatFFF(&x86::X86Assembler::vorpd, "vorpd %{reg3}, %{reg2}, %{reg1}"), "vorpd"); in TEST_F()
945 DriverStr(RepeatFF(&x86::X86Assembler::pavgb, "pavgb %{reg2}, %{reg1}"), "pavgb"); in TEST_F()
949 DriverStr(RepeatFF(&x86::X86Assembler::pavgw, "pavgw %{reg2}, %{reg1}"), "pavgw"); in TEST_F()
953 DriverStr(RepeatFF(&x86::X86Assembler::psadbw, "psadbw %{reg2}, %{reg1}"), "psadbw"); in TEST_F()
957 DriverStr(RepeatFF(&x86::X86Assembler::pmaddwd, "pmaddwd %{reg2}, %{reg1}"), "pmaddwd"); in TEST_F()
962 RepeatFFF(&x86::X86Assembler::vpmaddwd, "vpmaddwd %{reg3}, %{reg2}, %{reg1}"), "vpmaddwd"); in TEST_F()
966 DriverStr(RepeatFF(&x86::X86Assembler::phaddw, "phaddw %{reg2}, %{reg1}"), "phaddw"); in TEST_F()
970 DriverStr(RepeatFF(&x86::X86Assembler::phaddd, "phaddd %{reg2}, %{reg1}"), "phaddd"); in TEST_F()
974 DriverStr(RepeatFF(&x86::X86Assembler::haddps, "haddps %{reg2}, %{reg1}"), "haddps"); in TEST_F()
978 DriverStr(RepeatFF(&x86::X86Assembler::haddpd, "haddpd %{reg2}, %{reg1}"), "haddpd"); in TEST_F()
982 DriverStr(RepeatFF(&x86::X86Assembler::phsubw, "phsubw %{reg2}, %{reg1}"), "phsubw"); in TEST_F()
986 DriverStr(RepeatFF(&x86::X86Assembler::phsubd, "phsubd %{reg2}, %{reg1}"), "phsubd"); in TEST_F()
990 DriverStr(RepeatFF(&x86::X86Assembler::hsubps, "hsubps %{reg2}, %{reg1}"), "hsubps"); in TEST_F()
994 DriverStr(RepeatFF(&x86::X86Assembler::hsubpd, "hsubpd %{reg2}, %{reg1}"), "hsubpd"); in TEST_F()
998 DriverStr(RepeatFF(&x86::X86Assembler::pminsb, "pminsb %{reg2}, %{reg1}"), "pminsb"); in TEST_F()
1002 DriverStr(RepeatFF(&x86::X86Assembler::pmaxsb, "pmaxsb %{reg2}, %{reg1}"), "pmaxsb"); in TEST_F()
1006 DriverStr(RepeatFF(&x86::X86Assembler::pminsw, "pminsw %{reg2}, %{reg1}"), "pminsw"); in TEST_F()
1010 DriverStr(RepeatFF(&x86::X86Assembler::pmaxsw, "pmaxsw %{reg2}, %{reg1}"), "pmaxsw"); in TEST_F()
1014 DriverStr(RepeatFF(&x86::X86Assembler::pminsd, "pminsd %{reg2}, %{reg1}"), "pminsd"); in TEST_F()
1018 DriverStr(RepeatFF(&x86::X86Assembler::pmaxsd, "pmaxsd %{reg2}, %{reg1}"), "pmaxsd"); in TEST_F()
1022 DriverStr(RepeatFF(&x86::X86Assembler::pminub, "pminub %{reg2}, %{reg1}"), "pminub"); in TEST_F()
1026 DriverStr(RepeatFF(&x86::X86Assembler::pmaxub, "pmaxub %{reg2}, %{reg1}"), "pmaxub"); in TEST_F()
1030 DriverStr(RepeatFF(&x86::X86Assembler::pminuw, "pminuw %{reg2}, %{reg1}"), "pminuw"); in TEST_F()
1034 DriverStr(RepeatFF(&x86::X86Assembler::pmaxuw, "pmaxuw %{reg2}, %{reg1}"), "pmaxuw"); in TEST_F()
1038 DriverStr(RepeatFF(&x86::X86Assembler::pminud, "pminud %{reg2}, %{reg1}"), "pminud"); in TEST_F()
1042 DriverStr(RepeatFF(&x86::X86Assembler::pmaxud, "pmaxud %{reg2}, %{reg1}"), "pmaxud"); in TEST_F()
1046 DriverStr(RepeatFF(&x86::X86Assembler::minps, "minps %{reg2}, %{reg1}"), "minps"); in TEST_F()
1050 DriverStr(RepeatFF(&x86::X86Assembler::maxps, "maxps %{reg2}, %{reg1}"), "maxps"); in TEST_F()
1054 DriverStr(RepeatFF(&x86::X86Assembler::minpd, "minpd %{reg2}, %{reg1}"), "minpd"); in TEST_F()
1058 DriverStr(RepeatFF(&x86::X86Assembler::maxpd, "maxpd %{reg2}, %{reg1}"), "maxpd"); in TEST_F()
1062 DriverStr(RepeatFF(&x86::X86Assembler::pcmpeqb, "pcmpeqb %{reg2}, %{reg1}"), "cmpeqb"); in TEST_F()
1066 DriverStr(RepeatFF(&x86::X86Assembler::pcmpeqw, "pcmpeqw %{reg2}, %{reg1}"), "cmpeqw"); in TEST_F()
1070 DriverStr(RepeatFF(&x86::X86Assembler::pcmpeqd, "pcmpeqd %{reg2}, %{reg1}"), "cmpeqd"); in TEST_F()
1074 DriverStr(RepeatFF(&x86::X86Assembler::pcmpeqq, "pcmpeqq %{reg2}, %{reg1}"), "cmpeqq"); in TEST_F()
1078 DriverStr(RepeatFF(&x86::X86Assembler::pcmpgtb, "pcmpgtb %{reg2}, %{reg1}"), "cmpgtb"); in TEST_F()
1082 DriverStr(RepeatFF(&x86::X86Assembler::pcmpgtw, "pcmpgtw %{reg2}, %{reg1}"), "cmpgtw"); in TEST_F()
1086 DriverStr(RepeatFF(&x86::X86Assembler::pcmpgtd, "pcmpgtd %{reg2}, %{reg1}"), "cmpgtd"); in TEST_F()
1090 DriverStr(RepeatFF(&x86::X86Assembler::pcmpgtq, "pcmpgtq %{reg2}, %{reg1}"), "cmpgtq"); in TEST_F()
1094 DriverStr(RepeatFFI(&x86::X86Assembler::shufps, 1, "shufps ${imm}, %{reg2}, %{reg1}"), "shufps"); in TEST_F()
1098 DriverStr(RepeatFFI(&x86::X86Assembler::shufpd, 1, "shufpd ${imm}, %{reg2}, %{reg1}"), "shufpd"); in TEST_F()
1102 DriverStr(RepeatFFI(&x86::X86Assembler::pshufd, 1, "pshufd ${imm}, %{reg2}, %{reg1}"), "pshufd"); in TEST_F()
1106 DriverStr(RepeatFF(&x86::X86Assembler::punpcklbw, "punpcklbw %{reg2}, %{reg1}"), "punpcklbw"); in TEST_F()
1110 DriverStr(RepeatFF(&x86::X86Assembler::punpcklwd, "punpcklwd %{reg2}, %{reg1}"), "punpcklwd"); in TEST_F()
1114 DriverStr(RepeatFF(&x86::X86Assembler::punpckldq, "punpckldq %{reg2}, %{reg1}"), "punpckldq"); in TEST_F()
1118 DriverStr(RepeatFF(&x86::X86Assembler::punpcklqdq, "punpcklqdq %{reg2}, %{reg1}"), "punpcklqdq"); in TEST_F()
1122 DriverStr(RepeatFF(&x86::X86Assembler::punpckhbw, "punpckhbw %{reg2}, %{reg1}"), "punpckhbw"); in TEST_F()
1126 DriverStr(RepeatFF(&x86::X86Assembler::punpckhwd, "punpckhwd %{reg2}, %{reg1}"), "punpckhwd"); in TEST_F()
1130 DriverStr(RepeatFF(&x86::X86Assembler::punpckhdq, "punpckhdq %{reg2}, %{reg1}"), "punpckhdq"); in TEST_F()
1134 DriverStr(RepeatFF(&x86::X86Assembler::punpckhqdq, "punpckhqdq %{reg2}, %{reg1}"), "punpckhqdq"); in TEST_F()
1138 GetAssembler()->psllw(x86::XMM0, CreateImmediate(16)); in TEST_F()
1143 GetAssembler()->pslld(x86::XMM0, CreateImmediate(16)); in TEST_F()
1148 GetAssembler()->psllq(x86::XMM0, CreateImmediate(16)); in TEST_F()
1153 GetAssembler()->psraw(x86::XMM0, CreateImmediate(16)); in TEST_F()
1158 GetAssembler()->psrad(x86::XMM0, CreateImmediate(16)); in TEST_F()
1163 GetAssembler()->psrlw(x86::XMM0, CreateImmediate(16)); in TEST_F()
1168 GetAssembler()->psrld(x86::XMM0, CreateImmediate(16)); in TEST_F()
1173 GetAssembler()->psrlq(x86::XMM0, CreateImmediate(16)); in TEST_F()
1178 GetAssembler()->psrldq(x86::XMM0, CreateImmediate(16)); in TEST_F()
1183 x86::NearLabel target; in TEST_F()
1185 GetAssembler()->addl(x86::EDI, x86::Address(x86::ESP, 4)); in TEST_F()
1196 x86::NearLabel start, target; in TEST_F()
1198 GetAssembler()->j(x86::kEqual, &target); in TEST_F()
1201 GetAssembler()->addl(x86::EDI, x86::Address(x86::ESP, 4)); in TEST_F()
1203 GetAssembler()->j(x86::kNotEqual, &start); in TEST_F()
1216 DriverStr(RepeatAI(&x86::X86Assembler::cmpb, in TEST_F()
1222 DriverStr(RepeatAI(&x86::X86Assembler::cmpw, /*imm_bytes*/ 2U, "cmpw ${imm}, {mem}"), "cmpw"); in TEST_F()
1226 DriverStr(RepeatR(&x86::X86Assembler::idivl, "idivl %{reg}"), "idivl"); in TEST_F()
1230 DriverStr(RepeatR(&x86::X86Assembler::divl, "divl %{reg}"), "divl"); in TEST_F()
1234 DriverStr(RepeatR(&x86::X86Assembler::negl, "negl %{reg}"), "negl"); in TEST_F()
1238 DriverStr(RepeatR(&x86::X86Assembler::notl, "notl %{reg}"), "notl"); in TEST_F()