brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 6672c29 Raw
36 lines · cpp
1#include "X86TestBase.h"2#include "MCTargetDesc/X86MCTargetDesc.h"3#include "llvm/MC/MCInstBuilder.h"4#include "llvm/Support/TargetSelect.h"5 6using namespace llvm;7using namespace mca;8 9X86TestBase::X86TestBase() : MCATestBase("x86_64-unknown-linux", "skylake") {10  LLVMInitializeX86TargetInfo();11  LLVMInitializeX86TargetMC();12  LLVMInitializeX86Target();13  LLVMInitializeX86AsmPrinter();14}15 16void X86TestBase::getSimpleInsts(SmallVectorImpl<MCInst> &Insts,17                                 unsigned Repeats) {18  for (unsigned i = 0U; i < Repeats; ++i) {19    // vmulps  %xmm0, %xmm1, %xmm220    Insts.push_back(MCInstBuilder(X86::VMULPSrr)21                        .addReg(X86::XMM2)22                        .addReg(X86::XMM1)23                        .addReg(X86::XMM0));24    // vhaddps %xmm2, %xmm2, %xmm325    Insts.push_back(MCInstBuilder(X86::VHADDPSrr)26                        .addReg(X86::XMM3)27                        .addReg(X86::XMM2)28                        .addReg(X86::XMM2));29    // vhaddps %xmm3, %xmm3, %xmm430    Insts.push_back(MCInstBuilder(X86::VHADDPSrr)31                        .addReg(X86::XMM4)32                        .addReg(X86::XMM3)33                        .addReg(X86::XMM3));34  }35}36