#include "X86TestBase.h" #include "MCTargetDesc/X86MCTargetDesc.h" #include "llvm/MC/MCInstBuilder.h" #include "llvm/Support/TargetSelect.h" using namespace llvm; using namespace mca; X86TestBase::X86TestBase() : MCATestBase("x86_64-unknown-linux", "skylake") { LLVMInitializeX86TargetInfo(); LLVMInitializeX86TargetMC(); LLVMInitializeX86Target(); LLVMInitializeX86AsmPrinter(); } void X86TestBase::getSimpleInsts(SmallVectorImpl &Insts, unsigned Repeats) { for (unsigned i = 0U; i < Repeats; ++i) { // vmulps %xmm0, %xmm1, %xmm2 Insts.push_back(MCInstBuilder(X86::VMULPSrr) .addReg(X86::XMM2) .addReg(X86::XMM1) .addReg(X86::XMM0)); // vhaddps %xmm2, %xmm2, %xmm3 Insts.push_back(MCInstBuilder(X86::VHADDPSrr) .addReg(X86::XMM3) .addReg(X86::XMM2) .addReg(X86::XMM2)); // vhaddps %xmm3, %xmm3, %xmm4 Insts.push_back(MCInstBuilder(X86::VHADDPSrr) .addReg(X86::XMM4) .addReg(X86::XMM3) .addReg(X86::XMM3)); } }