forked from OSchip/llvm-project
This is a large patch for X86 AVX-512 of an optimization for reducing code size by encoding EVEX AVX-512 instructions using the shorter VEX encoding when possible.
There are cases of AVX-512 instructions that have two possible encodings. This is the case with instructions that use vector registers with low indexes of 0 - 15 and do not use the zmm registers or the mask k registers. The EVEX encoding prefix requires 4 bytes whereas the VEX prefix can take only up to 3 bytes. Consequently, using the VEX encoding for these instructions results in a code size reduction of ~2 bytes even though it is compiled with the AVX-512 features enabled. Reviewers: Craig Topper, Zvi Rackoover, Elena Demikhovsky Differential Revision: https://reviews.llvm.org/D27901 llvm-svn: 290663
This commit is contained in:
parent
b9565705bd
commit
19c4fc5e62
|
@ -60,7 +60,7 @@ public:
|
|||
/// otherwise easily derivable from the IR text.
|
||||
///
|
||||
enum CommentFlag {
|
||||
ReloadReuse = 0x1
|
||||
ReloadReuse = 0x1 // higher bits are reserved for target dep comments.
|
||||
};
|
||||
|
||||
enum MIFlag {
|
||||
|
@ -143,8 +143,8 @@ public:
|
|||
}
|
||||
|
||||
/// Set a flag for the AsmPrinter.
|
||||
void setAsmPrinterFlag(CommentFlag Flag) {
|
||||
AsmPrinterFlags |= (uint8_t)Flag;
|
||||
void setAsmPrinterFlag(uint8_t Flag) {
|
||||
AsmPrinterFlags |= Flag;
|
||||
}
|
||||
|
||||
/// Clear specific AsmPrinter flags.
|
||||
|
|
|
@ -262,7 +262,11 @@ public:
|
|||
///
|
||||
/// If the comment includes embedded \n's, they will each get the comment
|
||||
/// prefix as appropriate. The added comment should not end with a \n.
|
||||
virtual void AddComment(const Twine &T) {}
|
||||
/// By default, each comment is terminated with an end of line, i.e. the
|
||||
/// EOL param is set to true by default. If one prefers not to end the
|
||||
/// comment with a new line then the EOL param should be passed
|
||||
/// with a false value.
|
||||
virtual void AddComment(const Twine &T, bool EOL = true) {}
|
||||
|
||||
/// \brief Return a raw_ostream that comments can be written to. Unlike
|
||||
/// AddComment, you are required to terminate comments with \n if you use this
|
||||
|
|
|
@ -100,7 +100,7 @@ public:
|
|||
/// file if applicable as a QoI issue to make the output of the compiler
|
||||
/// more readable. This only affects the MCAsmStreamer, and only when
|
||||
/// verbose assembly output is enabled.
|
||||
void AddComment(const Twine &T) override;
|
||||
void AddComment(const Twine &T, bool EOL = true) override;
|
||||
|
||||
/// AddEncodingComment - Add a comment showing the encoding of an instruction.
|
||||
void AddEncodingComment(const MCInst &Inst, const MCSubtargetInfo &);
|
||||
|
@ -301,12 +301,14 @@ public:
|
|||
/// file if applicable as a QoI issue to make the output of the compiler
|
||||
/// more readable. This only affects the MCAsmStreamer, and only when
|
||||
/// verbose assembly output is enabled.
|
||||
void MCAsmStreamer::AddComment(const Twine &T) {
|
||||
/// By deafult EOL is set to true so that each comment goes on its own line.
|
||||
void MCAsmStreamer::AddComment(const Twine &T, bool EOL) {
|
||||
if (!IsVerboseAsm) return;
|
||||
|
||||
T.toVector(CommentToEmit);
|
||||
// Each comment goes on its own line.
|
||||
CommentToEmit.push_back('\n');
|
||||
|
||||
if (EOL)
|
||||
CommentToEmit.push_back('\n'); // Place comment in a new line.
|
||||
}
|
||||
|
||||
void MCAsmStreamer::EmitCommentsAndEOL() {
|
||||
|
|
|
@ -40,6 +40,7 @@ set(sources
|
|||
X86InterleavedAccess.cpp
|
||||
X86InstrFMA3Info.cpp
|
||||
X86InstrInfo.cpp
|
||||
X86EvexToVex.cpp
|
||||
X86MCInstLower.cpp
|
||||
X86MachineFunctionInfo.cpp
|
||||
X86OptimizeLEAs.cpp
|
||||
|
|
|
@ -16,6 +16,11 @@
|
|||
#define LLVM_LIB_TARGET_X86_INSTPRINTER_X86INSTCOMMENTS_H
|
||||
|
||||
namespace llvm {
|
||||
|
||||
enum AsmComments {
|
||||
AC_EVEX_2_VEX = 0x2 // For instr that was compressed from EVEX to VEX.
|
||||
};
|
||||
|
||||
class MCInst;
|
||||
class raw_ostream;
|
||||
bool EmitAnyX86InstComments(const MCInst *MI, raw_ostream &OS,
|
||||
|
|
|
@ -87,6 +87,13 @@ FunctionPass *createX86ExpandPseudoPass();
|
|||
FunctionPass *createX86FixupBWInsts();
|
||||
|
||||
void initializeFixupBWInstPassPass(PassRegistry &);
|
||||
|
||||
/// This pass replaces EVEX ecnoded of AVX-512 instructiosn by VEX
|
||||
/// encoding when possible in order to reduce code size.
|
||||
FunctionPass *createX86EvexToVexInsts();
|
||||
|
||||
void initializeEvexToVexInstPassPass(PassRegistry &);
|
||||
|
||||
} // End llvm namespace
|
||||
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,213 @@
|
|||
//===----------------------- X86EvexToVex.cpp ----------------------------===//
|
||||
// Compress EVEX instructions to VEX encoding when possible to reduce code size
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===---------------------------------------------------------------------===//
|
||||
/// \file
|
||||
/// This file defines the pass that goes over all AVX-512 instructions which
|
||||
/// are encoded using the EVEX prefix and if possible replaces them by their
|
||||
/// corresponding VEX encoding which is usually shorter by 2 bytes.
|
||||
/// EVEX instructions may be encoded via the VEX prefix when the AVX-512
|
||||
/// instruction has a corresponding AVX/AVX2 opcode and when it does not
|
||||
/// use the xmm or the mask registers or xmm/ymm registers wuith indexes
|
||||
/// higher than 15.
|
||||
/// The pass applies code reduction on the generated code for AVX-512 instrs.
|
||||
///
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
#include "InstPrinter/X86InstComments.h"
|
||||
#include "X86.h"
|
||||
#include "X86InstrBuilder.h"
|
||||
#include "X86InstrInfo.h"
|
||||
#include "X86InstrTablesInfo.h"
|
||||
#include "X86MachineFunctionInfo.h"
|
||||
#include "X86Subtarget.h"
|
||||
#include "X86TargetMachine.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
#define EVEX2VEX_DESC "Compressing EVEX instrs to VEX encoding when possible"
|
||||
#define EVEX2VEX_NAME "x86-evex-to-vex-compress"
|
||||
|
||||
#define DEBUG_TYPE EVEX2VEX_NAME
|
||||
|
||||
namespace {
|
||||
|
||||
class EvexToVexInstPass : public MachineFunctionPass {
|
||||
|
||||
/// X86EvexToVexCompressTable - Evex to Vex encoding opcode map.
|
||||
typedef DenseMap<unsigned, uint16_t> EvexToVexTableType;
|
||||
EvexToVexTableType EvexToVex128Table;
|
||||
EvexToVexTableType EvexToVex256Table;
|
||||
|
||||
/// For EVEX instructions that can be encoded using VEX encoding, replace
|
||||
/// them by the VEX encoding in order to reduce size.
|
||||
bool CompressEvexToVexImpl(MachineInstr &MI) const;
|
||||
|
||||
/// For initializing the hash map tables of all AVX-512 EVEX
|
||||
/// corresponding to AVX/AVX2 opcodes.
|
||||
void AddTableEntry(EvexToVexTableType &EvexToVexTable, uint16_t EvexOp,
|
||||
uint16_t VexOp);
|
||||
|
||||
public:
|
||||
static char ID;
|
||||
|
||||
StringRef getPassName() const override { return EVEX2VEX_DESC; }
|
||||
|
||||
EvexToVexInstPass() : MachineFunctionPass(ID) {
|
||||
initializeEvexToVexInstPassPass(*PassRegistry::getPassRegistry());
|
||||
|
||||
// Initialize the EVEX to VEX 128 table map.
|
||||
for (X86EvexToVexCompressTableEntry Entry : X86EvexToVex128CompressTable) {
|
||||
AddTableEntry(EvexToVex128Table, Entry.EvexOpcode, Entry.VexOpcode);
|
||||
}
|
||||
|
||||
// Initialize the EVEX to VEX 256 table map.
|
||||
for (X86EvexToVexCompressTableEntry Entry : X86EvexToVex256CompressTable) {
|
||||
AddTableEntry(EvexToVex256Table, Entry.EvexOpcode, Entry.VexOpcode);
|
||||
}
|
||||
}
|
||||
|
||||
/// Loop over all of the basic blocks, replacing EVEX instructions
|
||||
/// by equivalent VEX instructions when possible for reducing code size.
|
||||
bool runOnMachineFunction(MachineFunction &MF) override;
|
||||
|
||||
// This pass runs after regalloc and doesn't support VReg operands.
|
||||
MachineFunctionProperties getRequiredProperties() const override {
|
||||
return MachineFunctionProperties().set(
|
||||
MachineFunctionProperties::Property::NoVRegs);
|
||||
}
|
||||
|
||||
private:
|
||||
/// Machine instruction info used throughout the class.
|
||||
const X86InstrInfo *TII;
|
||||
};
|
||||
|
||||
char EvexToVexInstPass::ID = 0;
|
||||
}
|
||||
|
||||
INITIALIZE_PASS(EvexToVexInstPass, EVEX2VEX_NAME, EVEX2VEX_DESC, false, false)
|
||||
|
||||
FunctionPass *llvm::createX86EvexToVexInsts() {
|
||||
return new EvexToVexInstPass();
|
||||
}
|
||||
|
||||
bool EvexToVexInstPass::runOnMachineFunction(MachineFunction &MF) {
|
||||
TII = MF.getSubtarget<X86Subtarget>().getInstrInfo();
|
||||
|
||||
const X86Subtarget &ST = MF.getSubtarget<X86Subtarget>();
|
||||
if (!ST.hasAVX512())
|
||||
return false;
|
||||
|
||||
bool Changed = false;
|
||||
|
||||
/// Go over all basic blocks in function and replace
|
||||
/// EVEX encoded instrs by VEX encoding when possible.
|
||||
for (MachineBasicBlock &MBB : MF) {
|
||||
|
||||
// Traverse the basic block.
|
||||
for (MachineInstr &MI : MBB)
|
||||
Changed |= CompressEvexToVexImpl(MI);
|
||||
}
|
||||
|
||||
return Changed;
|
||||
}
|
||||
|
||||
void EvexToVexInstPass::AddTableEntry(EvexToVexTableType &EvexToVexTable,
|
||||
uint16_t EvexOp, uint16_t VexOp) {
|
||||
EvexToVexTable[EvexOp] = VexOp;
|
||||
}
|
||||
|
||||
// For EVEX instructions that can be encoded using VEX encoding
|
||||
// replace them by the VEX encoding in order to reduce size.
|
||||
bool EvexToVexInstPass::CompressEvexToVexImpl(MachineInstr &MI) const {
|
||||
|
||||
// VEX format.
|
||||
// # of bytes: 0,2,3 1 1 0,1 0,1,2,4 0,1
|
||||
// [Prefixes] [VEX] OPCODE ModR/M [SIB] [DISP] [IMM]
|
||||
//
|
||||
// EVEX format.
|
||||
// # of bytes: 4 1 1 1 4 / 1 1
|
||||
// [Prefixes] EVEX Opcode ModR/M [SIB] [Disp32] / [Disp8*N] [Immediate]
|
||||
|
||||
const MCInstrDesc &Desc = MI.getDesc();
|
||||
|
||||
// Check for EVEX instructions only.
|
||||
if ((Desc.TSFlags & X86II::EncodingMask) != X86II::EVEX)
|
||||
return false;
|
||||
|
||||
// Check for EVEX instructions with mask or broadcast as in these cases
|
||||
// the EVEX prefix is needed in order to carry this information
|
||||
// thus preventing the transformation to VEX encoding.
|
||||
if (Desc.TSFlags & (X86II::EVEX_K | X86II::EVEX_B))
|
||||
return false;
|
||||
|
||||
// Check for non EVEX_V512 instrs only.
|
||||
// EVEX_V512 instr: bit EVEX_L2 = 1; bit VEX_L = 0.
|
||||
if ((Desc.TSFlags & X86II::EVEX_L2) && !(Desc.TSFlags & X86II::VEX_L))
|
||||
return false;
|
||||
|
||||
// EVEX_V128 instr: bit EVEX_L2 = 0, bit VEX_L = 0.
|
||||
bool IsEVEX_V128 =
|
||||
(!(Desc.TSFlags & X86II::EVEX_L2) && !(Desc.TSFlags & X86II::VEX_L));
|
||||
|
||||
// EVEX_V256 instr: bit EVEX_L2 = 0, bit VEX_L = 1.
|
||||
bool IsEVEX_V256 =
|
||||
(!(Desc.TSFlags & X86II::EVEX_L2) && (Desc.TSFlags & X86II::VEX_L));
|
||||
|
||||
unsigned NewOpc = 0;
|
||||
|
||||
// Check for EVEX_V256 instructions.
|
||||
if (IsEVEX_V256) {
|
||||
// Search for opcode in the EvexToVex256 table.
|
||||
auto It = EvexToVex256Table.find(MI.getOpcode());
|
||||
if (It != EvexToVex256Table.end())
|
||||
NewOpc = It->second;
|
||||
}
|
||||
|
||||
// Check for EVEX_V128 or Scalar instructions.
|
||||
else if (IsEVEX_V128) {
|
||||
// Search for opcode in the EvexToVex128 table.
|
||||
auto It = EvexToVex128Table.find(MI.getOpcode());
|
||||
if (It != EvexToVex128Table.end())
|
||||
NewOpc = It->second;
|
||||
}
|
||||
|
||||
if (!NewOpc)
|
||||
return false;
|
||||
|
||||
auto isHiRegIdx = [](unsigned Reg) {
|
||||
// Check for XMM register with indexes between 16 - 31.
|
||||
if (Reg >= X86::XMM16 && Reg <= X86::XMM31)
|
||||
return true;
|
||||
|
||||
// Check for YMM register with indexes between 16 - 31.
|
||||
if (Reg >= X86::YMM16 && Reg <= X86::YMM31)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
// Check that operands are not ZMM regs or
|
||||
// XMM/YMM regs with hi indexes between 16 - 31.
|
||||
for (const MachineOperand &MO : MI.explicit_operands()) {
|
||||
if (!MO.isReg())
|
||||
continue;
|
||||
|
||||
unsigned Reg = MO.getReg();
|
||||
|
||||
assert (!(Reg >= X86::ZMM0 && Reg <= X86::ZMM31));
|
||||
|
||||
if (isHiRegIdx(Reg))
|
||||
return false;
|
||||
}
|
||||
|
||||
const MCInstrDesc &MCID = TII->get(NewOpc);
|
||||
MI.setDesc(MCID);
|
||||
MI.setAsmPrinterFlag(AC_EVEX_2_VEX);
|
||||
return true;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -16,6 +16,7 @@
|
|||
#include "X86RegisterInfo.h"
|
||||
#include "X86ShuffleDecodeConstantPool.h"
|
||||
#include "InstPrinter/X86ATTInstPrinter.h"
|
||||
#include "InstPrinter/X86InstComments.h"
|
||||
#include "MCTargetDesc/X86BaseInfo.h"
|
||||
#include "Utils/X86ShuffleDecode.h"
|
||||
#include "llvm/ADT/Optional.h"
|
||||
|
@ -1290,6 +1291,13 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) {
|
|||
X86MCInstLower MCInstLowering(*MF, *this);
|
||||
const X86RegisterInfo *RI = MF->getSubtarget<X86Subtarget>().getRegisterInfo();
|
||||
|
||||
// Add a comment about EVEX-2-VEX compression for AVX-512 instrs that
|
||||
// are compressed from EVEX encoding to VEX encoding.
|
||||
if (TM.Options.MCOptions.ShowMCEncoding) {
|
||||
if (MI->getAsmPrinterFlags() & AC_EVEX_2_VEX)
|
||||
OutStreamer->AddComment("EVEX TO VEX Compression ", false);
|
||||
}
|
||||
|
||||
switch (MI->getOpcode()) {
|
||||
case TargetOpcode::DBG_VALUE:
|
||||
llvm_unreachable("Should be handled target independently");
|
||||
|
|
|
@ -46,6 +46,7 @@ extern "C" void LLVMInitializeX86Target() {
|
|||
initializeGlobalISel(PR);
|
||||
initializeWinEHStatePassPass(PR);
|
||||
initializeFixupBWInstPassPass(PR);
|
||||
initializeEvexToVexInstPassPass(PR);
|
||||
}
|
||||
|
||||
static std::unique_ptr<TargetLoweringObjectFile> createTLOF(const Triple &TT) {
|
||||
|
@ -399,5 +400,6 @@ void X86PassConfig::addPreEmitPass() {
|
|||
addPass(createX86FixupBWInsts());
|
||||
addPass(createX86PadShortFunctions());
|
||||
addPass(createX86FixupLEAs());
|
||||
addPass(createX86EvexToVexInsts());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -102,7 +102,7 @@ define i32 @test_x86_sse2_comieq_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_comieq_sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: vcomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: setnp %al ## encoding: [0x0f,0x9b,0xc0]
|
||||
; AVX512VL-NEXT: sete %cl ## encoding: [0x0f,0x94,0xc1]
|
||||
; AVX512VL-NEXT: andb %al, %cl ## encoding: [0x20,0xc1]
|
||||
|
@ -125,7 +125,7 @@ define i32 @test_x86_sse2_comige_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse2_comige_sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vcomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: vcomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.comige.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -145,7 +145,7 @@ define i32 @test_x86_sse2_comigt_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse2_comigt_sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vcomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: vcomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.comigt.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -165,7 +165,7 @@ define i32 @test_x86_sse2_comile_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse2_comile_sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vcomisd %xmm0, %xmm1 ## encoding: [0x62,0xf1,0xfd,0x08,0x2f,0xc8]
|
||||
; AVX512VL-NEXT: vcomisd %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2f,0xc8]
|
||||
; AVX512VL-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.comile.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -185,7 +185,7 @@ define i32 @test_x86_sse2_comilt_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse2_comilt_sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vcomisd %xmm0, %xmm1 ## encoding: [0x62,0xf1,0xfd,0x08,0x2f,0xc8]
|
||||
; AVX512VL-NEXT: vcomisd %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2f,0xc8]
|
||||
; AVX512VL-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.comilt.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -206,7 +206,7 @@ define i32 @test_x86_sse2_comineq_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_comineq_sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: vcomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: setp %al ## encoding: [0x0f,0x9a,0xc0]
|
||||
; AVX512VL-NEXT: setne %cl ## encoding: [0x0f,0x95,0xc1]
|
||||
; AVX512VL-NEXT: orb %al, %cl ## encoding: [0x08,0xc1]
|
||||
|
@ -226,7 +226,7 @@ define <4 x float> @test_x86_sse2_cvtdq2ps(<4 x i32> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_cvtdq2ps:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvtdq2ps %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x5b,0xc0]
|
||||
; AVX512VL-NEXT: vcvtdq2ps %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x5b,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.sse2.cvtdq2ps(<4 x i32> %a0) ; <<4 x float>> [#uses=1]
|
||||
ret <4 x float> %res
|
||||
|
@ -242,7 +242,7 @@ define <4 x i32> @test_x86_sse2_cvtpd2dq(<2 x double> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_cvtpd2dq:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvtpd2dq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xff,0x08,0xe6,0xc0]
|
||||
; AVX512VL-NEXT: vcvtpd2dq %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0xe6,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.cvtpd2dq(<2 x double> %a0) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -258,7 +258,7 @@ define <4 x float> @test_x86_sse2_cvtpd2ps(<2 x double> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_cvtpd2ps:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvtpd2ps %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x5a,0xc0]
|
||||
; AVX512VL-NEXT: vcvtpd2ps %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x5a,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.sse2.cvtpd2ps(<2 x double> %a0) ; <<4 x float>> [#uses=1]
|
||||
ret <4 x float> %res
|
||||
|
@ -285,7 +285,7 @@ define i32 @test_x86_sse2_cvtsd2si(<2 x double> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_cvtsd2si:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvtsd2si %xmm0, %eax ## encoding: [0x62,0xf1,0x7f,0x08,0x2d,0xc0]
|
||||
; AVX512VL-NEXT: vcvtsd2si %xmm0, %eax ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0x2d,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %a0) ; <i32> [#uses=1]
|
||||
ret i32 %res
|
||||
|
@ -312,7 +312,7 @@ define <2 x double> @test_x86_sse2_cvtsi2sd(<2 x double> %a0, i32 %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_cvtsi2sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvtsi2sdl {{[0-9]+}}(%esp), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7f,0x08,0x2a,0x44,0x24,0x01]
|
||||
; AVX512VL-NEXT: vcvtsi2sdl {{[0-9]+}}(%esp), %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0x2a,0x44,0x24,0x04]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x double> @llvm.x86.sse2.cvtsi2sd(<2 x double> %a0, i32 %a1) ; <<2 x double>> [#uses=1]
|
||||
ret <2 x double> %res
|
||||
|
@ -339,7 +339,7 @@ define <4 x i32> @test_x86_sse2_cvttpd2dq(<2 x double> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_cvttpd2dq:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvttpd2dq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xe6,0xc0]
|
||||
; AVX512VL-NEXT: vcvttpd2dq %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe6,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.cvttpd2dq(<2 x double> %a0) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -355,7 +355,7 @@ define <4 x i32> @test_x86_sse2_cvttps2dq(<4 x float> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_cvttps2dq:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvttps2dq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7e,0x08,0x5b,0xc0]
|
||||
; AVX512VL-NEXT: vcvttps2dq %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x5b,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.cvttps2dq(<4 x float> %a0) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -371,7 +371,7 @@ define i32 @test_x86_sse2_cvttsd2si(<2 x double> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_cvttsd2si:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvttsd2si %xmm0, %eax ## encoding: [0x62,0xf1,0x7f,0x08,0x2c,0xc0]
|
||||
; AVX512VL-NEXT: vcvttsd2si %xmm0, %eax ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0x2c,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.cvttsd2si(<2 x double> %a0) ; <i32> [#uses=1]
|
||||
ret i32 %res
|
||||
|
@ -388,7 +388,7 @@ define <2 x double> @test_x86_sse2_max_pd(<2 x double> %a0, <2 x double> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_max_pd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vmaxpd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x5f,0xc1]
|
||||
; AVX512VL-NEXT: vmaxpd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x5f,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x double> @llvm.x86.sse2.max.pd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
|
||||
ret <2 x double> %res
|
||||
|
@ -415,7 +415,7 @@ define <2 x double> @test_x86_sse2_min_pd(<2 x double> %a0, <2 x double> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_min_pd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vminpd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x5d,0xc1]
|
||||
; AVX512VL-NEXT: vminpd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x5d,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x double> @llvm.x86.sse2.min.pd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
|
||||
ret <2 x double> %res
|
||||
|
@ -455,7 +455,7 @@ define <8 x i16> @test_x86_sse2_packssdw_128(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_packssdw_128:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpackssdw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6b,0xc1]
|
||||
; AVX512VL-NEXT: vpackssdw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6b,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %a0, <4 x i32> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -471,7 +471,7 @@ define <16 x i8> @test_x86_sse2_packsswb_128(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_packsswb_128:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpacksswb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x63,0xc1]
|
||||
; AVX512VL-NEXT: vpacksswb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x63,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.packsswb.128(<8 x i16> %a0, <8 x i16> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -487,7 +487,7 @@ define <16 x i8> @test_x86_sse2_packuswb_128(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_packuswb_128:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpackuswb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x67,0xc1]
|
||||
; AVX512VL-NEXT: vpackuswb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x67,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %a0, <8 x i16> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -503,7 +503,7 @@ define <16 x i8> @test_x86_sse2_padds_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_padds_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpaddsb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xec,0xc1]
|
||||
; AVX512VL-NEXT: vpaddsb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xec,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.padds.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -519,7 +519,7 @@ define <8 x i16> @test_x86_sse2_padds_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_padds_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpaddsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xed,0xc1]
|
||||
; AVX512VL-NEXT: vpaddsw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xed,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.padds.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -535,7 +535,7 @@ define <16 x i8> @test_x86_sse2_paddus_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_paddus_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpaddusb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xdc,0xc1]
|
||||
; AVX512VL-NEXT: vpaddusb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xdc,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.paddus.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -551,7 +551,7 @@ define <8 x i16> @test_x86_sse2_paddus_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_paddus_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpaddusw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xdd,0xc1]
|
||||
; AVX512VL-NEXT: vpaddusw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xdd,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.paddus.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -567,7 +567,7 @@ define <16 x i8> @test_x86_sse2_pavg_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pavg_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpavgb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe0,0xc1]
|
||||
; AVX512VL-NEXT: vpavgb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe0,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.pavg.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -583,7 +583,7 @@ define <8 x i16> @test_x86_sse2_pavg_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pavg_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpavgw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe3,0xc1]
|
||||
; AVX512VL-NEXT: vpavgw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe3,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.pavg.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -599,7 +599,7 @@ define <4 x i32> @test_x86_sse2_pmadd_wd(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pmadd_wd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaddwd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xf5,0xc1]
|
||||
; AVX512VL-NEXT: vpmaddwd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xf5,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.pmadd.wd(<8 x i16> %a0, <8 x i16> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -615,7 +615,7 @@ define <8 x i16> @test_x86_sse2_pmaxs_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pmaxs_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xee,0xc1]
|
||||
; AVX512VL-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xee,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.pmaxs.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -631,7 +631,7 @@ define <16 x i8> @test_x86_sse2_pmaxu_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pmaxu_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xde,0xc1]
|
||||
; AVX512VL-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xde,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.pmaxu.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -647,7 +647,7 @@ define <8 x i16> @test_x86_sse2_pmins_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pmins_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpminsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xea,0xc1]
|
||||
; AVX512VL-NEXT: vpminsw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xea,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.pmins.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -663,7 +663,7 @@ define <16 x i8> @test_x86_sse2_pminu_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pminu_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpminub %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xda,0xc1]
|
||||
; AVX512VL-NEXT: vpminub %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xda,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.pminu.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -690,7 +690,7 @@ define <8 x i16> @test_x86_sse2_pmulh_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pmulh_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmulhw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe5,0xc1]
|
||||
; AVX512VL-NEXT: vpmulhw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe5,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.pmulh.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -706,7 +706,7 @@ define <8 x i16> @test_x86_sse2_pmulhu_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pmulhu_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmulhuw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe4,0xc1]
|
||||
; AVX512VL-NEXT: vpmulhuw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe4,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.pmulhu.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -722,7 +722,7 @@ define <2 x i64> @test_x86_sse2_pmulu_dq(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pmulu_dq:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmuludq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xf4,0xc1]
|
||||
; AVX512VL-NEXT: vpmuludq %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xf4,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse2.pmulu.dq(<4 x i32> %a0, <4 x i32> %a1) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -738,7 +738,7 @@ define <2 x i64> @test_x86_sse2_psad_bw(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psad_bw:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsadbw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xf6,0xc1]
|
||||
; AVX512VL-NEXT: vpsadbw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xf6,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse2.psad.bw(<16 x i8> %a0, <16 x i8> %a1) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -754,7 +754,7 @@ define <4 x i32> @test_x86_sse2_psll_d(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psll_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpslld %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xf2,0xc1]
|
||||
; AVX512VL-NEXT: vpslld %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xf2,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.psll.d(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -770,7 +770,7 @@ define <2 x i64> @test_x86_sse2_psll_q(<2 x i64> %a0, <2 x i64> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psll_q:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsllq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xf3,0xc1]
|
||||
; AVX512VL-NEXT: vpsllq %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xf3,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse2.psll.q(<2 x i64> %a0, <2 x i64> %a1) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -786,7 +786,7 @@ define <8 x i16> @test_x86_sse2_psll_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psll_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsllw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xf1,0xc1]
|
||||
; AVX512VL-NEXT: vpsllw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xf1,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psll.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -802,7 +802,7 @@ define <4 x i32> @test_x86_sse2_pslli_d(<4 x i32> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pslli_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpslld $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x72,0xf0,0x07]
|
||||
; AVX512VL-NEXT: vpslld $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x72,0xf0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.pslli.d(<4 x i32> %a0, i32 7) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -818,7 +818,7 @@ define <2 x i64> @test_x86_sse2_pslli_q(<2 x i64> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pslli_q:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsllq $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x73,0xf0,0x07]
|
||||
; AVX512VL-NEXT: vpsllq $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x73,0xf0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse2.pslli.q(<2 x i64> %a0, i32 7) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -834,7 +834,7 @@ define <8 x i16> @test_x86_sse2_pslli_w(<8 x i16> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_pslli_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsllw $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x71,0xf0,0x07]
|
||||
; AVX512VL-NEXT: vpsllw $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x71,0xf0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.pslli.w(<8 x i16> %a0, i32 7) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -850,7 +850,7 @@ define <4 x i32> @test_x86_sse2_psra_d(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psra_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrad %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe2,0xc1]
|
||||
; AVX512VL-NEXT: vpsrad %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe2,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.psra.d(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -866,7 +866,7 @@ define <8 x i16> @test_x86_sse2_psra_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psra_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsraw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe1,0xc1]
|
||||
; AVX512VL-NEXT: vpsraw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe1,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psra.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -882,7 +882,7 @@ define <4 x i32> @test_x86_sse2_psrai_d(<4 x i32> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psrai_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrad $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x72,0xe0,0x07]
|
||||
; AVX512VL-NEXT: vpsrad $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x72,0xe0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.psrai.d(<4 x i32> %a0, i32 7) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -898,7 +898,7 @@ define <8 x i16> @test_x86_sse2_psrai_w(<8 x i16> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psrai_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsraw $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x71,0xe0,0x07]
|
||||
; AVX512VL-NEXT: vpsraw $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x71,0xe0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psrai.w(<8 x i16> %a0, i32 7) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -914,7 +914,7 @@ define <4 x i32> @test_x86_sse2_psrl_d(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psrl_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrld %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd2,0xc1]
|
||||
; AVX512VL-NEXT: vpsrld %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xd2,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.psrl.d(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -930,7 +930,7 @@ define <2 x i64> @test_x86_sse2_psrl_q(<2 x i64> %a0, <2 x i64> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psrl_q:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrlq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xd3,0xc1]
|
||||
; AVX512VL-NEXT: vpsrlq %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xd3,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse2.psrl.q(<2 x i64> %a0, <2 x i64> %a1) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -946,7 +946,7 @@ define <8 x i16> @test_x86_sse2_psrl_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psrl_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrlw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd1,0xc1]
|
||||
; AVX512VL-NEXT: vpsrlw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xd1,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psrl.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -962,7 +962,7 @@ define <4 x i32> @test_x86_sse2_psrli_d(<4 x i32> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psrli_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrld $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x72,0xd0,0x07]
|
||||
; AVX512VL-NEXT: vpsrld $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x72,0xd0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.psrli.d(<4 x i32> %a0, i32 7) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -978,7 +978,7 @@ define <2 x i64> @test_x86_sse2_psrli_q(<2 x i64> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psrli_q:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrlq $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x73,0xd0,0x07]
|
||||
; AVX512VL-NEXT: vpsrlq $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x73,0xd0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse2.psrli.q(<2 x i64> %a0, i32 7) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -994,7 +994,7 @@ define <8 x i16> @test_x86_sse2_psrli_w(<8 x i16> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psrli_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrlw $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x71,0xd0,0x07]
|
||||
; AVX512VL-NEXT: vpsrlw $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x71,0xd0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psrli.w(<8 x i16> %a0, i32 7) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1010,7 +1010,7 @@ define <16 x i8> @test_x86_sse2_psubs_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psubs_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsubsb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe8,0xc1]
|
||||
; AVX512VL-NEXT: vpsubsb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe8,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.psubs.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -1026,7 +1026,7 @@ define <8 x i16> @test_x86_sse2_psubs_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psubs_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsubsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe9,0xc1]
|
||||
; AVX512VL-NEXT: vpsubsw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe9,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psubs.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1042,7 +1042,7 @@ define <16 x i8> @test_x86_sse2_psubus_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psubus_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsubusb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd8,0xc1]
|
||||
; AVX512VL-NEXT: vpsubusb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xd8,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.psubus.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -1058,7 +1058,7 @@ define <8 x i16> @test_x86_sse2_psubus_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_psubus_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsubusw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd9,0xc1]
|
||||
; AVX512VL-NEXT: vpsubusw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xd9,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psubus.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1100,7 +1100,7 @@ define i32 @test_x86_sse2_ucomieq_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_ucomieq_sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vucomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: vucomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: setnp %al ## encoding: [0x0f,0x9b,0xc0]
|
||||
; AVX512VL-NEXT: sete %cl ## encoding: [0x0f,0x94,0xc1]
|
||||
; AVX512VL-NEXT: andb %al, %cl ## encoding: [0x20,0xc1]
|
||||
|
@ -1123,7 +1123,7 @@ define i32 @test_x86_sse2_ucomige_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse2_ucomige_sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vucomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: vucomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.ucomige.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -1143,7 +1143,7 @@ define i32 @test_x86_sse2_ucomigt_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse2_ucomigt_sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vucomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: vucomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.ucomigt.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -1163,7 +1163,7 @@ define i32 @test_x86_sse2_ucomile_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse2_ucomile_sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vucomisd %xmm0, %xmm1 ## encoding: [0x62,0xf1,0xfd,0x08,0x2e,0xc8]
|
||||
; AVX512VL-NEXT: vucomisd %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2e,0xc8]
|
||||
; AVX512VL-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.ucomile.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -1183,7 +1183,7 @@ define i32 @test_x86_sse2_ucomilt_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse2_ucomilt_sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vucomisd %xmm0, %xmm1 ## encoding: [0x62,0xf1,0xfd,0x08,0x2e,0xc8]
|
||||
; AVX512VL-NEXT: vucomisd %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2e,0xc8]
|
||||
; AVX512VL-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.ucomilt.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -1204,7 +1204,7 @@ define i32 @test_x86_sse2_ucomineq_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse2_ucomineq_sd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vucomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: vucomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: setp %al ## encoding: [0x0f,0x9a,0xc0]
|
||||
; AVX512VL-NEXT: setne %cl ## encoding: [0x0f,0x95,0xc1]
|
||||
; AVX512VL-NEXT: orb %al, %cl ## encoding: [0x08,0xc1]
|
||||
|
@ -1376,7 +1376,7 @@ define <8 x i16> @test_x86_sse41_packusdw(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse41_packusdw:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpackusdw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x2b,0xc1]
|
||||
; AVX512VL-NEXT: vpackusdw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x2b,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse41.packusdw(<4 x i32> %a0, <4 x i32> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1414,7 +1414,7 @@ define <16 x i8> @test_x86_sse41_pmaxsb(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse41_pmaxsb:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3c,0xc1]
|
||||
; AVX512VL-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x3c,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse41.pmaxsb(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -1430,7 +1430,7 @@ define <4 x i32> @test_x86_sse41_pmaxsd(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse41_pmaxsd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3d,0xc1]
|
||||
; AVX512VL-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x3d,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1446,7 +1446,7 @@ define <4 x i32> @test_x86_sse41_pmaxud(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse41_pmaxud:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3f,0xc1]
|
||||
; AVX512VL-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x3f,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse41.pmaxud(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1462,7 +1462,7 @@ define <8 x i16> @test_x86_sse41_pmaxuw(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse41_pmaxuw:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3e,0xc1]
|
||||
; AVX512VL-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x3e,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse41.pmaxuw(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1478,7 +1478,7 @@ define <16 x i8> @test_x86_sse41_pminsb(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse41_pminsb:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpminsb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x38,0xc1]
|
||||
; AVX512VL-NEXT: vpminsb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x38,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse41.pminsb(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -1494,7 +1494,7 @@ define <4 x i32> @test_x86_sse41_pminsd(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse41_pminsd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpminsd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x39,0xc1]
|
||||
; AVX512VL-NEXT: vpminsd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x39,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1510,7 +1510,7 @@ define <4 x i32> @test_x86_sse41_pminud(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse41_pminud:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpminud %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3b,0xc1]
|
||||
; AVX512VL-NEXT: vpminud %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x3b,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse41.pminud(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1526,7 +1526,7 @@ define <8 x i16> @test_x86_sse41_pminuw(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse41_pminuw:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpminuw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3a,0xc1]
|
||||
; AVX512VL-NEXT: vpminuw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x3a,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse41.pminuw(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1542,7 +1542,7 @@ define <2 x i64> @test_x86_sse41_pmuldq(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse41_pmuldq:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmuldq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0xfd,0x08,0x28,0xc1]
|
||||
; AVX512VL-NEXT: vpmuldq %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x28,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse41.pmuldq(<4 x i32> %a0, <4 x i32> %a1) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -1663,7 +1663,7 @@ define i32 @test_x86_sse42_pcmpestri128_load(<16 x i8>* %a0, <16 x i8>* %a2) {
|
|||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %ecx ## encoding: [0x8b,0x4c,0x24,0x08]
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x04]
|
||||
; AVX512VL-NEXT: vmovdqu8 (%eax), %xmm0 ## encoding: [0x62,0xf1,0x7f,0x08,0x6f,0x00]
|
||||
; AVX512VL-NEXT: vmovdqu (%eax), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x6f,0x00]
|
||||
; AVX512VL-NEXT: movl $7, %eax ## encoding: [0xb8,0x07,0x00,0x00,0x00]
|
||||
; AVX512VL-NEXT: movl $7, %edx ## encoding: [0xba,0x07,0x00,0x00,0x00]
|
||||
; AVX512VL-NEXT: vpcmpestri $7, (%ecx), %xmm0 ## encoding: [0xc4,0xe3,0x79,0x61,0x01,0x07]
|
||||
|
@ -1816,7 +1816,7 @@ define i32 @test_x86_sse42_pcmpistri128_load(<16 x i8>* %a0, <16 x i8>* %a1) {
|
|||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x08]
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %ecx ## encoding: [0x8b,0x4c,0x24,0x04]
|
||||
; AVX512VL-NEXT: vmovdqu8 (%ecx), %xmm0 ## encoding: [0x62,0xf1,0x7f,0x08,0x6f,0x01]
|
||||
; AVX512VL-NEXT: vmovdqu (%ecx), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x6f,0x01]
|
||||
; AVX512VL-NEXT: vpcmpistri $7, (%eax), %xmm0 ## encoding: [0xc4,0xe3,0x79,0x63,0x00,0x07]
|
||||
; AVX512VL-NEXT: movl %ecx, %eax ## encoding: [0x89,0xc8]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
|
@ -1949,7 +1949,7 @@ define i32 @test_x86_sse_comieq_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse_comieq_ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: vcomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: setnp %al ## encoding: [0x0f,0x9b,0xc0]
|
||||
; AVX512VL-NEXT: sete %cl ## encoding: [0x0f,0x94,0xc1]
|
||||
; AVX512VL-NEXT: andb %al, %cl ## encoding: [0x20,0xc1]
|
||||
|
@ -1972,7 +1972,7 @@ define i32 @test_x86_sse_comige_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse_comige_ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vcomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: vcomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.comige.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -1992,7 +1992,7 @@ define i32 @test_x86_sse_comigt_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse_comigt_ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vcomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: vcomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.comigt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -2012,7 +2012,7 @@ define i32 @test_x86_sse_comile_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse_comile_ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vcomiss %xmm0, %xmm1 ## encoding: [0x62,0xf1,0x7c,0x08,0x2f,0xc8]
|
||||
; AVX512VL-NEXT: vcomiss %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc8]
|
||||
; AVX512VL-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.comile.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -2032,7 +2032,7 @@ define i32 @test_x86_sse_comilt_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse_comilt_ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vcomiss %xmm0, %xmm1 ## encoding: [0x62,0xf1,0x7c,0x08,0x2f,0xc8]
|
||||
; AVX512VL-NEXT: vcomiss %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc8]
|
||||
; AVX512VL-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.comilt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -2053,7 +2053,7 @@ define i32 @test_x86_sse_comineq_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse_comineq_ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: vcomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc1]
|
||||
; AVX512VL-NEXT: setp %al ## encoding: [0x0f,0x9a,0xc0]
|
||||
; AVX512VL-NEXT: setne %cl ## encoding: [0x0f,0x95,0xc1]
|
||||
; AVX512VL-NEXT: orb %al, %cl ## encoding: [0x08,0xc1]
|
||||
|
@ -2075,7 +2075,7 @@ define <4 x float> @test_x86_sse_cvtsi2ss(<4 x float> %a0) {
|
|||
; AVX512VL-LABEL: test_x86_sse_cvtsi2ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: movl $7, %eax ## encoding: [0xb8,0x07,0x00,0x00,0x00]
|
||||
; AVX512VL-NEXT: vcvtsi2ssl %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7e,0x08,0x2a,0xc0]
|
||||
; AVX512VL-NEXT: vcvtsi2ssl %eax, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x2a,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.sse.cvtsi2ss(<4 x float> %a0, i32 7) ; <<4 x float>> [#uses=1]
|
||||
ret <4 x float> %res
|
||||
|
@ -2091,7 +2091,7 @@ define i32 @test_x86_sse_cvtss2si(<4 x float> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse_cvtss2si:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvtss2si %xmm0, %eax ## encoding: [0x62,0xf1,0x7e,0x08,0x2d,0xc0]
|
||||
; AVX512VL-NEXT: vcvtss2si %xmm0, %eax ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x2d,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.cvtss2si(<4 x float> %a0) ; <i32> [#uses=1]
|
||||
ret i32 %res
|
||||
|
@ -2107,7 +2107,7 @@ define i32 @test_x86_sse_cvttss2si(<4 x float> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse_cvttss2si:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvttss2si %xmm0, %eax ## encoding: [0x62,0xf1,0x7e,0x08,0x2c,0xc0]
|
||||
; AVX512VL-NEXT: vcvttss2si %xmm0, %eax ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x2c,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.cvttss2si(<4 x float> %a0) ; <i32> [#uses=1]
|
||||
ret i32 %res
|
||||
|
@ -2136,7 +2136,7 @@ define <4 x float> @test_x86_sse_max_ps(<4 x float> %a0, <4 x float> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse_max_ps:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vmaxps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x5f,0xc1]
|
||||
; AVX512VL-NEXT: vmaxps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x5f,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.sse.max.ps(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
|
||||
ret <4 x float> %res
|
||||
|
@ -2163,7 +2163,7 @@ define <4 x float> @test_x86_sse_min_ps(<4 x float> %a0, <4 x float> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse_min_ps:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vminps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x5d,0xc1]
|
||||
; AVX512VL-NEXT: vminps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x5d,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
|
||||
ret <4 x float> %res
|
||||
|
@ -2294,7 +2294,7 @@ define i32 @test_x86_sse_ucomieq_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse_ucomieq_ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vucomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: vucomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: setnp %al ## encoding: [0x0f,0x9b,0xc0]
|
||||
; AVX512VL-NEXT: sete %cl ## encoding: [0x0f,0x94,0xc1]
|
||||
; AVX512VL-NEXT: andb %al, %cl ## encoding: [0x20,0xc1]
|
||||
|
@ -2317,7 +2317,7 @@ define i32 @test_x86_sse_ucomige_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse_ucomige_ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vucomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: vucomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.ucomige.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -2337,7 +2337,7 @@ define i32 @test_x86_sse_ucomigt_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse_ucomigt_ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vucomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: vucomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.ucomigt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -2357,7 +2357,7 @@ define i32 @test_x86_sse_ucomile_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse_ucomile_ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vucomiss %xmm0, %xmm1 ## encoding: [0x62,0xf1,0x7c,0x08,0x2e,0xc8]
|
||||
; AVX512VL-NEXT: vucomiss %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc8]
|
||||
; AVX512VL-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.ucomile.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -2377,7 +2377,7 @@ define i32 @test_x86_sse_ucomilt_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; AVX512VL-LABEL: test_x86_sse_ucomilt_ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; AVX512VL-NEXT: vucomiss %xmm0, %xmm1 ## encoding: [0x62,0xf1,0x7c,0x08,0x2e,0xc8]
|
||||
; AVX512VL-NEXT: vucomiss %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc8]
|
||||
; AVX512VL-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.ucomilt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -2398,7 +2398,7 @@ define i32 @test_x86_sse_ucomineq_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_sse_ucomineq_ss:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vucomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: vucomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc1]
|
||||
; AVX512VL-NEXT: setp %al ## encoding: [0x0f,0x9a,0xc0]
|
||||
; AVX512VL-NEXT: setne %cl ## encoding: [0x0f,0x95,0xc1]
|
||||
; AVX512VL-NEXT: orb %al, %cl ## encoding: [0x08,0xc1]
|
||||
|
@ -2418,7 +2418,7 @@ define <16 x i8> @test_x86_ssse3_pabs_b_128(<16 x i8> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_ssse3_pabs_b_128:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpabsb %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x1c,0xc0]
|
||||
; AVX512VL-NEXT: vpabsb %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x1c,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.ssse3.pabs.b.128(<16 x i8> %a0) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -2434,7 +2434,7 @@ define <4 x i32> @test_x86_ssse3_pabs_d_128(<4 x i32> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_ssse3_pabs_d_128:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpabsd %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x1e,0xc0]
|
||||
; AVX512VL-NEXT: vpabsd %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x1e,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.ssse3.pabs.d.128(<4 x i32> %a0) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -2450,7 +2450,7 @@ define <8 x i16> @test_x86_ssse3_pabs_w_128(<8 x i16> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_ssse3_pabs_w_128:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpabsw %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x1d,0xc0]
|
||||
; AVX512VL-NEXT: vpabsw %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x1d,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.ssse3.pabs.w.128(<8 x i16> %a0) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -2532,7 +2532,7 @@ define <8 x i16> @test_x86_ssse3_pmadd_ub_sw_128(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_ssse3_pmadd_ub_sw_128:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaddubsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x04,0xc1]
|
||||
; AVX512VL-NEXT: vpmaddubsw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x04,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8> %a0, <16 x i8> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -2552,8 +2552,8 @@ define <8 x i16> @test_x86_ssse3_pmadd_ub_sw_128_load_op0(<16 x i8>* %ptr, <16 x
|
|||
; AVX512VL-LABEL: test_x86_ssse3_pmadd_ub_sw_128_load_op0:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x04]
|
||||
; AVX512VL-NEXT: vmovdqu8 (%eax), %xmm1 ## encoding: [0x62,0xf1,0x7f,0x08,0x6f,0x08]
|
||||
; AVX512VL-NEXT: vpmaddubsw %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0x04,0xc0]
|
||||
; AVX512VL-NEXT: vmovdqu (%eax), %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x6f,0x08]
|
||||
; AVX512VL-NEXT: vpmaddubsw %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x71,0x04,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%a0 = load <16 x i8>, <16 x i8>* %ptr
|
||||
%res = call <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8> %a0, <16 x i8> %a1) ; <<8 x i16>> [#uses=1]
|
||||
|
@ -2569,7 +2569,7 @@ define <8 x i16> @test_x86_ssse3_pmul_hr_sw_128(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_ssse3_pmul_hr_sw_128:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmulhrsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x0b,0xc1]
|
||||
; AVX512VL-NEXT: vpmulhrsw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x0b,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.ssse3.pmul.hr.sw.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -2585,7 +2585,7 @@ define <16 x i8> @test_x86_ssse3_pshuf_b_128(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_ssse3_pshuf_b_128:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpshufb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x00,0xc1]
|
||||
; AVX512VL-NEXT: vpshufb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x00,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -2772,7 +2772,7 @@ define <4 x float> @test_x86_avx_cvt_pd2_ps_256(<4 x double> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_cvt_pd2_ps_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvtpd2ps %ymm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x5a,0xc0]
|
||||
; AVX512VL-NEXT: vcvtpd2ps %ymm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x5a,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx.cvt.pd2.ps.256(<4 x double> %a0) ; <<4 x float>> [#uses=1]
|
||||
ret <4 x float> %res
|
||||
|
@ -2789,7 +2789,7 @@ define <4 x i32> @test_x86_avx_cvt_pd2dq_256(<4 x double> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_cvt_pd2dq_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvtpd2dq %ymm0, %xmm0 ## encoding: [0x62,0xf1,0xff,0x28,0xe6,0xc0]
|
||||
; AVX512VL-NEXT: vcvtpd2dq %ymm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xff,0xe6,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.avx.cvt.pd2dq.256(<4 x double> %a0) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -2816,7 +2816,7 @@ define <8 x float> @test_x86_avx_cvtdq2_ps_256(<8 x i32> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_cvtdq2_ps_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvtdq2ps %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x5b,0xc0]
|
||||
; AVX512VL-NEXT: vcvtdq2ps %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x5b,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx.cvtdq2.ps.256(<8 x i32> %a0) ; <<8 x float>> [#uses=1]
|
||||
ret <8 x float> %res
|
||||
|
@ -2833,7 +2833,7 @@ define <4 x i32> @test_x86_avx_cvtt_pd2dq_256(<4 x double> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_cvtt_pd2dq_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvttpd2dq %ymm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x28,0xe6,0xc0]
|
||||
; AVX512VL-NEXT: vcvttpd2dq %ymm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xe6,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.avx.cvtt.pd2dq.256(<4 x double> %a0) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -2849,7 +2849,7 @@ define <8 x i32> @test_x86_avx_cvtt_ps2dq_256(<8 x float> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_cvtt_ps2dq_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vcvttps2dq %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7e,0x28,0x5b,0xc0]
|
||||
; AVX512VL-NEXT: vcvttps2dq %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfe,0x5b,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx.cvtt.ps2dq.256(<8 x float> %a0) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -3042,7 +3042,7 @@ define <4 x double> @test_x86_avx_max_pd_256(<4 x double> %a0, <4 x double> %a1)
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_max_pd_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vmaxpd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x5f,0xc1]
|
||||
; AVX512VL-NEXT: vmaxpd %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x5f,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x double> @llvm.x86.avx.max.pd.256(<4 x double> %a0, <4 x double> %a1) ; <<4 x double>> [#uses=1]
|
||||
ret <4 x double> %res
|
||||
|
@ -3058,7 +3058,7 @@ define <8 x float> @test_x86_avx_max_ps_256(<8 x float> %a0, <8 x float> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_max_ps_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vmaxps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x5f,0xc1]
|
||||
; AVX512VL-NEXT: vmaxps %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x5f,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx.max.ps.256(<8 x float> %a0, <8 x float> %a1) ; <<8 x float>> [#uses=1]
|
||||
ret <8 x float> %res
|
||||
|
@ -3074,7 +3074,7 @@ define <4 x double> @test_x86_avx_min_pd_256(<4 x double> %a0, <4 x double> %a1)
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_min_pd_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vminpd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x5d,0xc1]
|
||||
; AVX512VL-NEXT: vminpd %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x5d,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x double> @llvm.x86.avx.min.pd.256(<4 x double> %a0, <4 x double> %a1) ; <<4 x double>> [#uses=1]
|
||||
ret <4 x double> %res
|
||||
|
@ -3090,7 +3090,7 @@ define <8 x float> @test_x86_avx_min_ps_256(<8 x float> %a0, <8 x float> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_min_ps_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vminps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x5d,0xc1]
|
||||
; AVX512VL-NEXT: vminps %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x5d,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx.min.ps.256(<8 x float> %a0, <8 x float> %a1) ; <<8 x float>> [#uses=1]
|
||||
ret <8 x float> %res
|
||||
|
@ -3320,7 +3320,7 @@ define <2 x double> @test_x86_avx_vpermilvar_pd(<2 x double> %a0, <2 x i64> %a1)
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_vpermilvar_pd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpermilpd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0xfd,0x08,0x0d,0xc1]
|
||||
; AVX512VL-NEXT: vpermilpd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x0d,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x double> @llvm.x86.avx.vpermilvar.pd(<2 x double> %a0, <2 x i64> %a1) ; <<2 x double>> [#uses=1]
|
||||
ret <2 x double> %res
|
||||
|
@ -3336,7 +3336,7 @@ define <4 x double> @test_x86_avx_vpermilvar_pd_256(<4 x double> %a0, <4 x i64>
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_vpermilvar_pd_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpermilpd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0xfd,0x28,0x0d,0xc1]
|
||||
; AVX512VL-NEXT: vpermilpd %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x0d,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x double> @llvm.x86.avx.vpermilvar.pd.256(<4 x double> %a0, <4 x i64> %a1) ; <<4 x double>> [#uses=1]
|
||||
ret <4 x double> %res
|
||||
|
@ -3352,7 +3352,7 @@ define <4 x double> @test_x86_avx_vpermilvar_pd_256_2(<4 x double> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_vpermilvar_pd_256_2:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpermilpd $9, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x05,0xc0,0x09]
|
||||
; AVX512VL-NEXT: vpermilpd $9, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe3,0x7d,0x05,0xc0,0x09]
|
||||
; AVX512VL-NEXT: ## ymm0 = ymm0[1,0,2,3]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x double> @llvm.x86.avx.vpermilvar.pd.256(<4 x double> %a0, <4 x i64> <i64 2, i64 0, i64 0, i64 2>) ; <<4 x double>> [#uses=1]
|
||||
|
@ -3367,7 +3367,7 @@ define <4 x float> @test_x86_avx_vpermilvar_ps(<4 x float> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_vpermilvar_ps:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpermilps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x0c,0xc1]
|
||||
; AVX512VL-NEXT: vpermilps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x0c,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx.vpermilvar.ps(<4 x float> %a0, <4 x i32> %a1) ; <<4 x float>> [#uses=1]
|
||||
ret <4 x float> %res
|
||||
|
@ -3382,7 +3382,7 @@ define <4 x float> @test_x86_avx_vpermilvar_ps_load(<4 x float> %a0, <4 x i32>*
|
|||
; AVX512VL-LABEL: test_x86_avx_vpermilvar_ps_load:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x04]
|
||||
; AVX512VL-NEXT: vpermilps (%eax), %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x0c,0x00]
|
||||
; AVX512VL-NEXT: vpermilps (%eax), %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x0c,0x00]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%a2 = load <4 x i32>, <4 x i32>* %a1
|
||||
%res = call <4 x float> @llvm.x86.avx.vpermilvar.ps(<4 x float> %a0, <4 x i32> %a2) ; <<4 x float>> [#uses=1]
|
||||
|
@ -3399,7 +3399,7 @@ define <8 x float> @test_x86_avx_vpermilvar_ps_256(<8 x float> %a0, <8 x i32> %a
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx_vpermilvar_ps_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpermilps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x0c,0xc1]
|
||||
; AVX512VL-NEXT: vpermilps %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x0c,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx.vpermilvar.ps.256(<8 x float> %a0, <8 x i32> %a1) ; <<8 x float>> [#uses=1]
|
||||
ret <8 x float> %res
|
||||
|
@ -3747,9 +3747,9 @@ define void @movnt_dq(i8* %p, <2 x i64> %a1) nounwind {
|
|||
; AVX512VL-LABEL: movnt_dq:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x04]
|
||||
; AVX512VL-NEXT: vpaddq LCPI247_0, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xd4,0x05,A,A,A,A]
|
||||
; AVX512VL-NEXT: ## fixup A - offset: 6, value: LCPI247_0, kind: FK_Data_4
|
||||
; AVX512VL-NEXT: vmovntdq %ymm0, (%eax) ## encoding: [0x62,0xf1,0x7d,0x28,0xe7,0x00]
|
||||
; AVX512VL-NEXT: vpaddq LCPI247_0, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xd4,0x05,A,A,A,A]
|
||||
; AVX512VL-NEXT: ## fixup A - offset: 4, value: LCPI247_0, kind: FK_Data_4
|
||||
; AVX512VL-NEXT: vmovntdq %ymm0, (%eax) ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xe7,0x00]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%a2 = add <2 x i64> %a1, <i64 1, i64 1>
|
||||
%a3 = shufflevector <2 x i64> %a2, <2 x i64> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
|
||||
|
@ -3769,7 +3769,7 @@ define void @movnt_ps(i8* %p, <8 x float> %a) nounwind {
|
|||
; AVX512VL-LABEL: movnt_ps:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x04]
|
||||
; AVX512VL-NEXT: vmovntps %ymm0, (%eax) ## encoding: [0x62,0xf1,0x7c,0x28,0x2b,0x00]
|
||||
; AVX512VL-NEXT: vmovntps %ymm0, (%eax) ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x2b,0x00]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
tail call void @llvm.x86.avx.movnt.ps.256(i8* %p, <8 x float> %a) nounwind
|
||||
ret void
|
||||
|
@ -3790,9 +3790,9 @@ define void @movnt_pd(i8* %p, <4 x double> %a1) nounwind {
|
|||
; AVX512VL-LABEL: movnt_pd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x04]
|
||||
; AVX512VL-NEXT: vxorpd %ymm1, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0xf5,0x28,0x57,0xc9]
|
||||
; AVX512VL-NEXT: vaddpd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x58,0xc1]
|
||||
; AVX512VL-NEXT: vmovntpd %ymm0, (%eax) ## encoding: [0x62,0xf1,0xfd,0x28,0x2b,0x00]
|
||||
; AVX512VL-NEXT: vxorpd %ymm1, %ymm1, %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0x57,0xc9]
|
||||
; AVX512VL-NEXT: vaddpd %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x58,0xc1]
|
||||
; AVX512VL-NEXT: vmovntpd %ymm0, (%eax) ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x2b,0x00]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%a2 = fadd <4 x double> %a1, <double 0x0, double 0x0, double 0x0, double 0x0>
|
||||
tail call void @llvm.x86.avx.movnt.pd.256(i8* %p, <4 x double> %a2) nounwind
|
||||
|
|
|
@ -10,7 +10,7 @@ define <16 x i16> @test_x86_avx2_packssdw(<8 x i32> %a0, <8 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_packssdw:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpackssdw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x6b,0xc1]
|
||||
; AVX512VL-NEXT: vpackssdw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6b,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.packssdw(<8 x i32> %a0, <8 x i32> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -26,7 +26,7 @@ define <32 x i8> @test_x86_avx2_packsswb(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_packsswb:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpacksswb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x63,0xc1]
|
||||
; AVX512VL-NEXT: vpacksswb %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x63,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.packsswb(<16 x i16> %a0, <16 x i16> %a1) ; <<32 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -42,7 +42,7 @@ define <32 x i8> @test_x86_avx2_packuswb(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_packuswb:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpackuswb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x67,0xc1]
|
||||
; AVX512VL-NEXT: vpackuswb %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x67,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.packuswb(<16 x i16> %a0, <16 x i16> %a1) ; <<32 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -58,7 +58,7 @@ define <32 x i8> @test_x86_avx2_padds_b(<32 x i8> %a0, <32 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_padds_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpaddsb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xec,0xc1]
|
||||
; AVX512VL-NEXT: vpaddsb %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xec,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.padds.b(<32 x i8> %a0, <32 x i8> %a1) ; <<32 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -74,7 +74,7 @@ define <16 x i16> @test_x86_avx2_padds_w(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_padds_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpaddsw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xed,0xc1]
|
||||
; AVX512VL-NEXT: vpaddsw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xed,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.padds.w(<16 x i16> %a0, <16 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -90,7 +90,7 @@ define <32 x i8> @test_x86_avx2_paddus_b(<32 x i8> %a0, <32 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_paddus_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpaddusb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xdc,0xc1]
|
||||
; AVX512VL-NEXT: vpaddusb %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xdc,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.paddus.b(<32 x i8> %a0, <32 x i8> %a1) ; <<32 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -106,7 +106,7 @@ define <16 x i16> @test_x86_avx2_paddus_w(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_paddus_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpaddusw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xdd,0xc1]
|
||||
; AVX512VL-NEXT: vpaddusw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xdd,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.paddus.w(<16 x i16> %a0, <16 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -122,7 +122,7 @@ define <32 x i8> @test_x86_avx2_pavg_b(<32 x i8> %a0, <32 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pavg_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpavgb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe0,0xc1]
|
||||
; AVX512VL-NEXT: vpavgb %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xe0,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.pavg.b(<32 x i8> %a0, <32 x i8> %a1) ; <<32 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -138,7 +138,7 @@ define <16 x i16> @test_x86_avx2_pavg_w(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pavg_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpavgw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe3,0xc1]
|
||||
; AVX512VL-NEXT: vpavgw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xe3,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.pavg.w(<16 x i16> %a0, <16 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -154,7 +154,7 @@ define <8 x i32> @test_x86_avx2_pmadd_wd(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmadd_wd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaddwd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xf5,0xc1]
|
||||
; AVX512VL-NEXT: vpmaddwd %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xf5,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.pmadd.wd(<16 x i16> %a0, <16 x i16> %a1) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -170,7 +170,7 @@ define <16 x i16> @test_x86_avx2_pmaxs_w(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmaxs_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaxsw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xee,0xc1]
|
||||
; AVX512VL-NEXT: vpmaxsw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xee,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.pmaxs.w(<16 x i16> %a0, <16 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -186,7 +186,7 @@ define <32 x i8> @test_x86_avx2_pmaxu_b(<32 x i8> %a0, <32 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmaxu_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaxub %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xde,0xc1]
|
||||
; AVX512VL-NEXT: vpmaxub %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xde,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.pmaxu.b(<32 x i8> %a0, <32 x i8> %a1) ; <<32 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -202,7 +202,7 @@ define <16 x i16> @test_x86_avx2_pmins_w(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmins_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpminsw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xea,0xc1]
|
||||
; AVX512VL-NEXT: vpminsw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xea,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.pmins.w(<16 x i16> %a0, <16 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -218,7 +218,7 @@ define <32 x i8> @test_x86_avx2_pminu_b(<32 x i8> %a0, <32 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pminu_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpminub %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xda,0xc1]
|
||||
; AVX512VL-NEXT: vpminub %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xda,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.pminu.b(<32 x i8> %a0, <32 x i8> %a1) ; <<32 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -251,7 +251,7 @@ define <16 x i16> @test_x86_avx2_pmulh_w(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmulh_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmulhw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe5,0xc1]
|
||||
; AVX512VL-NEXT: vpmulhw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xe5,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.pmulh.w(<16 x i16> %a0, <16 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -267,7 +267,7 @@ define <16 x i16> @test_x86_avx2_pmulhu_w(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmulhu_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmulhuw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe4,0xc1]
|
||||
; AVX512VL-NEXT: vpmulhuw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xe4,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.pmulhu.w(<16 x i16> %a0, <16 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -283,7 +283,7 @@ define <4 x i64> @test_x86_avx2_pmulu_dq(<8 x i32> %a0, <8 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmulu_dq:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmuludq %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0xf4,0xc1]
|
||||
; AVX512VL-NEXT: vpmuludq %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xf4,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx2.pmulu.dq(<8 x i32> %a0, <8 x i32> %a1) ; <<4 x i64>> [#uses=1]
|
||||
ret <4 x i64> %res
|
||||
|
@ -299,7 +299,7 @@ define <4 x i64> @test_x86_avx2_psad_bw(<32 x i8> %a0, <32 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psad_bw:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsadbw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xf6,0xc1]
|
||||
; AVX512VL-NEXT: vpsadbw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xf6,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx2.psad.bw(<32 x i8> %a0, <32 x i8> %a1) ; <<4 x i64>> [#uses=1]
|
||||
ret <4 x i64> %res
|
||||
|
@ -315,7 +315,7 @@ define <8 x i32> @test_x86_avx2_psll_d(<8 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psll_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpslld %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xf2,0xc1]
|
||||
; AVX512VL-NEXT: vpslld %xmm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xf2,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.psll.d(<8 x i32> %a0, <4 x i32> %a1) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -331,7 +331,7 @@ define <4 x i64> @test_x86_avx2_psll_q(<4 x i64> %a0, <2 x i64> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psll_q:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsllq %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0xf3,0xc1]
|
||||
; AVX512VL-NEXT: vpsllq %xmm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xf3,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx2.psll.q(<4 x i64> %a0, <2 x i64> %a1) ; <<4 x i64>> [#uses=1]
|
||||
ret <4 x i64> %res
|
||||
|
@ -347,7 +347,7 @@ define <16 x i16> @test_x86_avx2_psll_w(<16 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psll_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsllw %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xf1,0xc1]
|
||||
; AVX512VL-NEXT: vpsllw %xmm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xf1,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.psll.w(<16 x i16> %a0, <8 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -363,7 +363,7 @@ define <8 x i32> @test_x86_avx2_pslli_d(<8 x i32> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pslli_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpslld $7, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x72,0xf0,0x07]
|
||||
; AVX512VL-NEXT: vpslld $7, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x72,0xf0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.pslli.d(<8 x i32> %a0, i32 7) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -379,7 +379,7 @@ define <4 x i64> @test_x86_avx2_pslli_q(<4 x i64> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pslli_q:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsllq $7, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x73,0xf0,0x07]
|
||||
; AVX512VL-NEXT: vpsllq $7, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x73,0xf0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx2.pslli.q(<4 x i64> %a0, i32 7) ; <<4 x i64>> [#uses=1]
|
||||
ret <4 x i64> %res
|
||||
|
@ -395,7 +395,7 @@ define <16 x i16> @test_x86_avx2_pslli_w(<16 x i16> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pslli_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsllw $7, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x71,0xf0,0x07]
|
||||
; AVX512VL-NEXT: vpsllw $7, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x71,0xf0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.pslli.w(<16 x i16> %a0, i32 7) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -411,7 +411,7 @@ define <8 x i32> @test_x86_avx2_psra_d(<8 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psra_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrad %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe2,0xc1]
|
||||
; AVX512VL-NEXT: vpsrad %xmm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xe2,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.psra.d(<8 x i32> %a0, <4 x i32> %a1) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -427,7 +427,7 @@ define <16 x i16> @test_x86_avx2_psra_w(<16 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psra_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsraw %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe1,0xc1]
|
||||
; AVX512VL-NEXT: vpsraw %xmm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xe1,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.psra.w(<16 x i16> %a0, <8 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -443,7 +443,7 @@ define <8 x i32> @test_x86_avx2_psrai_d(<8 x i32> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrai_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrad $7, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x72,0xe0,0x07]
|
||||
; AVX512VL-NEXT: vpsrad $7, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x72,0xe0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.psrai.d(<8 x i32> %a0, i32 7) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -459,7 +459,7 @@ define <16 x i16> @test_x86_avx2_psrai_w(<16 x i16> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrai_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsraw $7, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x71,0xe0,0x07]
|
||||
; AVX512VL-NEXT: vpsraw $7, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x71,0xe0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.psrai.w(<16 x i16> %a0, i32 7) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -475,7 +475,7 @@ define <8 x i32> @test_x86_avx2_psrl_d(<8 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrl_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrld %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xd2,0xc1]
|
||||
; AVX512VL-NEXT: vpsrld %xmm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xd2,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.psrl.d(<8 x i32> %a0, <4 x i32> %a1) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -491,7 +491,7 @@ define <4 x i64> @test_x86_avx2_psrl_q(<4 x i64> %a0, <2 x i64> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrl_q:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrlq %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0xd3,0xc1]
|
||||
; AVX512VL-NEXT: vpsrlq %xmm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xd3,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx2.psrl.q(<4 x i64> %a0, <2 x i64> %a1) ; <<4 x i64>> [#uses=1]
|
||||
ret <4 x i64> %res
|
||||
|
@ -507,7 +507,7 @@ define <16 x i16> @test_x86_avx2_psrl_w(<16 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrl_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrlw %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xd1,0xc1]
|
||||
; AVX512VL-NEXT: vpsrlw %xmm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xd1,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.psrl.w(<16 x i16> %a0, <8 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -523,7 +523,7 @@ define <8 x i32> @test_x86_avx2_psrli_d(<8 x i32> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrli_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrld $7, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x72,0xd0,0x07]
|
||||
; AVX512VL-NEXT: vpsrld $7, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x72,0xd0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.psrli.d(<8 x i32> %a0, i32 7) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -539,7 +539,7 @@ define <4 x i64> @test_x86_avx2_psrli_q(<4 x i64> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrli_q:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrlq $7, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x73,0xd0,0x07]
|
||||
; AVX512VL-NEXT: vpsrlq $7, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x73,0xd0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx2.psrli.q(<4 x i64> %a0, i32 7) ; <<4 x i64>> [#uses=1]
|
||||
ret <4 x i64> %res
|
||||
|
@ -555,7 +555,7 @@ define <16 x i16> @test_x86_avx2_psrli_w(<16 x i16> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrli_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrlw $7, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x71,0xd0,0x07]
|
||||
; AVX512VL-NEXT: vpsrlw $7, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x71,0xd0,0x07]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.psrli.w(<16 x i16> %a0, i32 7) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -571,7 +571,7 @@ define <32 x i8> @test_x86_avx2_psubs_b(<32 x i8> %a0, <32 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psubs_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsubsb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe8,0xc1]
|
||||
; AVX512VL-NEXT: vpsubsb %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xe8,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.psubs.b(<32 x i8> %a0, <32 x i8> %a1) ; <<32 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -587,7 +587,7 @@ define <16 x i16> @test_x86_avx2_psubs_w(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psubs_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsubsw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xe9,0xc1]
|
||||
; AVX512VL-NEXT: vpsubsw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xe9,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.psubs.w(<16 x i16> %a0, <16 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -603,7 +603,7 @@ define <32 x i8> @test_x86_avx2_psubus_b(<32 x i8> %a0, <32 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psubus_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsubusb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xd8,0xc1]
|
||||
; AVX512VL-NEXT: vpsubusb %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xd8,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.psubus.b(<32 x i8> %a0, <32 x i8> %a1) ; <<32 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -619,7 +619,7 @@ define <16 x i16> @test_x86_avx2_psubus_w(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psubus_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsubusw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0xd9,0xc1]
|
||||
; AVX512VL-NEXT: vpsubusw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xd9,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.psubus.w(<16 x i16> %a0, <16 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -635,7 +635,7 @@ define <32 x i8> @test_x86_avx2_pabs_b(<32 x i8> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pabs_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpabsb %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x1c,0xc0]
|
||||
; AVX512VL-NEXT: vpabsb %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x1c,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.pabs.b(<32 x i8> %a0) ; <<32 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -651,7 +651,7 @@ define <8 x i32> @test_x86_avx2_pabs_d(<8 x i32> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pabs_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpabsd %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x1e,0xc0]
|
||||
; AVX512VL-NEXT: vpabsd %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x1e,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.pabs.d(<8 x i32> %a0) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -667,7 +667,7 @@ define <16 x i16> @test_x86_avx2_pabs_w(<16 x i16> %a0) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pabs_w:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpabsw %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x1d,0xc0]
|
||||
; AVX512VL-NEXT: vpabsw %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x1d,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.pabs.w(<16 x i16> %a0) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -749,7 +749,7 @@ define <16 x i16> @test_x86_avx2_pmadd_ub_sw(<32 x i8> %a0, <32 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmadd_ub_sw:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaddubsw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x04,0xc1]
|
||||
; AVX512VL-NEXT: vpmaddubsw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x04,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.pmadd.ub.sw(<32 x i8> %a0, <32 x i8> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -768,8 +768,8 @@ define <16 x i16> @test_x86_avx2_pmadd_ub_sw_load_op0(<32 x i8>* %ptr, <32 x i8>
|
|||
; AVX512VL-LABEL: test_x86_avx2_pmadd_ub_sw_load_op0:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x04]
|
||||
; AVX512VL-NEXT: vmovdqu8 (%eax), %ymm1 ## encoding: [0x62,0xf1,0x7f,0x28,0x6f,0x08]
|
||||
; AVX512VL-NEXT: vpmaddubsw %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0x04,0xc0]
|
||||
; AVX512VL-NEXT: vmovdqu (%eax), %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xfe,0x6f,0x08]
|
||||
; AVX512VL-NEXT: vpmaddubsw %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x75,0x04,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%a0 = load <32 x i8>, <32 x i8>* %ptr
|
||||
%res = call <16 x i16> @llvm.x86.avx2.pmadd.ub.sw(<32 x i8> %a0, <32 x i8> %a1) ; <<16 x i16>> [#uses=1]
|
||||
|
@ -784,7 +784,7 @@ define <16 x i16> @test_x86_avx2_pmul_hr_sw(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmul_hr_sw:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmulhrsw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x0b,0xc1]
|
||||
; AVX512VL-NEXT: vpmulhrsw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x0b,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.pmul.hr.sw(<16 x i16> %a0, <16 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -800,7 +800,7 @@ define <32 x i8> @test_x86_avx2_pshuf_b(<32 x i8> %a0, <32 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pshuf_b:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpshufb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x00,0xc1]
|
||||
; AVX512VL-NEXT: vpshufb %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x00,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.pshuf.b(<32 x i8> %a0, <32 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -851,7 +851,7 @@ define <4 x i64> @test_x86_avx2_movntdqa(i8* %a0) {
|
|||
; AVX512VL-LABEL: test_x86_avx2_movntdqa:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x04]
|
||||
; AVX512VL-NEXT: vmovntdqa (%eax), %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x2a,0x00]
|
||||
; AVX512VL-NEXT: vmovntdqa (%eax), %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x2a,0x00]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx2.movntdqa(i8* %a0) ; <<4 x i64>> [#uses=1]
|
||||
ret <4 x i64> %res
|
||||
|
@ -878,7 +878,7 @@ define <16 x i16> @test_x86_avx2_packusdw(<8 x i32> %a0, <8 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_packusdw:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpackusdw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x2b,0xc1]
|
||||
; AVX512VL-NEXT: vpackusdw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x2b,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.packusdw(<8 x i32> %a0, <8 x i32> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -917,7 +917,7 @@ define <32 x i8> @test_x86_avx2_pmaxsb(<32 x i8> %a0, <32 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmaxsb:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaxsb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x3c,0xc1]
|
||||
; AVX512VL-NEXT: vpmaxsb %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x3c,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.pmaxs.b(<32 x i8> %a0, <32 x i8> %a1) ; <<32 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -933,7 +933,7 @@ define <8 x i32> @test_x86_avx2_pmaxsd(<8 x i32> %a0, <8 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmaxsd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaxsd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x3d,0xc1]
|
||||
; AVX512VL-NEXT: vpmaxsd %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x3d,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.pmaxs.d(<8 x i32> %a0, <8 x i32> %a1) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -949,7 +949,7 @@ define <8 x i32> @test_x86_avx2_pmaxud(<8 x i32> %a0, <8 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmaxud:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaxud %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x3f,0xc1]
|
||||
; AVX512VL-NEXT: vpmaxud %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x3f,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.pmaxu.d(<8 x i32> %a0, <8 x i32> %a1) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -965,7 +965,7 @@ define <16 x i16> @test_x86_avx2_pmaxuw(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pmaxuw:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x3e,0xc1]
|
||||
; AVX512VL-NEXT: vpmaxuw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x3e,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.pmaxu.w(<16 x i16> %a0, <16 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -981,7 +981,7 @@ define <32 x i8> @test_x86_avx2_pminsb(<32 x i8> %a0, <32 x i8> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pminsb:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpminsb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x38,0xc1]
|
||||
; AVX512VL-NEXT: vpminsb %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x38,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx2.pmins.b(<32 x i8> %a0, <32 x i8> %a1) ; <<32 x i8>> [#uses=1]
|
||||
ret <32 x i8> %res
|
||||
|
@ -997,7 +997,7 @@ define <8 x i32> @test_x86_avx2_pminsd(<8 x i32> %a0, <8 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pminsd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpminsd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x39,0xc1]
|
||||
; AVX512VL-NEXT: vpminsd %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x39,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.pmins.d(<8 x i32> %a0, <8 x i32> %a1) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -1013,7 +1013,7 @@ define <8 x i32> @test_x86_avx2_pminud(<8 x i32> %a0, <8 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pminud:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpminud %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x3b,0xc1]
|
||||
; AVX512VL-NEXT: vpminud %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x3b,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.pminu.d(<8 x i32> %a0, <8 x i32> %a1) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -1029,7 +1029,7 @@ define <16 x i16> @test_x86_avx2_pminuw(<16 x i16> %a0, <16 x i16> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_pminuw:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpminuw %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x3a,0xc1]
|
||||
; AVX512VL-NEXT: vpminuw %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x3a,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i16> @llvm.x86.avx2.pminu.w(<16 x i16> %a0, <16 x i16> %a1) ; <<16 x i16>> [#uses=1]
|
||||
ret <16 x i16> %res
|
||||
|
@ -1079,7 +1079,7 @@ define <8 x i32> @test_x86_avx2_permd(<8 x i32> %a0, <8 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_permd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0x36,0xc0]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x75,0x36,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.permd(<8 x i32> %a0, <8 x i32> %a1) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -1098,7 +1098,7 @@ define <8 x float> @test_x86_avx2_permps(<8 x float> %a0, <8 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_permps:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpermps %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0x16,0xc0]
|
||||
; AVX512VL-NEXT: vpermps %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x75,0x16,0xc0]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx2.permps(<8 x float> %a0, <8 x i32> %a1) ; <<8 x float>> [#uses=1]
|
||||
ret <8 x float> %res
|
||||
|
@ -1236,7 +1236,7 @@ define <4 x i32> @test_x86_avx2_psllv_d(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psllv_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsllvd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x47,0xc1]
|
||||
; AVX512VL-NEXT: vpsllvd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x47,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.avx2.psllv.d(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1252,7 +1252,7 @@ define <8 x i32> @test_x86_avx2_psllv_d_256(<8 x i32> %a0, <8 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psllv_d_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsllvd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x47,0xc1]
|
||||
; AVX512VL-NEXT: vpsllvd %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x47,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.psllv.d.256(<8 x i32> %a0, <8 x i32> %a1) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -1268,7 +1268,7 @@ define <2 x i64> @test_x86_avx2_psllv_q(<2 x i64> %a0, <2 x i64> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psllv_q:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsllvq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0xfd,0x08,0x47,0xc1]
|
||||
; AVX512VL-NEXT: vpsllvq %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf9,0x47,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.avx2.psllv.q(<2 x i64> %a0, <2 x i64> %a1) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -1284,7 +1284,7 @@ define <4 x i64> @test_x86_avx2_psllv_q_256(<4 x i64> %a0, <4 x i64> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psllv_q_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsllvq %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0xfd,0x28,0x47,0xc1]
|
||||
; AVX512VL-NEXT: vpsllvq %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0xfd,0x47,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx2.psllv.q.256(<4 x i64> %a0, <4 x i64> %a1) ; <<4 x i64>> [#uses=1]
|
||||
ret <4 x i64> %res
|
||||
|
@ -1300,7 +1300,7 @@ define <4 x i32> @test_x86_avx2_psrlv_d(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrlv_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrlvd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x45,0xc1]
|
||||
; AVX512VL-NEXT: vpsrlvd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x45,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.avx2.psrlv.d(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1316,7 +1316,7 @@ define <8 x i32> @test_x86_avx2_psrlv_d_256(<8 x i32> %a0, <8 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrlv_d_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrlvd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x45,0xc1]
|
||||
; AVX512VL-NEXT: vpsrlvd %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x45,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.psrlv.d.256(<8 x i32> %a0, <8 x i32> %a1) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -1332,7 +1332,7 @@ define <2 x i64> @test_x86_avx2_psrlv_q(<2 x i64> %a0, <2 x i64> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrlv_q:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrlvq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0xfd,0x08,0x45,0xc1]
|
||||
; AVX512VL-NEXT: vpsrlvq %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0xf9,0x45,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.avx2.psrlv.q(<2 x i64> %a0, <2 x i64> %a1) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -1348,7 +1348,7 @@ define <4 x i64> @test_x86_avx2_psrlv_q_256(<4 x i64> %a0, <4 x i64> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrlv_q_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsrlvq %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0xfd,0x28,0x45,0xc1]
|
||||
; AVX512VL-NEXT: vpsrlvq %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0xfd,0x45,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx2.psrlv.q.256(<4 x i64> %a0, <4 x i64> %a1) ; <<4 x i64>> [#uses=1]
|
||||
ret <4 x i64> %res
|
||||
|
@ -1364,7 +1364,7 @@ define <4 x i32> @test_x86_avx2_psrav_d(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrav_d:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsravd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x46,0xc1]
|
||||
; AVX512VL-NEXT: vpsravd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x46,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.avx2.psrav.d(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1382,11 +1382,11 @@ define <4 x i32> @test_x86_avx2_psrav_d_const(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrav_d_const:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} xmm0 = [2,9,4294967284,23]
|
||||
; AVX512VL-NEXT: ## encoding: [0x62,0xf1,0x7d,0x08,0x6f,0x05,A,A,A,A]
|
||||
; AVX512VL-NEXT: ## fixup A - offset: 6, value: LCPI91_0, kind: FK_Data_4
|
||||
; AVX512VL-NEXT: vpsravd LCPI91_1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x46,0x05,A,A,A,A]
|
||||
; AVX512VL-NEXT: ## fixup A - offset: 6, value: LCPI91_1, kind: FK_Data_4
|
||||
; AVX512VL-NEXT: vmovdqa LCPI91_0, %xmm0 ## EVEX TO VEX Compression xmm0 = [2,9,4294967284,23]
|
||||
; AVX512VL-NEXT: ## encoding: [0xc5,0xf9,0x6f,0x05,A,A,A,A]
|
||||
; AVX512VL-NEXT: ## fixup A - offset: 4, value: LCPI91_0, kind: FK_Data_4
|
||||
; AVX512VL-NEXT: vpsravd LCPI91_1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x46,0x05,A,A,A,A]
|
||||
; AVX512VL-NEXT: ## fixup A - offset: 5, value: LCPI91_1, kind: FK_Data_4
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.avx2.psrav.d(<4 x i32> <i32 2, i32 9, i32 -12, i32 23>, <4 x i32> <i32 1, i32 18, i32 35, i32 52>)
|
||||
ret <4 x i32> %res
|
||||
|
@ -1401,7 +1401,7 @@ define <8 x i32> @test_x86_avx2_psrav_d_256(<8 x i32> %a0, <8 x i32> %a1) {
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrav_d_256:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpsravd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x46,0xc1]
|
||||
; AVX512VL-NEXT: vpsravd %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x46,0xc1]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.psrav.d.256(<8 x i32> %a0, <8 x i32> %a1) ; <<8 x i32>> [#uses=1]
|
||||
ret <8 x i32> %res
|
||||
|
@ -1419,11 +1419,11 @@ define <8 x i32> @test_x86_avx2_psrav_d_256_const(<8 x i32> %a0, <8 x i32> %a1)
|
|||
;
|
||||
; AVX512VL-LABEL: test_x86_avx2_psrav_d_256_const:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm0 = [2,9,4294967284,23,4294967270,37,4294967256,51]
|
||||
; AVX512VL-NEXT: ## encoding: [0x62,0xf1,0x7d,0x28,0x6f,0x05,A,A,A,A]
|
||||
; AVX512VL-NEXT: ## fixup A - offset: 6, value: LCPI93_0, kind: FK_Data_4
|
||||
; AVX512VL-NEXT: vpsravd LCPI93_1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x46,0x05,A,A,A,A]
|
||||
; AVX512VL-NEXT: ## fixup A - offset: 6, value: LCPI93_1, kind: FK_Data_4
|
||||
; AVX512VL-NEXT: vmovdqa LCPI93_0, %ymm0 ## EVEX TO VEX Compression ymm0 = [2,9,4294967284,23,4294967270,37,4294967256,51]
|
||||
; AVX512VL-NEXT: ## encoding: [0xc5,0xfd,0x6f,0x05,A,A,A,A]
|
||||
; AVX512VL-NEXT: ## fixup A - offset: 4, value: LCPI93_0, kind: FK_Data_4
|
||||
; AVX512VL-NEXT: vpsravd LCPI93_1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x46,0x05,A,A,A,A]
|
||||
; AVX512VL-NEXT: ## fixup A - offset: 5, value: LCPI93_1, kind: FK_Data_4
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i32> @llvm.x86.avx2.psrav.d.256(<8 x i32> <i32 2, i32 9, i32 -12, i32 23, i32 -26, i32 37, i32 -40, i32 51>, <8 x i32> <i32 1, i32 18, i32 35, i32 52, i32 69, i32 15, i32 32, i32 49>)
|
||||
ret <8 x i32> %res
|
||||
|
@ -1667,10 +1667,10 @@ define <8 x float> @test_gather_mask(<8 x float> %a0, float* %a, <8 x i32> %idx
|
|||
; AVX512VL-LABEL: test_gather_mask:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x04]
|
||||
; AVX512VL-NEXT: vmovaps %ymm2, %ymm3 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xda]
|
||||
; AVX512VL-NEXT: vmovaps %ymm2, %ymm3 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xda]
|
||||
; AVX512VL-NEXT: vgatherdps %ymm3, (%eax,%ymm1,4), %ymm0 ## encoding: [0xc4,0xe2,0x65,0x92,0x04,0x88]
|
||||
; AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x08]
|
||||
; AVX512VL-NEXT: vmovups %ymm2, (%eax) ## encoding: [0x62,0xf1,0x7c,0x28,0x11,0x10]
|
||||
; AVX512VL-NEXT: vmovups %ymm2, (%eax) ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x11,0x10]
|
||||
; AVX512VL-NEXT: retl ## encoding: [0xc3]
|
||||
%a_i8 = bitcast float* %a to i8*
|
||||
%res = call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> %a0,
|
||||
|
|
|
@ -1140,7 +1140,7 @@ define void @isel_crash_16b(i8* %cV_R.addr) {
|
|||
; X32-AVX512VL-NEXT: vmovaps %xmm0, (%esp)
|
||||
; X32-AVX512VL-NEXT: vpbroadcastb (%eax), %xmm1
|
||||
; X32-AVX512VL-NEXT: vmovaps %xmm0, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: vmovdqa32 %xmm1, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: vmovdqa %xmm1, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: addl $60, %esp
|
||||
; X32-AVX512VL-NEXT: retl
|
||||
;
|
||||
|
@ -1152,7 +1152,7 @@ define void @isel_crash_16b(i8* %cV_R.addr) {
|
|||
; X64-AVX512VL-NEXT: vmovd %eax, %xmm1
|
||||
; X64-AVX512VL-NEXT: vpbroadcastb %xmm1, %xmm1
|
||||
; X64-AVX512VL-NEXT: vmovaps %xmm0, -{{[0-9]+}}(%rsp)
|
||||
; X64-AVX512VL-NEXT: vmovdqa32 %xmm1, -{{[0-9]+}}(%rsp)
|
||||
; X64-AVX512VL-NEXT: vmovdqa %xmm1, -{{[0-9]+}}(%rsp)
|
||||
; X64-AVX512VL-NEXT: retq
|
||||
eintry:
|
||||
%__a.addr.i = alloca <2 x i64>, align 16
|
||||
|
@ -1234,7 +1234,7 @@ define void @isel_crash_32b(i8* %cV_R.addr) {
|
|||
; X32-AVX512VL-NEXT: vmovaps %ymm0, (%esp)
|
||||
; X32-AVX512VL-NEXT: vpbroadcastb (%eax), %ymm1
|
||||
; X32-AVX512VL-NEXT: vmovaps %ymm0, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: vmovdqa32 %ymm1, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: vmovdqa %ymm1, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: movl %ebp, %esp
|
||||
; X32-AVX512VL-NEXT: popl %ebp
|
||||
; X32-AVX512VL-NEXT: retl
|
||||
|
@ -1257,7 +1257,7 @@ define void @isel_crash_32b(i8* %cV_R.addr) {
|
|||
; X64-AVX512VL-NEXT: vmovd %eax, %xmm1
|
||||
; X64-AVX512VL-NEXT: vpbroadcastb %xmm1, %ymm1
|
||||
; X64-AVX512VL-NEXT: vmovaps %ymm0, {{[0-9]+}}(%rsp)
|
||||
; X64-AVX512VL-NEXT: vmovdqa32 %ymm1, {{[0-9]+}}(%rsp)
|
||||
; X64-AVX512VL-NEXT: vmovdqa %ymm1, {{[0-9]+}}(%rsp)
|
||||
; X64-AVX512VL-NEXT: movq %rbp, %rsp
|
||||
; X64-AVX512VL-NEXT: popq %rbp
|
||||
; X64-AVX512VL-NEXT: retq
|
||||
|
@ -1312,7 +1312,7 @@ define void @isel_crash_8w(i16* %cV_R.addr) {
|
|||
; X32-AVX512VL-NEXT: vmovaps %xmm0, (%esp)
|
||||
; X32-AVX512VL-NEXT: vpbroadcastw (%eax), %xmm1
|
||||
; X32-AVX512VL-NEXT: vmovaps %xmm0, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: vmovdqa32 %xmm1, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: vmovdqa %xmm1, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: addl $60, %esp
|
||||
; X32-AVX512VL-NEXT: retl
|
||||
;
|
||||
|
@ -1324,7 +1324,7 @@ define void @isel_crash_8w(i16* %cV_R.addr) {
|
|||
; X64-AVX512VL-NEXT: vmovd %eax, %xmm1
|
||||
; X64-AVX512VL-NEXT: vpbroadcastw %xmm1, %xmm1
|
||||
; X64-AVX512VL-NEXT: vmovaps %xmm0, -{{[0-9]+}}(%rsp)
|
||||
; X64-AVX512VL-NEXT: vmovdqa32 %xmm1, -{{[0-9]+}}(%rsp)
|
||||
; X64-AVX512VL-NEXT: vmovdqa %xmm1, -{{[0-9]+}}(%rsp)
|
||||
; X64-AVX512VL-NEXT: retq
|
||||
entry:
|
||||
%__a.addr.i = alloca <2 x i64>, align 16
|
||||
|
@ -1406,7 +1406,7 @@ define void @isel_crash_16w(i16* %cV_R.addr) {
|
|||
; X32-AVX512VL-NEXT: vmovaps %ymm0, (%esp)
|
||||
; X32-AVX512VL-NEXT: vpbroadcastw (%eax), %ymm1
|
||||
; X32-AVX512VL-NEXT: vmovaps %ymm0, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: vmovdqa32 %ymm1, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: vmovdqa %ymm1, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: movl %ebp, %esp
|
||||
; X32-AVX512VL-NEXT: popl %ebp
|
||||
; X32-AVX512VL-NEXT: retl
|
||||
|
@ -1429,7 +1429,7 @@ define void @isel_crash_16w(i16* %cV_R.addr) {
|
|||
; X64-AVX512VL-NEXT: vmovd %eax, %xmm1
|
||||
; X64-AVX512VL-NEXT: vpbroadcastw %xmm1, %ymm1
|
||||
; X64-AVX512VL-NEXT: vmovaps %ymm0, {{[0-9]+}}(%rsp)
|
||||
; X64-AVX512VL-NEXT: vmovdqa32 %ymm1, {{[0-9]+}}(%rsp)
|
||||
; X64-AVX512VL-NEXT: vmovdqa %ymm1, {{[0-9]+}}(%rsp)
|
||||
; X64-AVX512VL-NEXT: movq %rbp, %rsp
|
||||
; X64-AVX512VL-NEXT: popq %rbp
|
||||
; X64-AVX512VL-NEXT: retq
|
||||
|
@ -1650,7 +1650,7 @@ define void @isel_crash_2q(i64* %cV_R.addr) {
|
|||
; X32-AVX512VL-NEXT: vpinsrd $2, %ecx, %xmm1, %xmm1
|
||||
; X32-AVX512VL-NEXT: vpinsrd $3, %eax, %xmm1, %xmm1
|
||||
; X32-AVX512VL-NEXT: vmovaps %xmm0, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: vmovdqa32 %xmm1, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: vmovdqa %xmm1, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: addl $60, %esp
|
||||
; X32-AVX512VL-NEXT: retl
|
||||
;
|
||||
|
@ -1754,7 +1754,7 @@ define void @isel_crash_4q(i64* %cV_R.addr) {
|
|||
; X32-AVX512VL-NEXT: vpinsrd $3, %eax, %xmm1, %xmm1
|
||||
; X32-AVX512VL-NEXT: vinserti32x4 $1, %xmm1, %ymm1, %ymm1
|
||||
; X32-AVX512VL-NEXT: vmovaps %ymm0, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: vmovdqa32 %ymm1, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: vmovdqa %ymm1, {{[0-9]+}}(%esp)
|
||||
; X32-AVX512VL-NEXT: movl %ebp, %esp
|
||||
; X32-AVX512VL-NEXT: popl %ebp
|
||||
; X32-AVX512VL-NEXT: retl
|
||||
|
|
|
@ -724,7 +724,7 @@ define <8 x double> @test_mask_vminpd(<8 x double> %dst, <8 x double> %i,
|
|||
;
|
||||
; AVX512VL-LABEL: test_mask_vminpd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpxord %ymm4, %ymm4, %ymm4
|
||||
; AVX512VL-NEXT: vpxor %ymm4, %ymm4, %ymm4
|
||||
; AVX512VL-NEXT: vpcmpneqd %ymm4, %ymm3, %k1
|
||||
; AVX512VL-NEXT: vminpd %zmm2, %zmm1, %zmm0 {%k1}
|
||||
; AVX512VL-NEXT: retq
|
||||
|
@ -747,7 +747,7 @@ define <8 x double> @test_mask_vminpd(<8 x double> %dst, <8 x double> %i,
|
|||
;
|
||||
; SKX-LABEL: test_mask_vminpd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %ymm4, %ymm4, %ymm4
|
||||
; SKX-NEXT: vpxor %ymm4, %ymm4, %ymm4
|
||||
; SKX-NEXT: vpcmpneqd %ymm4, %ymm3, %k1
|
||||
; SKX-NEXT: vminpd %zmm2, %zmm1, %zmm0 {%k1}
|
||||
; SKX-NEXT: retq
|
||||
|
@ -787,7 +787,7 @@ define <8 x double> @test_mask_vmaxpd(<8 x double> %dst, <8 x double> %i,
|
|||
;
|
||||
; AVX512VL-LABEL: test_mask_vmaxpd:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpxord %ymm4, %ymm4, %ymm4
|
||||
; AVX512VL-NEXT: vpxor %ymm4, %ymm4, %ymm4
|
||||
; AVX512VL-NEXT: vpcmpneqd %ymm4, %ymm3, %k1
|
||||
; AVX512VL-NEXT: vmaxpd %zmm2, %zmm1, %zmm0 {%k1}
|
||||
; AVX512VL-NEXT: retq
|
||||
|
@ -810,7 +810,7 @@ define <8 x double> @test_mask_vmaxpd(<8 x double> %dst, <8 x double> %i,
|
|||
;
|
||||
; SKX-LABEL: test_mask_vmaxpd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %ymm4, %ymm4, %ymm4
|
||||
; SKX-NEXT: vpxor %ymm4, %ymm4, %ymm4
|
||||
; SKX-NEXT: vpcmpneqd %ymm4, %ymm3, %k1
|
||||
; SKX-NEXT: vmaxpd %zmm2, %zmm1, %zmm0 {%k1}
|
||||
; SKX-NEXT: retq
|
||||
|
|
|
@ -1037,7 +1037,7 @@ define <8 x float> @uitofp_8i1_float(<8 x i32> %a) {
|
|||
;
|
||||
; SKX-LABEL: uitofp_8i1_float:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; SKX-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; SKX-NEXT: vpcmpgtd %ymm0, %ymm1, %k1
|
||||
; SKX-NEXT: vpbroadcastd {{.*}}(%rip), %ymm0 {%k1} {z}
|
||||
; SKX-NEXT: vcvtudq2ps %ymm0, %ymm0
|
||||
|
@ -1060,7 +1060,7 @@ define <8 x double> @uitofp_8i1_double(<8 x i32> %a) {
|
|||
;
|
||||
; SKX-LABEL: uitofp_8i1_double:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; SKX-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; SKX-NEXT: vpcmpgtd %ymm0, %ymm1, %k1
|
||||
; SKX-NEXT: vpbroadcastd {{.*}}(%rip), %ymm0 {%k1} {z}
|
||||
; SKX-NEXT: vcvtudq2pd %ymm0, %zmm0
|
||||
|
@ -1081,7 +1081,7 @@ define <4 x float> @uitofp_4i1_float(<4 x i32> %a) {
|
|||
;
|
||||
; SKX-LABEL: uitofp_4i1_float:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpcmpgtd %xmm0, %xmm1, %k1
|
||||
; SKX-NEXT: vpbroadcastd {{.*}}(%rip), %xmm0 {%k1} {z}
|
||||
; SKX-NEXT: vcvtudq2ps %xmm0, %xmm0
|
||||
|
@ -1102,7 +1102,7 @@ define <4 x double> @uitofp_4i1_double(<4 x i32> %a) {
|
|||
;
|
||||
; SKX-LABEL: uitofp_4i1_double:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpcmpgtd %xmm0, %xmm1, %k1
|
||||
; SKX-NEXT: vpbroadcastd {{.*}}(%rip), %xmm0 {%k1} {z}
|
||||
; SKX-NEXT: vcvtudq2pd %xmm0, %ymm0
|
||||
|
@ -1131,7 +1131,7 @@ define <2 x float> @uitofp_2i1_float(<2 x i32> %a) {
|
|||
;
|
||||
; SKX-LABEL: uitofp_2i1_float:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]
|
||||
; SKX-NEXT: vpcmpltuq %xmm1, %xmm0, %k1
|
||||
; SKX-NEXT: vpbroadcastd {{.*}}(%rip), %xmm0 {%k1} {z}
|
||||
|
@ -1155,7 +1155,7 @@ define <2 x double> @uitofp_2i1_double(<2 x i32> %a) {
|
|||
;
|
||||
; SKX-LABEL: uitofp_2i1_double:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]
|
||||
; SKX-NEXT: vpcmpltuq %xmm1, %xmm0, %k1
|
||||
; SKX-NEXT: vmovdqa64 {{.*}}(%rip), %xmm0 {%k1} {z}
|
||||
|
|
|
@ -1996,9 +1996,9 @@ define <4 x i32> @zext_4xi1_to_4x32(<4 x i8> %x, <4 x i8> %y) #0 {
|
|||
;
|
||||
; SKX-LABEL: zext_4xi1_to_4x32:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vmovdqa64 {{.*#+}} xmm2 = [255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0]
|
||||
; SKX-NEXT: vpandq %xmm2, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpandq %xmm2, %xmm0, %xmm0
|
||||
; SKX-NEXT: vmovdqa {{.*#+}} xmm2 = [255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0]
|
||||
; SKX-NEXT: vpand %xmm2, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; SKX-NEXT: vpcmpeqd %xmm1, %xmm0, %k1
|
||||
; SKX-NEXT: vpbroadcastd {{.*}}(%rip), %xmm0 {%k1} {z}
|
||||
; SKX-NEXT: retq
|
||||
|
@ -2019,9 +2019,9 @@ define <2 x i64> @zext_2xi1_to_2xi64(<2 x i8> %x, <2 x i8> %y) #0 {
|
|||
;
|
||||
; SKX-LABEL: zext_2xi1_to_2xi64:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vmovdqa64 {{.*#+}} xmm2 = [255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0]
|
||||
; SKX-NEXT: vpandq %xmm2, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpandq %xmm2, %xmm0, %xmm0
|
||||
; SKX-NEXT: vmovdqa {{.*#+}} xmm2 = [255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0]
|
||||
; SKX-NEXT: vpand %xmm2, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; SKX-NEXT: vpcmpeqq %xmm1, %xmm0, %k1
|
||||
; SKX-NEXT: vmovdqa64 {{.*}}(%rip), %xmm0 {%k1} {z}
|
||||
; SKX-NEXT: retq
|
||||
|
|
|
@ -332,7 +332,7 @@ define <4 x i64>@test_int_x86_avx512_gather3div4_di(<4 x i64> %x0, i8* %x1, <4 x
|
|||
; CHECK-LABEL: test_int_x86_avx512_gather3div4_di:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1
|
||||
; CHECK-NEXT: vmovdqa64 %ymm0, %ymm2
|
||||
; CHECK-NEXT: vmovdqa %ymm0, %ymm2
|
||||
; CHECK-NEXT: vpgatherqq (%rdi,%ymm1,8), %ymm2 {%k1}
|
||||
; CHECK-NEXT: kxnorw %k0, %k0, %k1
|
||||
; CHECK-NEXT: vpgatherqq (%rdi,%ymm1,8), %ymm0 {%k1}
|
||||
|
@ -369,7 +369,7 @@ define <4 x i32>@test_int_x86_avx512_gather3div4_si(<4 x i32> %x0, i8* %x1, <2 x
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1
|
||||
; CHECK-NEXT: kxnorw %k0, %k0, %k2
|
||||
; CHECK-NEXT: vmovdqa64 %xmm0, %xmm2
|
||||
; CHECK-NEXT: vmovdqa %xmm0, %xmm2
|
||||
; CHECK-NEXT: vpgatherqd (%rdi,%xmm1,4), %xmm2 {%k2}
|
||||
; CHECK-NEXT: vpgatherqd (%rdi,%xmm1,4), %xmm0 {%k1}
|
||||
; CHECK-NEXT: vpaddd %xmm0, %xmm2, %xmm0
|
||||
|
@ -404,7 +404,7 @@ define <4 x i32>@test_int_x86_avx512_gather3div8_si(<4 x i32> %x0, i8* %x1, <4 x
|
|||
; CHECK-LABEL: test_int_x86_avx512_gather3div8_si:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1
|
||||
; CHECK-NEXT: vmovdqa64 %xmm0, %xmm2
|
||||
; CHECK-NEXT: vmovdqa %xmm0, %xmm2
|
||||
; CHECK-NEXT: kmovq %k1, %k2
|
||||
; CHECK-NEXT: vpgatherqd (%rdi,%ymm1,4), %xmm2 {%k2}
|
||||
; CHECK-NEXT: vpgatherqd (%rdi,%ymm1,2), %xmm0 {%k1}
|
||||
|
@ -507,7 +507,7 @@ define <4 x i32>@test_int_x86_avx512_gather3siv4_si(<4 x i32> %x0, i8* %x1, <4 x
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1
|
||||
; CHECK-NEXT: kxnorw %k0, %k0, %k2
|
||||
; CHECK-NEXT: vmovdqa64 %xmm0, %xmm2
|
||||
; CHECK-NEXT: vmovdqa %xmm0, %xmm2
|
||||
; CHECK-NEXT: vpgatherdd (%rdi,%xmm1,4), %xmm2 {%k2}
|
||||
; CHECK-NEXT: vpgatherdd (%rdi,%xmm1,2), %xmm0 {%k1}
|
||||
; CHECK-NEXT: vpaddd %xmm0, %xmm2, %xmm0
|
||||
|
@ -542,7 +542,7 @@ define <8 x i32>@test_int_x86_avx512_gather3siv8_si(<8 x i32> %x0, i8* %x1, <8 x
|
|||
; CHECK-LABEL: test_int_x86_avx512_gather3siv8_si:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1
|
||||
; CHECK-NEXT: vmovdqa64 %ymm0, %ymm2
|
||||
; CHECK-NEXT: vmovdqa %ymm0, %ymm2
|
||||
; CHECK-NEXT: kmovq %k1, %k2
|
||||
; CHECK-NEXT: vpgatherdd (%rdi,%ymm1,4), %ymm2 {%k2}
|
||||
; CHECK-NEXT: vpgatherdd (%rdi,%ymm1,2), %ymm0 {%k1}
|
||||
|
|
|
@ -544,7 +544,7 @@ define <64 x i8> @test16(i64 %x) {
|
|||
; SKX-NEXT: vpmovm2b %k1, %zmm0
|
||||
; SKX-NEXT: vpsllq $40, %xmm0, %xmm0
|
||||
; SKX-NEXT: vpmovm2b %k0, %zmm1
|
||||
; SKX-NEXT: vmovdqu8 {{.*#+}} ymm2 = [255,255,255,255,255,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]
|
||||
; SKX-NEXT: vmovdqu {{.*#+}} ymm2 = [255,255,255,255,255,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]
|
||||
; SKX-NEXT: vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
|
||||
; SKX-NEXT: vextracti64x4 $1, %zmm1, %ymm1
|
||||
; SKX-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
|
||||
|
@ -612,7 +612,7 @@ define <64 x i8> @test17(i64 %x, i32 %y, i32 %z) {
|
|||
; SKX-NEXT: vpmovm2b %k1, %zmm0
|
||||
; SKX-NEXT: vpsllq $40, %xmm0, %xmm0
|
||||
; SKX-NEXT: vpmovm2b %k0, %zmm1
|
||||
; SKX-NEXT: vmovdqu8 {{.*#+}} ymm2 = [255,255,255,255,255,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]
|
||||
; SKX-NEXT: vmovdqu {{.*#+}} ymm2 = [255,255,255,255,255,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]
|
||||
; SKX-NEXT: vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
|
||||
; SKX-NEXT: vextracti64x4 $1, %zmm1, %ymm1
|
||||
; SKX-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
|
||||
|
|
|
@ -21,7 +21,7 @@ define <32 x i8> @test_mask_load_32xi8(<32 x i1> %mask, <32 x i8>* %addr, <32 x
|
|||
; CHECK-NEXT: vpsllw $7, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vpmovb2m %ymm0, %k1
|
||||
; CHECK-NEXT: vmovdqu8 (%rdi), %ymm1 {%k1}
|
||||
; CHECK-NEXT: vmovdqa64 %ymm1, %ymm0
|
||||
; CHECK-NEXT: vmovdqa %ymm1, %ymm0
|
||||
; CHECK-NEXT: retq
|
||||
%res = call <32 x i8> @llvm.masked.load.v32i8.p0v32i8(<32 x i8>* %addr, i32 4, <32 x i1>%mask, <32 x i8> %val)
|
||||
ret <32 x i8> %res
|
||||
|
|
|
@ -13,7 +13,7 @@ define i32 @test1(float %x) {
|
|||
define <4 x i32> @test2(i32 %x) {
|
||||
; CHECK-LABEL: test2:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovd %edi, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc7]
|
||||
; CHECK-NEXT: vmovd %edi, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6e,0xc7]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = insertelement <4 x i32>undef, i32 %x, i32 0
|
||||
ret <4 x i32>%res
|
||||
|
@ -22,7 +22,7 @@ define <4 x i32> @test2(i32 %x) {
|
|||
define <2 x i64> @test3(i64 %x) {
|
||||
; CHECK-LABEL: test3:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovq %rdi, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x6e,0xc7]
|
||||
; CHECK-NEXT: vmovq %rdi, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe1,0xf9,0x6e,0xc7]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = insertelement <2 x i64>undef, i64 %x, i32 0
|
||||
ret <2 x i64>%res
|
||||
|
@ -31,7 +31,7 @@ define <2 x i64> @test3(i64 %x) {
|
|||
define <4 x i32> @test4(i32* %x) {
|
||||
; CHECK-LABEL: test4:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovss (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7e,0x08,0x10,0x07]
|
||||
; CHECK-NEXT: vmovss (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07]
|
||||
; CHECK-NEXT: ## xmm0 = mem[0],zero,zero,zero
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%y = load i32, i32* %x
|
||||
|
@ -42,7 +42,7 @@ define <4 x i32> @test4(i32* %x) {
|
|||
define void @test5(float %x, float* %y) {
|
||||
; CHECK-LABEL: test5:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovss %xmm0, (%rdi) ## encoding: [0x62,0xf1,0x7e,0x08,0x11,0x07]
|
||||
; CHECK-NEXT: vmovss %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x11,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
store float %x, float* %y, align 4
|
||||
ret void
|
||||
|
@ -51,7 +51,7 @@ define void @test5(float %x, float* %y) {
|
|||
define void @test6(double %x, double* %y) {
|
||||
; CHECK-LABEL: test6:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovsd %xmm0, (%rdi) ## encoding: [0x62,0xf1,0xff,0x08,0x11,0x07]
|
||||
; CHECK-NEXT: vmovsd %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0x11,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
store double %x, double* %y, align 8
|
||||
ret void
|
||||
|
@ -60,7 +60,7 @@ define void @test6(double %x, double* %y) {
|
|||
define float @test7(i32* %x) {
|
||||
; CHECK-LABEL: test7:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovss (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7e,0x08,0x10,0x07]
|
||||
; CHECK-NEXT: vmovss (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07]
|
||||
; CHECK-NEXT: ## xmm0 = mem[0],zero,zero,zero
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%y = load i32, i32* %x
|
||||
|
@ -71,7 +71,7 @@ define float @test7(i32* %x) {
|
|||
define i32 @test8(<4 x i32> %x) {
|
||||
; CHECK-LABEL: test8:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovd %xmm0, %eax ## encoding: [0x62,0xf1,0x7d,0x08,0x7e,0xc0]
|
||||
; CHECK-NEXT: vmovd %xmm0, %eax ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x7e,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = extractelement <4 x i32> %x, i32 0
|
||||
ret i32 %res
|
||||
|
@ -80,7 +80,7 @@ define i32 @test8(<4 x i32> %x) {
|
|||
define i64 @test9(<2 x i64> %x) {
|
||||
; CHECK-LABEL: test9:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovq %xmm0, %rax ## encoding: [0x62,0xf1,0xfd,0x08,0x7e,0xc0]
|
||||
; CHECK-NEXT: vmovq %xmm0, %rax ## EVEX TO VEX Compression encoding: [0xc4,0xe1,0xf9,0x7e,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = extractelement <2 x i64> %x, i32 0
|
||||
ret i64 %res
|
||||
|
@ -89,7 +89,7 @@ define i64 @test9(<2 x i64> %x) {
|
|||
define <4 x i32> @test10(i32* %x) {
|
||||
; CHECK-LABEL: test10:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovss (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7e,0x08,0x10,0x07]
|
||||
; CHECK-NEXT: vmovss (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07]
|
||||
; CHECK-NEXT: ## xmm0 = mem[0],zero,zero,zero
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%y = load i32, i32* %x, align 4
|
||||
|
@ -100,7 +100,7 @@ define <4 x i32> @test10(i32* %x) {
|
|||
define <4 x float> @test11(float* %x) {
|
||||
; CHECK-LABEL: test11:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovss (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7e,0x08,0x10,0x07]
|
||||
; CHECK-NEXT: vmovss (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07]
|
||||
; CHECK-NEXT: ## xmm0 = mem[0],zero,zero,zero
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%y = load float, float* %x, align 4
|
||||
|
@ -111,7 +111,7 @@ define <4 x float> @test11(float* %x) {
|
|||
define <2 x double> @test12(double* %x) {
|
||||
; CHECK-LABEL: test12:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovsd (%rdi), %xmm0 ## encoding: [0x62,0xf1,0xff,0x08,0x10,0x07]
|
||||
; CHECK-NEXT: vmovsd (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0x10,0x07]
|
||||
; CHECK-NEXT: ## xmm0 = mem[0],zero
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%y = load double, double* %x, align 8
|
||||
|
@ -122,7 +122,7 @@ define <2 x double> @test12(double* %x) {
|
|||
define <2 x i64> @test13(i64 %x) {
|
||||
; CHECK-LABEL: test13:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovq %rdi, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x6e,0xc7]
|
||||
; CHECK-NEXT: vmovq %rdi, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe1,0xf9,0x6e,0xc7]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = insertelement <2 x i64>zeroinitializer, i64 %x, i32 0
|
||||
ret <2 x i64>%res
|
||||
|
@ -131,7 +131,7 @@ define <2 x i64> @test13(i64 %x) {
|
|||
define <4 x i32> @test14(i32 %x) {
|
||||
; CHECK-LABEL: test14:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovd %edi, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6e,0xc7]
|
||||
; CHECK-NEXT: vmovd %edi, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6e,0xc7]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = insertelement <4 x i32>zeroinitializer, i32 %x, i32 0
|
||||
ret <4 x i32>%res
|
||||
|
@ -140,7 +140,7 @@ define <4 x i32> @test14(i32 %x) {
|
|||
define <4 x i32> @test15(i32* %x) {
|
||||
; CHECK-LABEL: test15:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovss (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7e,0x08,0x10,0x07]
|
||||
; CHECK-NEXT: vmovss (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07]
|
||||
; CHECK-NEXT: ## xmm0 = mem[0],zero,zero,zero
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%y = load i32, i32* %x, align 4
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=corei7-avx --show-mc-encoding | FileCheck %s --check-prefix AVX
|
||||
|
||||
; AVX512-LABEL: @test_fdiv
|
||||
; AVX512: vdivss %xmm{{.*}} ## encoding: [0x62
|
||||
; AVX512: vdivss %xmm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
; AVX-LABEL: @test_fdiv
|
||||
; AVX: vdivss %xmm{{.*}} ## encoding: [0xc5
|
||||
|
||||
|
@ -13,7 +13,7 @@ define float @test_fdiv(float %a, float %b) {
|
|||
}
|
||||
|
||||
; AVX512-LABEL: @test_fsub
|
||||
; AVX512: vsubss %xmm{{.*}} ## encoding: [0x62
|
||||
; AVX512: vsubss %xmm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
; AVX-LABEL: @test_fsub
|
||||
; AVX: vsubss %xmm{{.*}} ## encoding: [0xc5
|
||||
|
||||
|
@ -23,7 +23,7 @@ define float @test_fsub(float %a, float %b) {
|
|||
}
|
||||
|
||||
; AVX512-LABEL: @test_fadd
|
||||
; AVX512: vaddsd %xmm{{.*}} ## encoding: [0x62
|
||||
; AVX512: vaddsd %xmm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
; AVX-LABEL: @test_fadd
|
||||
; AVX: vaddsd %xmm{{.*}} ## encoding: [0xc5
|
||||
|
||||
|
@ -50,7 +50,7 @@ define float @test_trunc(float %a) {
|
|||
}
|
||||
|
||||
; AVX512-LABEL: @test_sqrt
|
||||
; AVX512: vsqrtsd %xmm{{.*}} ## encoding: [0x62
|
||||
; AVX512: vsqrtsd %xmm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
; AVX-LABEL: @test_sqrt
|
||||
; AVX: vsqrtsd %xmm{{.*}} ## encoding: [0xc5
|
||||
|
||||
|
@ -70,7 +70,7 @@ define float @test_rint(float %a) {
|
|||
}
|
||||
|
||||
; AVX512-LABEL: @test_vmax
|
||||
; AVX512: vmaxss %xmm{{.*}} ## encoding: [0x62
|
||||
; AVX512: vmaxss %xmm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
; AVX-LABEL: @test_vmax
|
||||
; AVX: vmaxss %xmm{{.*}} ## encoding: [0xc5
|
||||
|
||||
|
@ -92,7 +92,7 @@ define float @test_mov(float %a, float %b, float %i, float %j) {
|
|||
}
|
||||
|
||||
; AVX512-SKX-LABEL: @zero_float
|
||||
; AVX512-SKX: vxorps %xmm{{.*}}, %xmm{{.*}}, %xmm{{.*}} ## encoding: [0x62,
|
||||
; AVX512-SKX: vxorps %xmm{{.*}}, %xmm{{.*}}, %xmm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
; AVX512-KNL-LABEL: @zero_float
|
||||
; AVX512-KNL: vxorps %xmm{{.*}}, %xmm{{.*}}, %xmm{{.*}} ## encoding: [0xc5,
|
||||
; AVX-LABEL: @zero_float
|
||||
|
@ -104,7 +104,7 @@ define float @zero_float(float %a) {
|
|||
}
|
||||
|
||||
; AVX512-SKX-LABEL: @zero_double
|
||||
; AVX512-SKX: vxorpd %xmm{{.*}}, %xmm{{.*}}, %xmm{{.*}} ## encoding: [0x62,
|
||||
; AVX512-SKX: vxorpd %xmm{{.*}}, %xmm{{.*}}, %xmm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
; AVX512-KNL-LABEL: @zero_double
|
||||
; AVX512-KNL: vxorpd %xmm{{.*}}, %xmm{{.*}}, %xmm{{.*}} ## encoding: [0xc5,
|
||||
; AVX-LABEL: @zero_double
|
||||
|
|
|
@ -234,23 +234,23 @@ define <64 x i8> @test_broadcast_16i8_64i8(<16 x i8> *%p) nounwind {
|
|||
define <8 x i32> @PR29088(<4 x i32>* %p0, <8 x float>* %p1) {
|
||||
; X64-AVX512VL-LABEL: PR29088:
|
||||
; X64-AVX512VL: ## BB#0:
|
||||
; X64-AVX512VL-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512VL-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; X64-AVX512VL-NEXT: vmovdqa32 %ymm1, (%rsi)
|
||||
; X64-AVX512VL-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512VL-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; X64-AVX512VL-NEXT: vmovdqa %ymm1, (%rsi)
|
||||
; X64-AVX512VL-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512VL-NEXT: retq
|
||||
;
|
||||
; X64-AVX512BWVL-LABEL: PR29088:
|
||||
; X64-AVX512BWVL: ## BB#0:
|
||||
; X64-AVX512BWVL-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512BWVL-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; X64-AVX512BWVL-NEXT: vmovdqa32 %ymm1, (%rsi)
|
||||
; X64-AVX512BWVL-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512BWVL-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; X64-AVX512BWVL-NEXT: vmovdqa %ymm1, (%rsi)
|
||||
; X64-AVX512BWVL-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512BWVL-NEXT: retq
|
||||
;
|
||||
; X64-AVX512DQVL-LABEL: PR29088:
|
||||
; X64-AVX512DQVL: ## BB#0:
|
||||
; X64-AVX512DQVL-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512DQVL-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512DQVL-NEXT: vxorps %ymm1, %ymm1, %ymm1
|
||||
; X64-AVX512DQVL-NEXT: vmovaps %ymm1, (%rsi)
|
||||
; X64-AVX512DQVL-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
|
|
|
@ -78,7 +78,7 @@ define <16 x i32> @test_broadcast_8i32_16i32(<8 x i32> *%p) nounwind {
|
|||
define <32 x i16> @test_broadcast_16i16_32i16(<16 x i16> *%p) nounwind {
|
||||
; X64-AVX512VL-LABEL: test_broadcast_16i16_32i16:
|
||||
; X64-AVX512VL: ## BB#0:
|
||||
; X64-AVX512VL-NEXT: vmovdqa64 (%rdi), %ymm1
|
||||
; X64-AVX512VL-NEXT: vmovdqa (%rdi), %ymm1
|
||||
; X64-AVX512VL-NEXT: vpaddw {{.*}}(%rip), %ymm1, %ymm0
|
||||
; X64-AVX512VL-NEXT: vpaddw {{.*}}(%rip), %ymm1, %ymm1
|
||||
; X64-AVX512VL-NEXT: retq
|
||||
|
@ -91,7 +91,7 @@ define <32 x i16> @test_broadcast_16i16_32i16(<16 x i16> *%p) nounwind {
|
|||
;
|
||||
; X64-AVX512DQVL-LABEL: test_broadcast_16i16_32i16:
|
||||
; X64-AVX512DQVL: ## BB#0:
|
||||
; X64-AVX512DQVL-NEXT: vmovdqa64 (%rdi), %ymm1
|
||||
; X64-AVX512DQVL-NEXT: vmovdqa (%rdi), %ymm1
|
||||
; X64-AVX512DQVL-NEXT: vpaddw {{.*}}(%rip), %ymm1, %ymm0
|
||||
; X64-AVX512DQVL-NEXT: vpaddw {{.*}}(%rip), %ymm1, %ymm1
|
||||
; X64-AVX512DQVL-NEXT: retq
|
||||
|
@ -104,7 +104,7 @@ define <32 x i16> @test_broadcast_16i16_32i16(<16 x i16> *%p) nounwind {
|
|||
define <64 x i8> @test_broadcast_32i8_64i8(<32 x i8> *%p) nounwind {
|
||||
; X64-AVX512VL-LABEL: test_broadcast_32i8_64i8:
|
||||
; X64-AVX512VL: ## BB#0:
|
||||
; X64-AVX512VL-NEXT: vmovdqa64 (%rdi), %ymm1
|
||||
; X64-AVX512VL-NEXT: vmovdqa (%rdi), %ymm1
|
||||
; X64-AVX512VL-NEXT: vpaddb {{.*}}(%rip), %ymm1, %ymm0
|
||||
; X64-AVX512VL-NEXT: vpaddb {{.*}}(%rip), %ymm1, %ymm1
|
||||
; X64-AVX512VL-NEXT: retq
|
||||
|
@ -117,7 +117,7 @@ define <64 x i8> @test_broadcast_32i8_64i8(<32 x i8> *%p) nounwind {
|
|||
;
|
||||
; X64-AVX512DQVL-LABEL: test_broadcast_32i8_64i8:
|
||||
; X64-AVX512DQVL: ## BB#0:
|
||||
; X64-AVX512DQVL-NEXT: vmovdqa64 (%rdi), %ymm1
|
||||
; X64-AVX512DQVL-NEXT: vmovdqa (%rdi), %ymm1
|
||||
; X64-AVX512DQVL-NEXT: vpaddb {{.*}}(%rip), %ymm1, %ymm0
|
||||
; X64-AVX512DQVL-NEXT: vpaddb {{.*}}(%rip), %ymm1, %ymm1
|
||||
; X64-AVX512DQVL-NEXT: retq
|
||||
|
|
|
@ -1190,7 +1190,7 @@ define <4 x i32> @test44(<4 x i16> %x, <4 x i16> %y) #0 {
|
|||
;
|
||||
; SKX-LABEL: test44:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2],xmm2[3],xmm1[4],xmm2[5],xmm1[6],xmm2[7]
|
||||
; SKX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2],xmm2[3],xmm0[4],xmm2[5],xmm0[6],xmm2[7]
|
||||
; SKX-NEXT: vpcmpeqd %xmm1, %xmm0, %k0
|
||||
|
@ -1213,7 +1213,7 @@ define <2 x i64> @test45(<2 x i16> %x, <2 x i16> %y) #0 {
|
|||
;
|
||||
; SKX-LABEL: test45:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0],xmm2[1,2,3],xmm1[4],xmm2[5,6,7]
|
||||
; SKX-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm2[1,2,3],xmm0[4],xmm2[5,6,7]
|
||||
; SKX-NEXT: vpcmpeqq %xmm1, %xmm0, %k1
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -4,7 +4,7 @@
|
|||
define <32 x i8> @test_256_1(i8 * %addr) {
|
||||
; CHECK-LABEL: test_256_1:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovdqu8 (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7f,0x28,0x6f,0x07]
|
||||
; CHECK-NEXT: vmovdqu (%rdi), %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfe,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <32 x i8>*
|
||||
%res = load <32 x i8>, <32 x i8>* %vaddr, align 1
|
||||
|
@ -14,7 +14,7 @@ define <32 x i8> @test_256_1(i8 * %addr) {
|
|||
define void @test_256_2(i8 * %addr, <32 x i8> %data) {
|
||||
; CHECK-LABEL: test_256_2:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovdqu8 %ymm0, (%rdi) ## encoding: [0x62,0xf1,0x7f,0x28,0x7f,0x07]
|
||||
; CHECK-NEXT: vmovdqu %ymm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfe,0x7f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <32 x i8>*
|
||||
store <32 x i8>%data, <32 x i8>* %vaddr, align 1
|
||||
|
@ -24,7 +24,7 @@ define void @test_256_2(i8 * %addr, <32 x i8> %data) {
|
|||
define <32 x i8> @test_256_3(i8 * %addr, <32 x i8> %old, <32 x i8> %mask1) {
|
||||
; CHECK-LABEL: test_256_3:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2 ## encoding: [0x62,0xf1,0x6d,0x28,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqb %ymm2, %ymm1, %k1 ## encoding: [0x62,0xf3,0x75,0x28,0x3f,0xca,0x04]
|
||||
; CHECK-NEXT: vpblendmb (%rdi), %ymm0, %ymm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x66,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -38,7 +38,7 @@ define <32 x i8> @test_256_3(i8 * %addr, <32 x i8> %old, <32 x i8> %mask1) {
|
|||
define <32 x i8> @test_256_4(i8 * %addr, <32 x i8> %mask1) {
|
||||
; CHECK-LABEL: test_256_4:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm1, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %ymm1, %ymm1, %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqb %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf3,0x7d,0x28,0x3f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovdqu8 (%rdi), %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7f,0xa9,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -52,7 +52,7 @@ define <32 x i8> @test_256_4(i8 * %addr, <32 x i8> %mask1) {
|
|||
define <16 x i16> @test_256_5(i8 * %addr) {
|
||||
; CHECK-LABEL: test_256_5:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovdqu16 (%rdi), %ymm0 ## encoding: [0x62,0xf1,0xff,0x28,0x6f,0x07]
|
||||
; CHECK-NEXT: vmovdqu (%rdi), %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfe,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <16 x i16>*
|
||||
%res = load <16 x i16>, <16 x i16>* %vaddr, align 1
|
||||
|
@ -62,7 +62,7 @@ define <16 x i16> @test_256_5(i8 * %addr) {
|
|||
define void @test_256_6(i8 * %addr, <16 x i16> %data) {
|
||||
; CHECK-LABEL: test_256_6:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovdqu16 %ymm0, (%rdi) ## encoding: [0x62,0xf1,0xff,0x28,0x7f,0x07]
|
||||
; CHECK-NEXT: vmovdqu %ymm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfe,0x7f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <16 x i16>*
|
||||
store <16 x i16>%data, <16 x i16>* %vaddr, align 1
|
||||
|
@ -72,7 +72,7 @@ define void @test_256_6(i8 * %addr, <16 x i16> %data) {
|
|||
define <16 x i16> @test_256_7(i8 * %addr, <16 x i16> %old, <16 x i16> %mask1) {
|
||||
; CHECK-LABEL: test_256_7:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2 ## encoding: [0x62,0xf1,0x6d,0x28,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqw %ymm2, %ymm1, %k1 ## encoding: [0x62,0xf3,0xf5,0x28,0x3f,0xca,0x04]
|
||||
; CHECK-NEXT: vpblendmw (%rdi), %ymm0, %ymm0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x66,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -86,7 +86,7 @@ define <16 x i16> @test_256_7(i8 * %addr, <16 x i16> %old, <16 x i16> %mask1) {
|
|||
define <16 x i16> @test_256_8(i8 * %addr, <16 x i16> %mask1) {
|
||||
; CHECK-LABEL: test_256_8:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm1, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %ymm1, %ymm1, %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqw %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x28,0x3f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovdqu16 (%rdi), %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0xff,0xa9,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -100,7 +100,7 @@ define <16 x i16> @test_256_8(i8 * %addr, <16 x i16> %mask1) {
|
|||
define <16 x i8> @test_128_1(i8 * %addr) {
|
||||
; CHECK-LABEL: test_128_1:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovdqu8 (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7f,0x08,0x6f,0x07]
|
||||
; CHECK-NEXT: vmovdqu (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <16 x i8>*
|
||||
%res = load <16 x i8>, <16 x i8>* %vaddr, align 1
|
||||
|
@ -110,7 +110,7 @@ define <16 x i8> @test_128_1(i8 * %addr) {
|
|||
define void @test_128_2(i8 * %addr, <16 x i8> %data) {
|
||||
; CHECK-LABEL: test_128_2:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovdqu8 %xmm0, (%rdi) ## encoding: [0x62,0xf1,0x7f,0x08,0x7f,0x07]
|
||||
; CHECK-NEXT: vmovdqu %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x7f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <16 x i8>*
|
||||
store <16 x i8>%data, <16 x i8>* %vaddr, align 1
|
||||
|
@ -120,7 +120,7 @@ define void @test_128_2(i8 * %addr, <16 x i8> %data) {
|
|||
define <16 x i8> @test_128_3(i8 * %addr, <16 x i8> %old, <16 x i8> %mask1) {
|
||||
; CHECK-LABEL: test_128_3:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2 ## encoding: [0x62,0xf1,0x6d,0x08,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqb %xmm2, %xmm1, %k1 ## encoding: [0x62,0xf3,0x75,0x08,0x3f,0xca,0x04]
|
||||
; CHECK-NEXT: vpblendmb (%rdi), %xmm0, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x66,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -134,7 +134,7 @@ define <16 x i8> @test_128_3(i8 * %addr, <16 x i8> %old, <16 x i8> %mask1) {
|
|||
define <16 x i8> @test_128_4(i8 * %addr, <16 x i8> %mask1) {
|
||||
; CHECK-LABEL: test_128_4:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm1, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqb %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0x7d,0x08,0x3f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovdqu8 (%rdi), %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7f,0x89,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -148,7 +148,7 @@ define <16 x i8> @test_128_4(i8 * %addr, <16 x i8> %mask1) {
|
|||
define <8 x i16> @test_128_5(i8 * %addr) {
|
||||
; CHECK-LABEL: test_128_5:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovdqu16 (%rdi), %xmm0 ## encoding: [0x62,0xf1,0xff,0x08,0x6f,0x07]
|
||||
; CHECK-NEXT: vmovdqu (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <8 x i16>*
|
||||
%res = load <8 x i16>, <8 x i16>* %vaddr, align 1
|
||||
|
@ -158,7 +158,7 @@ define <8 x i16> @test_128_5(i8 * %addr) {
|
|||
define void @test_128_6(i8 * %addr, <8 x i16> %data) {
|
||||
; CHECK-LABEL: test_128_6:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovdqu16 %xmm0, (%rdi) ## encoding: [0x62,0xf1,0xff,0x08,0x7f,0x07]
|
||||
; CHECK-NEXT: vmovdqu %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x7f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <8 x i16>*
|
||||
store <8 x i16>%data, <8 x i16>* %vaddr, align 1
|
||||
|
@ -168,7 +168,7 @@ define void @test_128_6(i8 * %addr, <8 x i16> %data) {
|
|||
define <8 x i16> @test_128_7(i8 * %addr, <8 x i16> %old, <8 x i16> %mask1) {
|
||||
; CHECK-LABEL: test_128_7:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2 ## encoding: [0x62,0xf1,0x6d,0x08,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqw %xmm2, %xmm1, %k1 ## encoding: [0x62,0xf3,0xf5,0x08,0x3f,0xca,0x04]
|
||||
; CHECK-NEXT: vpblendmw (%rdi), %xmm0, %xmm0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x66,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -182,7 +182,7 @@ define <8 x i16> @test_128_7(i8 * %addr, <8 x i16> %old, <8 x i16> %mask1) {
|
|||
define <8 x i16> @test_128_8(i8 * %addr, <8 x i16> %mask1) {
|
||||
; CHECK-LABEL: test_128_8:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm1, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqw %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x08,0x3f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovdqu16 (%rdi), %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xff,0x89,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
define <4 x float> @test_mask_andnot_ps_rr_128(<4 x float> %a, <4 x float> %b) {
|
||||
; CHECK-LABEL: test_mask_andnot_ps_rr_128:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vandnps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x55,0xc1]
|
||||
; CHECK-NEXT: vandnps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x55,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1)
|
||||
ret <4 x float> %res
|
||||
|
@ -15,7 +15,7 @@ define <4 x float> @test_mask_andnot_ps_rrk_128(<4 x float> %a, <4 x float> %b,
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vandnps %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x55,0xd1]
|
||||
; CHECK-NEXT: vmovaps %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0xc2]
|
||||
; CHECK-NEXT: vmovaps %xmm2, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0xc2]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask)
|
||||
ret <4 x float> %res
|
||||
|
@ -34,7 +34,7 @@ define <4 x float> @test_mask_andnot_ps_rrkz_128(<4 x float> %a, <4 x float> %b,
|
|||
define <4 x float> @test_mask_andnot_ps_rm_128(<4 x float> %a, <4 x float>* %ptr_b) {
|
||||
; CHECK-LABEL: test_mask_andnot_ps_rm_128:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vandnps (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x55,0x07]
|
||||
; CHECK-NEXT: vandnps (%rdi), %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x55,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <4 x float>, <4 x float>* %ptr_b
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1)
|
||||
|
@ -46,7 +46,7 @@ define <4 x float> @test_mask_andnot_ps_rmk_128(<4 x float> %a, <4 x float>* %pt
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vandnps (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x55,0x0f]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <4 x float>, <4 x float>* %ptr_b
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask)
|
||||
|
@ -81,7 +81,7 @@ define <4 x float> @test_mask_andnot_ps_rmbk_128(<4 x float> %a, float* %ptr_b,
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vandnps (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x19,0x55,0x0f]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%q = load float, float* %ptr_b
|
||||
%vecinit.i = insertelement <4 x float> undef, float %q, i32 0
|
||||
|
@ -108,7 +108,7 @@ declare <4 x float> @llvm.x86.avx512.mask.andn.ps.128(<4 x float>, <4 x float>,
|
|||
define <8 x float> @test_mask_andnot_ps_rr_256(<8 x float> %a, <8 x float> %b) {
|
||||
; CHECK-LABEL: test_mask_andnot_ps_rr_256:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vandnps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x55,0xc1]
|
||||
; CHECK-NEXT: vandnps %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x55,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1)
|
||||
ret <8 x float> %res
|
||||
|
@ -119,7 +119,7 @@ define <8 x float> @test_mask_andnot_ps_rrk_256(<8 x float> %a, <8 x float> %b,
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vandnps %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x55,0xd1]
|
||||
; CHECK-NEXT: vmovaps %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xc2]
|
||||
; CHECK-NEXT: vmovaps %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xc2]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask)
|
||||
ret <8 x float> %res
|
||||
|
@ -138,7 +138,7 @@ define <8 x float> @test_mask_andnot_ps_rrkz_256(<8 x float> %a, <8 x float> %b,
|
|||
define <8 x float> @test_mask_andnot_ps_rm_256(<8 x float> %a, <8 x float>* %ptr_b) {
|
||||
; CHECK-LABEL: test_mask_andnot_ps_rm_256:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vandnps (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x55,0x07]
|
||||
; CHECK-NEXT: vandnps (%rdi), %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x55,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <8 x float>, <8 x float>* %ptr_b
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1)
|
||||
|
@ -150,7 +150,7 @@ define <8 x float> @test_mask_andnot_ps_rmk_256(<8 x float> %a, <8 x float>* %pt
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vandnps (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x55,0x0f]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <8 x float>, <8 x float>* %ptr_b
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.andn.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask)
|
||||
|
@ -185,7 +185,7 @@ define <8 x float> @test_mask_andnot_ps_rmbk_256(<8 x float> %a, float* %ptr_b,
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vandnps (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x39,0x55,0x0f]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%q = load float, float* %ptr_b
|
||||
%vecinit.i = insertelement <8 x float> undef, float %q, i32 0
|
||||
|
@ -316,7 +316,7 @@ declare <16 x float> @llvm.x86.avx512.mask.andn.ps.512(<16 x float>, <16 x float
|
|||
define <4 x float> @test_mask_and_ps_rr_128(<4 x float> %a, <4 x float> %b) {
|
||||
; CHECK-LABEL: test_mask_and_ps_rr_128:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vandps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x54,0xc1]
|
||||
; CHECK-NEXT: vandps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x54,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1)
|
||||
ret <4 x float> %res
|
||||
|
@ -327,7 +327,7 @@ define <4 x float> @test_mask_and_ps_rrk_128(<4 x float> %a, <4 x float> %b, <4
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vandps %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x54,0xd1]
|
||||
; CHECK-NEXT: vmovaps %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0xc2]
|
||||
; CHECK-NEXT: vmovaps %xmm2, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0xc2]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask)
|
||||
ret <4 x float> %res
|
||||
|
@ -346,7 +346,7 @@ define <4 x float> @test_mask_and_ps_rrkz_128(<4 x float> %a, <4 x float> %b, i8
|
|||
define <4 x float> @test_mask_and_ps_rm_128(<4 x float> %a, <4 x float>* %ptr_b) {
|
||||
; CHECK-LABEL: test_mask_and_ps_rm_128:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vandps (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x54,0x07]
|
||||
; CHECK-NEXT: vandps (%rdi), %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x54,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <4 x float>, <4 x float>* %ptr_b
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1)
|
||||
|
@ -358,7 +358,7 @@ define <4 x float> @test_mask_and_ps_rmk_128(<4 x float> %a, <4 x float>* %ptr_b
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vandps (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x54,0x0f]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <4 x float>, <4 x float>* %ptr_b
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask)
|
||||
|
@ -393,7 +393,7 @@ define <4 x float> @test_mask_and_ps_rmbk_128(<4 x float> %a, float* %ptr_b, <4
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vandps (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x19,0x54,0x0f]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%q = load float, float* %ptr_b
|
||||
%vecinit.i = insertelement <4 x float> undef, float %q, i32 0
|
||||
|
@ -420,7 +420,7 @@ declare <4 x float> @llvm.x86.avx512.mask.and.ps.128(<4 x float>, <4 x float>, <
|
|||
define <8 x float> @test_mask_and_ps_rr_256(<8 x float> %a, <8 x float> %b) {
|
||||
; CHECK-LABEL: test_mask_and_ps_rr_256:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vandps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x54,0xc1]
|
||||
; CHECK-NEXT: vandps %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x54,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1)
|
||||
ret <8 x float> %res
|
||||
|
@ -431,7 +431,7 @@ define <8 x float> @test_mask_and_ps_rrk_256(<8 x float> %a, <8 x float> %b, <8
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vandps %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x54,0xd1]
|
||||
; CHECK-NEXT: vmovaps %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xc2]
|
||||
; CHECK-NEXT: vmovaps %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xc2]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask)
|
||||
ret <8 x float> %res
|
||||
|
@ -450,7 +450,7 @@ define <8 x float> @test_mask_and_ps_rrkz_256(<8 x float> %a, <8 x float> %b, i8
|
|||
define <8 x float> @test_mask_and_ps_rm_256(<8 x float> %a, <8 x float>* %ptr_b) {
|
||||
; CHECK-LABEL: test_mask_and_ps_rm_256:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vandps (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x54,0x07]
|
||||
; CHECK-NEXT: vandps (%rdi), %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x54,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <8 x float>, <8 x float>* %ptr_b
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1)
|
||||
|
@ -462,7 +462,7 @@ define <8 x float> @test_mask_and_ps_rmk_256(<8 x float> %a, <8 x float>* %ptr_b
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vandps (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x54,0x0f]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <8 x float>, <8 x float>* %ptr_b
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.and.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask)
|
||||
|
@ -497,7 +497,7 @@ define <8 x float> @test_mask_and_ps_rmbk_256(<8 x float> %a, float* %ptr_b, <8
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vandps (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x39,0x54,0x0f]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%q = load float, float* %ptr_b
|
||||
%vecinit.i = insertelement <8 x float> undef, float %q, i32 0
|
||||
|
@ -628,7 +628,7 @@ declare <16 x float> @llvm.x86.avx512.mask.and.ps.512(<16 x float>, <16 x float>
|
|||
define <4 x float> @test_mask_or_ps_rr_128(<4 x float> %a, <4 x float> %b) {
|
||||
; CHECK-LABEL: test_mask_or_ps_rr_128:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vorps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x56,0xc1]
|
||||
; CHECK-NEXT: vorps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x56,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1)
|
||||
ret <4 x float> %res
|
||||
|
@ -639,7 +639,7 @@ define <4 x float> @test_mask_or_ps_rrk_128(<4 x float> %a, <4 x float> %b, <4 x
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vorps %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x56,0xd1]
|
||||
; CHECK-NEXT: vmovaps %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0xc2]
|
||||
; CHECK-NEXT: vmovaps %xmm2, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0xc2]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask)
|
||||
ret <4 x float> %res
|
||||
|
@ -658,7 +658,7 @@ define <4 x float> @test_mask_or_ps_rrkz_128(<4 x float> %a, <4 x float> %b, i8
|
|||
define <4 x float> @test_mask_or_ps_rm_128(<4 x float> %a, <4 x float>* %ptr_b) {
|
||||
; CHECK-LABEL: test_mask_or_ps_rm_128:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vorps (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x56,0x07]
|
||||
; CHECK-NEXT: vorps (%rdi), %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x56,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <4 x float>, <4 x float>* %ptr_b
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1)
|
||||
|
@ -670,7 +670,7 @@ define <4 x float> @test_mask_or_ps_rmk_128(<4 x float> %a, <4 x float>* %ptr_b,
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vorps (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x56,0x0f]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <4 x float>, <4 x float>* %ptr_b
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask)
|
||||
|
@ -705,7 +705,7 @@ define <4 x float> @test_mask_or_ps_rmbk_128(<4 x float> %a, float* %ptr_b, <4 x
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vorps (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x19,0x56,0x0f]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%q = load float, float* %ptr_b
|
||||
%vecinit.i = insertelement <4 x float> undef, float %q, i32 0
|
||||
|
@ -732,7 +732,7 @@ declare <4 x float> @llvm.x86.avx512.mask.or.ps.128(<4 x float>, <4 x float>, <4
|
|||
define <8 x float> @test_mask_or_ps_rr_256(<8 x float> %a, <8 x float> %b) {
|
||||
; CHECK-LABEL: test_mask_or_ps_rr_256:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vorps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x56,0xc1]
|
||||
; CHECK-NEXT: vorps %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x56,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1)
|
||||
ret <8 x float> %res
|
||||
|
@ -743,7 +743,7 @@ define <8 x float> @test_mask_or_ps_rrk_256(<8 x float> %a, <8 x float> %b, <8 x
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vorps %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x56,0xd1]
|
||||
; CHECK-NEXT: vmovaps %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xc2]
|
||||
; CHECK-NEXT: vmovaps %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xc2]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask)
|
||||
ret <8 x float> %res
|
||||
|
@ -762,7 +762,7 @@ define <8 x float> @test_mask_or_ps_rrkz_256(<8 x float> %a, <8 x float> %b, i8
|
|||
define <8 x float> @test_mask_or_ps_rm_256(<8 x float> %a, <8 x float>* %ptr_b) {
|
||||
; CHECK-LABEL: test_mask_or_ps_rm_256:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vorps (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x56,0x07]
|
||||
; CHECK-NEXT: vorps (%rdi), %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x56,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <8 x float>, <8 x float>* %ptr_b
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1)
|
||||
|
@ -774,7 +774,7 @@ define <8 x float> @test_mask_or_ps_rmk_256(<8 x float> %a, <8 x float>* %ptr_b,
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vorps (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x56,0x0f]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <8 x float>, <8 x float>* %ptr_b
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.or.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask)
|
||||
|
@ -809,7 +809,7 @@ define <8 x float> @test_mask_or_ps_rmbk_256(<8 x float> %a, float* %ptr_b, <8 x
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vorps (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x39,0x56,0x0f]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%q = load float, float* %ptr_b
|
||||
%vecinit.i = insertelement <8 x float> undef, float %q, i32 0
|
||||
|
@ -940,7 +940,7 @@ declare <16 x float> @llvm.x86.avx512.mask.or.ps.512(<16 x float>, <16 x float>,
|
|||
define <4 x float> @test_mask_xor_ps_rr_128(<4 x float> %a, <4 x float> %b) {
|
||||
; CHECK-LABEL: test_mask_xor_ps_rr_128:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vxorps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x57,0xc1]
|
||||
; CHECK-NEXT: vxorps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x57,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1)
|
||||
ret <4 x float> %res
|
||||
|
@ -951,7 +951,7 @@ define <4 x float> @test_mask_xor_ps_rrk_128(<4 x float> %a, <4 x float> %b, <4
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vxorps %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x57,0xd1]
|
||||
; CHECK-NEXT: vmovaps %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0xc2]
|
||||
; CHECK-NEXT: vmovaps %xmm2, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0xc2]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask)
|
||||
ret <4 x float> %res
|
||||
|
@ -970,7 +970,7 @@ define <4 x float> @test_mask_xor_ps_rrkz_128(<4 x float> %a, <4 x float> %b, i8
|
|||
define <4 x float> @test_mask_xor_ps_rm_128(<4 x float> %a, <4 x float>* %ptr_b) {
|
||||
; CHECK-LABEL: test_mask_xor_ps_rm_128:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vxorps (%rdi), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x57,0x07]
|
||||
; CHECK-NEXT: vxorps (%rdi), %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x57,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <4 x float>, <4 x float>* %ptr_b
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> zeroinitializer, i8 -1)
|
||||
|
@ -982,7 +982,7 @@ define <4 x float> @test_mask_xor_ps_rmk_128(<4 x float> %a, <4 x float>* %ptr_b
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vxorps (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x09,0x57,0x0f]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <4 x float>, <4 x float>* %ptr_b
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float> %a, <4 x float> %b, <4 x float> %passThru, i8 %mask)
|
||||
|
@ -1017,7 +1017,7 @@ define <4 x float> @test_mask_xor_ps_rmbk_128(<4 x float> %a, float* %ptr_b, <4
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vxorps (%rdi){1to4}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x19,0x57,0x0f]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%q = load float, float* %ptr_b
|
||||
%vecinit.i = insertelement <4 x float> undef, float %q, i32 0
|
||||
|
@ -1044,7 +1044,7 @@ declare <4 x float> @llvm.x86.avx512.mask.xor.ps.128(<4 x float>, <4 x float>, <
|
|||
define <8 x float> @test_mask_xor_ps_rr_256(<8 x float> %a, <8 x float> %b) {
|
||||
; CHECK-LABEL: test_mask_xor_ps_rr_256:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vxorps %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x57,0xc1]
|
||||
; CHECK-NEXT: vxorps %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x57,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1)
|
||||
ret <8 x float> %res
|
||||
|
@ -1055,7 +1055,7 @@ define <8 x float> @test_mask_xor_ps_rrk_256(<8 x float> %a, <8 x float> %b, <8
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vxorps %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x57,0xd1]
|
||||
; CHECK-NEXT: vmovaps %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xc2]
|
||||
; CHECK-NEXT: vmovaps %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xc2]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask)
|
||||
ret <8 x float> %res
|
||||
|
@ -1074,7 +1074,7 @@ define <8 x float> @test_mask_xor_ps_rrkz_256(<8 x float> %a, <8 x float> %b, i8
|
|||
define <8 x float> @test_mask_xor_ps_rm_256(<8 x float> %a, <8 x float>* %ptr_b) {
|
||||
; CHECK-LABEL: test_mask_xor_ps_rm_256:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vxorps (%rdi), %ymm0, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x57,0x07]
|
||||
; CHECK-NEXT: vxorps (%rdi), %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x57,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <8 x float>, <8 x float>* %ptr_b
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> zeroinitializer, i8 -1)
|
||||
|
@ -1086,7 +1086,7 @@ define <8 x float> @test_mask_xor_ps_rmk_256(<8 x float> %a, <8 x float>* %ptr_b
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vxorps (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0x57,0x0f]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <8 x float>, <8 x float>* %ptr_b
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.xor.ps.256(<8 x float> %a, <8 x float> %b, <8 x float> %passThru, i8 %mask)
|
||||
|
@ -1121,7 +1121,7 @@ define <8 x float> @test_mask_xor_ps_rmbk_256(<8 x float> %a, float* %ptr_b, <8
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vxorps (%rdi){1to8}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x39,0x57,0x0f]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0xc1]
|
||||
; CHECK-NEXT: vmovaps %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%q = load float, float* %ptr_b
|
||||
%vecinit.i = insertelement <8 x float> undef, float %q, i32 0
|
||||
|
@ -1366,7 +1366,7 @@ define <4 x i64> @test_mask_mullo_epi64_rrk_256(<4 x i64> %a, <4 x i64> %b, <4 x
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vpmullq %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x40,0xd1]
|
||||
; CHECK-NEXT: vmovdqa64 %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x6f,0xc2]
|
||||
; CHECK-NEXT: vmovdqa %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0xc2]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx512.mask.pmull.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> %passThru, i8 %mask)
|
||||
ret <4 x i64> %res
|
||||
|
@ -1397,7 +1397,7 @@ define <4 x i64> @test_mask_mullo_epi64_rmk_256(<4 x i64> %a, <4 x i64>* %ptr_b,
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vpmullq (%rdi), %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x40,0x0f]
|
||||
; CHECK-NEXT: vmovdqa64 %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x6f,0xc1]
|
||||
; CHECK-NEXT: vmovdqa %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <4 x i64>, <4 x i64>* %ptr_b
|
||||
%res = call <4 x i64> @llvm.x86.avx512.mask.pmull.q.256(<4 x i64> %a, <4 x i64> %b, <4 x i64> %passThru, i8 %mask)
|
||||
|
@ -1432,7 +1432,7 @@ define <4 x i64> @test_mask_mullo_epi64_rmbk_256(<4 x i64> %a, i64* %ptr_b, <4 x
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vpmullq (%rdi){1to4}, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x39,0x40,0x0f]
|
||||
; CHECK-NEXT: vmovdqa64 %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x6f,0xc1]
|
||||
; CHECK-NEXT: vmovdqa %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%q = load i64, i64* %ptr_b
|
||||
%vecinit.i = insertelement <4 x i64> undef, i64 %q, i32 0
|
||||
|
@ -1470,7 +1470,7 @@ define <2 x i64> @test_mask_mullo_epi64_rrk_128(<2 x i64> %a, <2 x i64> %b, <2 x
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vpmullq %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x40,0xd1]
|
||||
; CHECK-NEXT: vmovdqa64 %xmm2, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x6f,0xc2]
|
||||
; CHECK-NEXT: vmovdqa %xmm2, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0xc2]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.avx512.mask.pmull.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> %passThru, i8 %mask)
|
||||
ret <2 x i64> %res
|
||||
|
@ -1501,7 +1501,7 @@ define <2 x i64> @test_mask_mullo_epi64_rmk_128(<2 x i64> %a, <2 x i64>* %ptr_b,
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vpmullq (%rdi), %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x40,0x0f]
|
||||
; CHECK-NEXT: vmovdqa64 %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x6f,0xc1]
|
||||
; CHECK-NEXT: vmovdqa %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%b = load <2 x i64>, <2 x i64>* %ptr_b
|
||||
%res = call <2 x i64> @llvm.x86.avx512.mask.pmull.q.128(<2 x i64> %a, <2 x i64> %b, <2 x i64> %passThru, i8 %mask)
|
||||
|
@ -1536,7 +1536,7 @@ define <2 x i64> @test_mask_mullo_epi64_rmbk_128(<2 x i64> %a, i64* %ptr_b, <2 x
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %esi, %k1 ## encoding: [0xc5,0xf9,0x92,0xce]
|
||||
; CHECK-NEXT: vpmullq (%rdi){1to2}, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0xfd,0x19,0x40,0x0f]
|
||||
; CHECK-NEXT: vmovdqa64 %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x6f,0xc1]
|
||||
; CHECK-NEXT: vmovdqa %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0xc1]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%q = load i64, i64* %ptr_b
|
||||
%vecinit.i = insertelement <2 x i64> undef, i64 %q, i32 0
|
||||
|
|
|
@ -9,7 +9,7 @@ define <2 x i64>@test_int_x86_avx512_mask_cvt_pd2qq_128(<2 x double> %x0, <2 x i
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtpd2qq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x7b,0xc8]
|
||||
; CHECK-NEXT: vcvtpd2qq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x7b,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.avx512.mask.cvtpd2qq.128(<2 x double> %x0, <2 x i64> %x1, i8 %x2)
|
||||
%res1 = call <2 x i64> @llvm.x86.avx512.mask.cvtpd2qq.128(<2 x double> %x0, <2 x i64> %x1, i8 -1)
|
||||
|
@ -25,7 +25,7 @@ define <4 x i64>@test_int_x86_avx512_mask_cvt_pd2qq_256(<4 x double> %x0, <4 x i
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtpd2qq %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x7b,0xc8]
|
||||
; CHECK-NEXT: vcvtpd2qq %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x7b,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx512.mask.cvtpd2qq.256(<4 x double> %x0, <4 x i64> %x1, i8 %x2)
|
||||
%res1 = call <4 x i64> @llvm.x86.avx512.mask.cvtpd2qq.256(<4 x double> %x0, <4 x i64> %x1, i8 -1)
|
||||
|
@ -41,7 +41,7 @@ define <2 x i64>@test_int_x86_avx512_mask_cvt_pd2uqq_128(<2 x double> %x0, <2 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtpd2uqq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x79,0xc8]
|
||||
; CHECK-NEXT: vcvtpd2uqq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x79,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.avx512.mask.cvtpd2uqq.128(<2 x double> %x0, <2 x i64> %x1, i8 %x2)
|
||||
%res1 = call <2 x i64> @llvm.x86.avx512.mask.cvtpd2uqq.128(<2 x double> %x0, <2 x i64> %x1, i8 -1)
|
||||
|
@ -57,7 +57,7 @@ define <4 x i64>@test_int_x86_avx512_mask_cvt_pd2uqq_256(<4 x double> %x0, <4 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtpd2uqq %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x79,0xc8]
|
||||
; CHECK-NEXT: vcvtpd2uqq %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x79,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx512.mask.cvtpd2uqq.256(<4 x double> %x0, <4 x i64> %x1, i8 %x2)
|
||||
%res1 = call <4 x i64> @llvm.x86.avx512.mask.cvtpd2uqq.256(<4 x double> %x0, <4 x i64> %x1, i8 -1)
|
||||
|
@ -73,7 +73,7 @@ define <2 x i64>@test_int_x86_avx512_mask_cvt_ps2qq_128(<4 x float> %x0, <2 x i6
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtps2qq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x7b,0xc8]
|
||||
; CHECK-NEXT: vcvtps2qq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x7b,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.avx512.mask.cvtps2qq.128(<4 x float> %x0, <2 x i64> %x1, i8 %x2)
|
||||
%res1 = call <2 x i64> @llvm.x86.avx512.mask.cvtps2qq.128(<4 x float> %x0, <2 x i64> %x1, i8 -1)
|
||||
|
@ -89,7 +89,7 @@ define <4 x i64>@test_int_x86_avx512_mask_cvt_ps2qq_256(<4 x float> %x0, <4 x i6
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtps2qq %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x7b,0xc8]
|
||||
; CHECK-NEXT: vcvtps2qq %xmm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x7b,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx512.mask.cvtps2qq.256(<4 x float> %x0, <4 x i64> %x1, i8 %x2)
|
||||
%res1 = call <4 x i64> @llvm.x86.avx512.mask.cvtps2qq.256(<4 x float> %x0, <4 x i64> %x1, i8 -1)
|
||||
|
@ -105,7 +105,7 @@ define <2 x i64>@test_int_x86_avx512_mask_cvt_ps2uqq_128(<4 x float> %x0, <2 x i
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtps2uqq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x79,0xc8]
|
||||
; CHECK-NEXT: vcvtps2uqq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x79,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.avx512.mask.cvtps2uqq.128(<4 x float> %x0, <2 x i64> %x1, i8 %x2)
|
||||
%res1 = call <2 x i64> @llvm.x86.avx512.mask.cvtps2uqq.128(<4 x float> %x0, <2 x i64> %x1, i8 -1)
|
||||
|
@ -121,7 +121,7 @@ define <4 x i64>@test_int_x86_avx512_mask_cvt_ps2uqq_256(<4 x float> %x0, <4 x i
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtps2uqq %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x79,0xc8]
|
||||
; CHECK-NEXT: vcvtps2uqq %xmm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x79,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx512.mask.cvtps2uqq.256(<4 x float> %x0, <4 x i64> %x1, i8 %x2)
|
||||
%res1 = call <4 x i64> @llvm.x86.avx512.mask.cvtps2uqq.256(<4 x float> %x0, <4 x i64> %x1, i8 -1)
|
||||
|
@ -137,7 +137,7 @@ define <2 x double>@test_int_x86_avx512_mask_cvt_qq2pd_128(<2 x i64> %x0, <2 x d
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtqq2pd %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfe,0x09,0xe6,0xc8]
|
||||
; CHECK-NEXT: vcvtqq2pd %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfe,0x08,0xe6,0xc0]
|
||||
; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x double> @llvm.x86.avx512.mask.cvtqq2pd.128(<2 x i64> %x0, <2 x double> %x1, i8 %x2)
|
||||
%res1 = call <2 x double> @llvm.x86.avx512.mask.cvtqq2pd.128(<2 x i64> %x0, <2 x double> %x1, i8 -1)
|
||||
|
@ -153,7 +153,7 @@ define <4 x double>@test_int_x86_avx512_mask_cvt_qq2pd_256(<4 x i64> %x0, <4 x d
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtqq2pd %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfe,0x29,0xe6,0xc8]
|
||||
; CHECK-NEXT: vcvtqq2pd %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfe,0x28,0xe6,0xc0]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x double> @llvm.x86.avx512.mask.cvtqq2pd.256(<4 x i64> %x0, <4 x double> %x1, i8 %x2)
|
||||
%res1 = call <4 x double> @llvm.x86.avx512.mask.cvtqq2pd.256(<4 x i64> %x0, <4 x double> %x1, i8 -1)
|
||||
|
@ -169,7 +169,7 @@ define <4 x float>@test_int_x86_avx512_mask_cvt_qq2ps_128(<2 x i64> %x0, <4 x fl
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtqq2ps %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfc,0x09,0x5b,0xc8]
|
||||
; CHECK-NEXT: vcvtqq2ps %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfc,0x08,0x5b,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf0,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.cvtqq2ps.128(<2 x i64> %x0, <4 x float> %x1, i8 %x2)
|
||||
%res1 = call <4 x float> @llvm.x86.avx512.mask.cvtqq2ps.128(<2 x i64> %x0, <4 x float> %x1, i8 -1)
|
||||
|
@ -182,10 +182,10 @@ define <4 x float>@test_int_x86_avx512_mask_cvt_qq2ps_128_zext(<2 x i64> %x0, <4
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtqq2ps %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfc,0x09,0x5b,0xc8]
|
||||
; CHECK-NEXT: vmovq %xmm1, %xmm1 ## encoding: [0x62,0xf1,0xfe,0x08,0x7e,0xc9]
|
||||
; CHECK-NEXT: vmovq %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x7e,0xc9]
|
||||
; CHECK-NEXT: ## xmm1 = xmm1[0],zero
|
||||
; CHECK-NEXT: vcvtqq2ps %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfc,0x08,0x5b,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf0,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.cvtqq2ps.128(<2 x i64> %x0, <4 x float> %x1, i8 %x2)
|
||||
%res1 = shufflevector <4 x float> %res, <4 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
|
||||
|
@ -203,7 +203,7 @@ define <4 x float>@test_int_x86_avx512_mask_cvt_qq2ps_256(<4 x i64> %x0, <4 x fl
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtqq2ps %ymm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfc,0x29,0x5b,0xc8]
|
||||
; CHECK-NEXT: vcvtqq2ps %ymm0, %xmm0 ## encoding: [0x62,0xf1,0xfc,0x28,0x5b,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf0,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.cvtqq2ps.256(<4 x i64> %x0, <4 x float> %x1, i8 %x2)
|
||||
%res1 = call <4 x float> @llvm.x86.avx512.mask.cvtqq2ps.256(<4 x i64> %x0, <4 x float> %x1, i8 -1)
|
||||
|
@ -219,7 +219,7 @@ define <2 x i64>@test_int_x86_avx512_mask_cvtt_pd2qq_128(<2 x double> %x0, <2 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvttpd2qq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x7a,0xc8]
|
||||
; CHECK-NEXT: vcvttpd2qq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x7a,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.avx512.mask.cvttpd2qq.128(<2 x double> %x0, <2 x i64> %x1, i8 %x2)
|
||||
%res1 = call <2 x i64> @llvm.x86.avx512.mask.cvttpd2qq.128(<2 x double> %x0, <2 x i64> %x1, i8 -1)
|
||||
|
@ -235,7 +235,7 @@ define <4 x i64>@test_int_x86_avx512_mask_cvtt_pd2qq_256(<4 x double> %x0, <4 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvttpd2qq %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x7a,0xc8]
|
||||
; CHECK-NEXT: vcvttpd2qq %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x7a,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx512.mask.cvttpd2qq.256(<4 x double> %x0, <4 x i64> %x1, i8 %x2)
|
||||
%res1 = call <4 x i64> @llvm.x86.avx512.mask.cvttpd2qq.256(<4 x double> %x0, <4 x i64> %x1, i8 -1)
|
||||
|
@ -251,7 +251,7 @@ define <2 x i64>@test_int_x86_avx512_mask_cvtt_pd2uqq_128(<2 x double> %x0, <2 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvttpd2uqq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x09,0x78,0xc8]
|
||||
; CHECK-NEXT: vcvttpd2uqq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x78,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.avx512.mask.cvttpd2uqq.128(<2 x double> %x0, <2 x i64> %x1, i8 %x2)
|
||||
%res1 = call <2 x i64> @llvm.x86.avx512.mask.cvttpd2uqq.128(<2 x double> %x0, <2 x i64> %x1, i8 -1)
|
||||
|
@ -267,7 +267,7 @@ define <4 x i64>@test_int_x86_avx512_mask_cvtt_pd2uqq_256(<4 x double> %x0, <4 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvttpd2uqq %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfd,0x29,0x78,0xc8]
|
||||
; CHECK-NEXT: vcvttpd2uqq %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x78,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx512.mask.cvttpd2uqq.256(<4 x double> %x0, <4 x i64> %x1, i8 %x2)
|
||||
%res1 = call <4 x i64> @llvm.x86.avx512.mask.cvttpd2uqq.256(<4 x double> %x0, <4 x i64> %x1, i8 -1)
|
||||
|
@ -283,7 +283,7 @@ define <2 x i64>@test_int_x86_avx512_mask_cvtt_ps2qq_128(<4 x float> %x0, <2 x i
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvttps2qq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x7a,0xc8]
|
||||
; CHECK-NEXT: vcvttps2qq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x7a,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.avx512.mask.cvttps2qq.128(<4 x float> %x0, <2 x i64> %x1, i8 %x2)
|
||||
%res1 = call <2 x i64> @llvm.x86.avx512.mask.cvttps2qq.128(<4 x float> %x0, <2 x i64> %x1, i8 -1)
|
||||
|
@ -299,7 +299,7 @@ define <4 x i64>@test_int_x86_avx512_mask_cvtt_ps2qq_256(<4 x float> %x0, <4 x i
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvttps2qq %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x7a,0xc8]
|
||||
; CHECK-NEXT: vcvttps2qq %xmm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x7a,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx512.mask.cvttps2qq.256(<4 x float> %x0, <4 x i64> %x1, i8 %x2)
|
||||
%res1 = call <4 x i64> @llvm.x86.avx512.mask.cvttps2qq.256(<4 x float> %x0, <4 x i64> %x1, i8 -1)
|
||||
|
@ -315,7 +315,7 @@ define <2 x double>@test_int_x86_avx512_mask_cvt_uqq2pd_128(<2 x i64> %x0, <2 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtuqq2pd %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xfe,0x09,0x7a,0xc8]
|
||||
; CHECK-NEXT: vcvtuqq2pd %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfe,0x08,0x7a,0xc0]
|
||||
; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x double> @llvm.x86.avx512.mask.cvtuqq2pd.128(<2 x i64> %x0, <2 x double> %x1, i8 %x2)
|
||||
%res1 = call <2 x double> @llvm.x86.avx512.mask.cvtuqq2pd.128(<2 x i64> %x0, <2 x double> %x1, i8 -1)
|
||||
|
@ -331,7 +331,7 @@ define <4 x double>@test_int_x86_avx512_mask_cvt_uqq2pd_256(<4 x i64> %x0, <4 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtuqq2pd %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0xfe,0x29,0x7a,0xc8]
|
||||
; CHECK-NEXT: vcvtuqq2pd %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfe,0x28,0x7a,0xc0]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x double> @llvm.x86.avx512.mask.cvtuqq2pd.256(<4 x i64> %x0, <4 x double> %x1, i8 %x2)
|
||||
%res1 = call <4 x double> @llvm.x86.avx512.mask.cvtuqq2pd.256(<4 x i64> %x0, <4 x double> %x1, i8 -1)
|
||||
|
@ -347,7 +347,7 @@ define <4 x float>@test_int_x86_avx512_mask_cvt_uqq2ps_128(<2 x i64> %x0, <4 x f
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtuqq2ps %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xff,0x09,0x7a,0xc8]
|
||||
; CHECK-NEXT: vcvtuqq2ps %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xff,0x08,0x7a,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf0,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.cvtuqq2ps.128(<2 x i64> %x0, <4 x float> %x1, i8 %x2)
|
||||
%res1 = call <4 x float> @llvm.x86.avx512.mask.cvtuqq2ps.128(<2 x i64> %x0, <4 x float> %x1, i8 -1)
|
||||
|
@ -360,10 +360,10 @@ define <4 x float>@test_int_x86_avx512_mask_cvt_uqq2ps_128_zext(<2 x i64> %x0, <
|
|||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtuqq2ps %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xff,0x09,0x7a,0xc8]
|
||||
; CHECK-NEXT: vmovq %xmm1, %xmm1 ## encoding: [0x62,0xf1,0xfe,0x08,0x7e,0xc9]
|
||||
; CHECK-NEXT: vmovq %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x7e,0xc9]
|
||||
; CHECK-NEXT: ## xmm1 = xmm1[0],zero
|
||||
; CHECK-NEXT: vcvtuqq2ps %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xff,0x08,0x7a,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf0,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.cvtuqq2ps.128(<2 x i64> %x0, <4 x float> %x1, i8 %x2)
|
||||
%res1 = shufflevector <4 x float> %res, <4 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
|
||||
|
@ -381,7 +381,7 @@ define <4 x float>@test_int_x86_avx512_mask_cvt_uqq2ps_256(<4 x i64> %x0, <4 x f
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvtuqq2ps %ymm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0xff,0x29,0x7a,0xc8]
|
||||
; CHECK-NEXT: vcvtuqq2ps %ymm0, %xmm0 ## encoding: [0x62,0xf1,0xff,0x28,0x7a,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf0,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.cvtuqq2ps.256(<4 x i64> %x0, <4 x float> %x1, i8 %x2)
|
||||
%res1 = call <4 x float> @llvm.x86.avx512.mask.cvtuqq2ps.256(<4 x i64> %x0, <4 x float> %x1, i8 -1)
|
||||
|
@ -397,7 +397,7 @@ define <2 x i64>@test_int_x86_avx512_mask_cvtt_ps2uqq_128(<4 x float> %x0, <2 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvttps2uqq %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x09,0x78,0xc8]
|
||||
; CHECK-NEXT: vcvttps2uqq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x78,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.avx512.mask.cvttps2uqq.128(<4 x float> %x0, <2 x i64> %x1, i8 %x2)
|
||||
%res1 = call <2 x i64> @llvm.x86.avx512.mask.cvttps2uqq.128(<4 x float> %x0, <2 x i64> %x1, i8 -1)
|
||||
|
@ -413,7 +413,7 @@ define <4 x i64>@test_int_x86_avx512_mask_cvtt_ps2uqq_256(<4 x float> %x0, <4 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vcvttps2uqq %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf1,0x7d,0x29,0x78,0xc8]
|
||||
; CHECK-NEXT: vcvttps2uqq %xmm0, %ymm0 ## encoding: [0x62,0xf1,0x7d,0x28,0x78,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx512.mask.cvttps2uqq.256(<4 x float> %x0, <4 x i64> %x1, i8 %x2)
|
||||
%res1 = call <4 x i64> @llvm.x86.avx512.mask.cvttps2uqq.256(<4 x float> %x0, <4 x i64> %x1, i8 -1)
|
||||
|
@ -429,7 +429,7 @@ define <2 x double>@test_int_x86_avx512_mask_reduce_pd_128(<2 x double> %x0, <2
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vreducepd $4, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x56,0xc8,0x04]
|
||||
; CHECK-NEXT: vreducepd $8, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0xfd,0x08,0x56,0xc0,0x08]
|
||||
; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x double> @llvm.x86.avx512.mask.reduce.pd.128(<2 x double> %x0, i32 4, <2 x double> %x2, i8 %x3)
|
||||
%res1 = call <2 x double> @llvm.x86.avx512.mask.reduce.pd.128(<2 x double> %x0, i32 8, <2 x double> %x2, i8 -1)
|
||||
|
@ -445,7 +445,7 @@ define <4 x double>@test_int_x86_avx512_mask_reduce_pd_256(<4 x double> %x0, <4
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vreducepd $4, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x56,0xc8,0x04]
|
||||
; CHECK-NEXT: vreducepd $0, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x56,0xc0,0x00]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0xf5,0x28,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x double> @llvm.x86.avx512.mask.reduce.pd.256(<4 x double> %x0, i32 4, <4 x double> %x2, i8 %x3)
|
||||
%res1 = call <4 x double> @llvm.x86.avx512.mask.reduce.pd.256(<4 x double> %x0, i32 0, <4 x double> %x2, i8 -1)
|
||||
|
@ -461,7 +461,7 @@ define <4 x float>@test_int_x86_avx512_mask_reduce_ps_128(<4 x float> %x0, <4 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vreduceps $4, %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x56,0xc8,0x04]
|
||||
; CHECK-NEXT: vreduceps $88, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x56,0xc0,0x58]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x74,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf0,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.reduce.ps.128(<4 x float> %x0, i32 4, <4 x float> %x2, i8 %x3)
|
||||
%res1 = call <4 x float> @llvm.x86.avx512.mask.reduce.ps.128(<4 x float> %x0, i32 88, <4 x float> %x2, i8 -1)
|
||||
|
@ -477,7 +477,7 @@ define <8 x float>@test_int_x86_avx512_mask_reduce_ps_256(<8 x float> %x0, <8 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vreduceps $11, %ymm0, %ymm1 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x56,0xc8,0x0b]
|
||||
; CHECK-NEXT: vreduceps $11, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0x7d,0x28,0x56,0xc0,0x0b]
|
||||
; CHECK-NEXT: vaddps %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x74,0x28,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddps %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf4,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.reduce.ps.256(<8 x float> %x0, i32 11, <8 x float> %x2, i8 %x3)
|
||||
%res1 = call <8 x float> @llvm.x86.avx512.mask.reduce.ps.256(<8 x float> %x0, i32 11, <8 x float> %x2, i8 -1)
|
||||
|
@ -493,7 +493,7 @@ define <2 x double>@test_int_x86_avx512_mask_range_pd_128(<2 x double> %x0, <2 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vrangepd $4, %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf3,0xfd,0x09,0x50,0xd1,0x04]
|
||||
; CHECK-NEXT: vrangepd $8, %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0xfd,0x08,0x50,0xc1,0x08]
|
||||
; CHECK-NEXT: vaddpd %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0xed,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %xmm0, %xmm2, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x double> @llvm.x86.avx512.mask.range.pd.128(<2 x double> %x0, <2 x double> %x1, i32 4, <2 x double> %x3, i8 %x4)
|
||||
%res1 = call <2 x double> @llvm.x86.avx512.mask.range.pd.128(<2 x double> %x0, <2 x double> %x1, i32 8, <2 x double> %x3, i8 -1)
|
||||
|
@ -509,7 +509,7 @@ define <4 x double>@test_int_x86_avx512_mask_range_pd_256(<4 x double> %x0, <4 x
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vrangepd $4, %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x50,0xd1,0x04]
|
||||
; CHECK-NEXT: vrangepd $88, %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x50,0xc1,0x58]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x double> @llvm.x86.avx512.mask.range.pd.256(<4 x double> %x0, <4 x double> %x1, i32 4, <4 x double> %x3, i8 %x4)
|
||||
%res1 = call <4 x double> @llvm.x86.avx512.mask.range.pd.256(<4 x double> %x0, <4 x double> %x1, i32 88, <4 x double> %x3, i8 -1)
|
||||
|
@ -525,7 +525,7 @@ define <4 x float>@test_int_x86_avx512_mask_range_ps_128(<4 x float> %x0, <4 x f
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vrangeps $4, %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf3,0x7d,0x09,0x50,0xd1,0x04]
|
||||
; CHECK-NEXT: vrangeps $88, %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf3,0x7d,0x08,0x50,0xc1,0x58]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6c,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddps %xmm0, %xmm2, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe8,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.avx512.mask.range.ps.128(<4 x float> %x0, <4 x float> %x1, i32 4, <4 x float> %x3, i8 %x4)
|
||||
%res1 = call <4 x float> @llvm.x86.avx512.mask.range.ps.128(<4 x float> %x0, <4 x float> %x1, i32 88, <4 x float> %x3, i8 -1)
|
||||
|
@ -541,7 +541,7 @@ define <8 x float>@test_int_x86_avx512_mask_range_ps_256(<8 x float> %x0, <8 x f
|
|||
; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
|
||||
; CHECK-NEXT: vrangeps $4, %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf3,0x7d,0x29,0x50,0xd1,0x04]
|
||||
; CHECK-NEXT: vrangeps $88, %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0x7d,0x28,0x50,0xc1,0x58]
|
||||
; CHECK-NEXT: vaddps %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6c,0x28,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddps %ymm0, %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xec,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.range.ps.256(<8 x float> %x0, <8 x float> %x1, i32 4, <8 x float> %x3, i8 %x4)
|
||||
%res1 = call <8 x float> @llvm.x86.avx512.mask.range.ps.256(<8 x float> %x0, <8 x float> %x1, i32 88, <8 x float> %x3, i8 -1)
|
||||
|
@ -558,8 +558,8 @@ define <2 x double>@test_int_x86_avx512_mask_vextractf64x2_256(<4 x double> %x0,
|
|||
; CHECK-NEXT: vextractf64x2 $1, %ymm0, %xmm1 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x19,0xc1,0x01]
|
||||
; CHECK-NEXT: vextractf64x2 $1, %ymm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf3,0xfd,0xa9,0x19,0xc2,0x01]
|
||||
; CHECK-NEXT: vextractf64x2 $1, %ymm0, %xmm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x19,0xc0,0x01]
|
||||
; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xf5,0x08,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %xmm2, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x58,0xc2]
|
||||
; CHECK-NEXT: vaddpd %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %xmm2, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x58,0xc2]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <2 x double> @llvm.x86.avx512.mask.vextractf64x2.256(<4 x double> %x0,i32 1, <2 x double> %x2, i8 %x3)
|
||||
%res2 = call <2 x double> @llvm.x86.avx512.mask.vextractf64x2.256(<4 x double> %x0,i32 1, <2 x double> zeroinitializer, i8 %x3)
|
||||
|
@ -578,8 +578,8 @@ define <4 x double>@test_int_x86_avx512_mask_insertf64x2_256(<4 x double> %x0, <
|
|||
; CHECK-NEXT: vinsertf64x2 $1, %xmm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x18,0xd1,0x01]
|
||||
; CHECK-NEXT: vinsertf64x2 $1, %xmm1, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf3,0xfd,0xa9,0x18,0xd9,0x01]
|
||||
; CHECK-NEXT: vinsertf64x2 $1, %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x18,0xc1,0x01]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0xe5,0x28,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm3, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe5,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x double> @llvm.x86.avx512.mask.insertf64x2.256(<4 x double> %x0, <2 x double> %x1, i32 1, <4 x double> %x3, i8 %x4)
|
||||
%res1 = call <4 x double> @llvm.x86.avx512.mask.insertf64x2.256(<4 x double> %x0, <2 x double> %x1, i32 1, <4 x double> %x3, i8 -1)
|
||||
|
@ -598,8 +598,8 @@ define <4 x i64>@test_int_x86_avx512_mask_inserti64x2_256(<4 x i64> %x0, <2 x i6
|
|||
; CHECK-NEXT: vinserti64x2 $1, %xmm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf3,0xfd,0x29,0x38,0xd1,0x01]
|
||||
; CHECK-NEXT: vinserti64x2 $1, %xmm1, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf3,0xfd,0xa9,0x38,0xd9,0x01]
|
||||
; CHECK-NEXT: vinserti64x2 $1, %xmm1, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x38,0xc1,0x01]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm3, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0xd4,0xc3]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm3, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xd4,0xc3]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x i64> @llvm.x86.avx512.mask.inserti64x2.256(<4 x i64> %x0, <2 x i64> %x1, i32 1, <4 x i64> %x3, i8 %x4)
|
||||
%res1 = call <4 x i64> @llvm.x86.avx512.mask.inserti64x2.256(<4 x i64> %x0, <2 x i64> %x1, i32 1, <4 x i64> %x3, i8 -1)
|
||||
|
@ -693,8 +693,8 @@ define <8 x float>@test_int_x86_avx512_mask_broadcastf32x2_256(<4 x float> %x0,
|
|||
; CHECK-NEXT: ## ymm2 {%k1} {z} = xmm0[0,1,0,1,0,1,0,1]
|
||||
; CHECK-NEXT: vbroadcastf32x2 %xmm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x19,0xc0]
|
||||
; CHECK-NEXT: ## ymm0 = xmm0[0,1,0,1,0,1,0,1]
|
||||
; CHECK-NEXT: vaddps %ymm2, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x74,0x28,0x58,0xca]
|
||||
; CHECK-NEXT: vaddps %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x74,0x28,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddps %ymm2, %ymm1, %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf4,0x58,0xca]
|
||||
; CHECK-NEXT: vaddps %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf4,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <8 x float> @llvm.x86.avx512.mask.broadcastf32x2.256(<4 x float> %x0, <8 x float> %x2, i8 %x3)
|
||||
%res1 = call <8 x float> @llvm.x86.avx512.mask.broadcastf32x2.256(<4 x float> %x0, <8 x float> zeroinitializer, i8 %x3)
|
||||
|
@ -716,8 +716,8 @@ define <8 x i32>@test_int_x86_avx512_mask_broadcasti32x2_256(<4 x i32> %x0, <8 x
|
|||
; CHECK-NEXT: ## ymm2 {%k1} {z} = xmm0[0,1,0,1,0,1,0,1]
|
||||
; CHECK-NEXT: vbroadcasti32x2 %xmm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x59,0xc0]
|
||||
; CHECK-NEXT: ## ymm0 = xmm0[0,1,0,1,0,1,0,1]
|
||||
; CHECK-NEXT: vpaddd %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfe,0xc0]
|
||||
; CHECK-NEXT: vpaddd %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf1,0x75,0x28,0xfe,0xc0]
|
||||
; CHECK-NEXT: vpaddd %ymm0, %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xfe,0xc0]
|
||||
; CHECK-NEXT: vpaddd %ymm0, %ymm1, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xfe,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%y_64 = load i64, i64 * %y_ptr
|
||||
%y_v2i64 = insertelement <2 x i64> undef, i64 %y_64, i32 0
|
||||
|
@ -739,8 +739,8 @@ define <4 x i32>@test_int_x86_avx512_mask_broadcasti32x2_128(<4 x i32> %x0, <4 x
|
|||
; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x59,0xc8]
|
||||
; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x59,0xd0]
|
||||
; CHECK-NEXT: vbroadcasti32x2 %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x59,0xc0]
|
||||
; CHECK-NEXT: vpaddd %xmm2, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xfe,0xca]
|
||||
; CHECK-NEXT: vpaddd %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x75,0x08,0xfe,0xc0]
|
||||
; CHECK-NEXT: vpaddd %xmm2, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xfe,0xca]
|
||||
; CHECK-NEXT: vpaddd %xmm0, %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xfe,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.avx512.mask.broadcasti32x2.128(<4 x i32> %x0, <4 x i32> %x2, i8 %x3)
|
||||
%res1 = call <4 x i32> @llvm.x86.avx512.mask.broadcasti32x2.128(<4 x i32> %x0, <4 x i32> zeroinitializer, i8 %x3)
|
||||
|
@ -858,8 +858,8 @@ define <4 x double>@test_int_x86_avx512_mask_broadcastf64x2_256(<2 x double> %x0
|
|||
; CHECK-NEXT: ## ymm1 {%k1} = ymm0[0,1,0,1]
|
||||
; CHECK-NEXT: vshuff64x2 $0, %ymm0, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x23,0xc0,0x00]
|
||||
; CHECK-NEXT: ## ymm0 = ymm0[0,1,0,1]
|
||||
; CHECK-NEXT: vaddpd %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0x58,0xc1]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0x58,0xc0]
|
||||
; CHECK-NEXT: vaddpd %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x58,0xc1]
|
||||
; CHECK-NEXT: vaddpd %ymm0, %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0x58,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
||||
%res1 = call <4 x double> @llvm.x86.avx512.mask.broadcastf64x2.256(<2 x double> %x0, <4 x double> %x2, i8 -1)
|
||||
|
@ -883,8 +883,8 @@ define <4 x i64>@test_int_x86_avx512_mask_broadcasti64x2_256(<2 x i64> %x0, <4 x
|
|||
; CHECK-NEXT: ## ymm1 {%k1} = ymm0[0,1,0,1]
|
||||
; CHECK-NEXT: vshufi64x2 $0, %ymm0, %ymm0, %ymm0 ## encoding: [0x62,0xf3,0xfd,0x28,0x43,0xc0,0x00]
|
||||
; CHECK-NEXT: ## ymm0 = ymm0[0,1,0,1]
|
||||
; CHECK-NEXT: vpaddq %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf1,0xfd,0x28,0xd4,0xc1]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0xed,0x28,0xd4,0xc0]
|
||||
; CHECK-NEXT: vpaddq %ymm1, %ymm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0xd4,0xc1]
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xd4,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
||||
%res1 = call <4 x i64> @llvm.x86.avx512.mask.broadcasti64x2.256(<2 x i64> %x0, <4 x i64> %x2, i8 -1)
|
||||
|
|
|
@ -11,7 +11,7 @@ define <2 x i64>@test_int_x86_avx512_mask_vpmadd52h_uq_128(<2 x i64> %x0, <2 x i
|
|||
; CHECK-NEXT: vpmadd52huq %xmm2, %xmm1, %xmm3 {%k1}
|
||||
; CHECK-NEXT: vmovaps %xmm0, %xmm4
|
||||
; CHECK-NEXT: vpmadd52huq %xmm2, %xmm1, %xmm4
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; CHECK-NEXT: vpmadd52huq %xmm2, %xmm1, %xmm0 {%k1}
|
||||
; CHECK-NEXT: vpmadd52huq %xmm2, %xmm1, %xmm2 {%k1} {z}
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm3, %xmm0
|
||||
|
@ -39,7 +39,7 @@ define <4 x i64>@test_int_x86_avx512_mask_vpmadd52h_uq_256(<4 x i64> %x0, <4 x i
|
|||
; CHECK-NEXT: vpmadd52huq %ymm2, %ymm1, %ymm3 {%k1}
|
||||
; CHECK-NEXT: vmovaps %ymm0, %ymm4
|
||||
; CHECK-NEXT: vpmadd52huq %ymm2, %ymm1, %ymm4
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2
|
||||
; CHECK-NEXT: vpmadd52huq %ymm2, %ymm1, %ymm0 {%k1}
|
||||
; CHECK-NEXT: vpmadd52huq %ymm2, %ymm1, %ymm2 {%k1} {z}
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm3, %ymm0
|
||||
|
@ -67,7 +67,7 @@ define <2 x i64>@test_int_x86_avx512_maskz_vpmadd52h_uq_128(<2 x i64> %x0, <2 x
|
|||
; CHECK-NEXT: vpmadd52huq %xmm2, %xmm1, %xmm3 {%k1} {z}
|
||||
; CHECK-NEXT: vmovaps %xmm0, %xmm4
|
||||
; CHECK-NEXT: vpmadd52huq %xmm2, %xmm1, %xmm4
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; CHECK-NEXT: vpmadd52huq %xmm2, %xmm1, %xmm0 {%k1} {z}
|
||||
; CHECK-NEXT: vpmadd52huq %xmm2, %xmm1, %xmm2 {%k1} {z}
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm3, %xmm0
|
||||
|
@ -95,7 +95,7 @@ define <4 x i64>@test_int_x86_avx512_maskz_vpmadd52h_uq_256(<4 x i64> %x0, <4 x
|
|||
; CHECK-NEXT: vpmadd52huq %ymm2, %ymm1, %ymm3 {%k1} {z}
|
||||
; CHECK-NEXT: vmovaps %ymm0, %ymm4
|
||||
; CHECK-NEXT: vpmadd52huq %ymm2, %ymm1, %ymm4
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2
|
||||
; CHECK-NEXT: vpmadd52huq %ymm2, %ymm1, %ymm0 {%k1} {z}
|
||||
; CHECK-NEXT: vpmadd52huq %ymm2, %ymm1, %ymm2 {%k1} {z}
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm3, %ymm0
|
||||
|
@ -123,7 +123,7 @@ define <2 x i64>@test_int_x86_avx512_mask_vpmadd52l_uq_128(<2 x i64> %x0, <2 x i
|
|||
; CHECK-NEXT: vpmadd52luq %xmm2, %xmm1, %xmm3 {%k1}
|
||||
; CHECK-NEXT: vmovaps %xmm0, %xmm4
|
||||
; CHECK-NEXT: vpmadd52luq %xmm2, %xmm1, %xmm4
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; CHECK-NEXT: vpmadd52luq %xmm2, %xmm1, %xmm0 {%k1}
|
||||
; CHECK-NEXT: vpmadd52luq %xmm2, %xmm1, %xmm2 {%k1} {z}
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm3, %xmm0
|
||||
|
@ -151,7 +151,7 @@ define <4 x i64>@test_int_x86_avx512_mask_vpmadd52l_uq_256(<4 x i64> %x0, <4 x i
|
|||
; CHECK-NEXT: vpmadd52luq %ymm2, %ymm1, %ymm3 {%k1}
|
||||
; CHECK-NEXT: vmovaps %ymm0, %ymm4
|
||||
; CHECK-NEXT: vpmadd52luq %ymm2, %ymm1, %ymm4
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2
|
||||
; CHECK-NEXT: vpmadd52luq %ymm2, %ymm1, %ymm0 {%k1}
|
||||
; CHECK-NEXT: vpmadd52luq %ymm2, %ymm1, %ymm2 {%k1} {z}
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm3, %ymm0
|
||||
|
@ -179,7 +179,7 @@ define <2 x i64>@test_int_x86_avx512_maskz_vpmadd52l_uq_128(<2 x i64> %x0, <2 x
|
|||
; CHECK-NEXT: vpmadd52luq %xmm2, %xmm1, %xmm3 {%k1} {z}
|
||||
; CHECK-NEXT: vmovaps %xmm0, %xmm4
|
||||
; CHECK-NEXT: vpmadd52luq %xmm2, %xmm1, %xmm4
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; CHECK-NEXT: vpmadd52luq %xmm2, %xmm1, %xmm0 {%k1} {z}
|
||||
; CHECK-NEXT: vpmadd52luq %xmm2, %xmm1, %xmm2 {%k1} {z}
|
||||
; CHECK-NEXT: vpaddq %xmm0, %xmm3, %xmm0
|
||||
|
@ -207,7 +207,7 @@ define <4 x i64>@test_int_x86_avx512_maskz_vpmadd52l_uq_256(<4 x i64> %x0, <4 x
|
|||
; CHECK-NEXT: vpmadd52luq %ymm2, %ymm1, %ymm3 {%k1} {z}
|
||||
; CHECK-NEXT: vmovaps %ymm0, %ymm4
|
||||
; CHECK-NEXT: vpmadd52luq %ymm2, %ymm1, %ymm4
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2
|
||||
; CHECK-NEXT: vpmadd52luq %ymm2, %ymm1, %ymm0 {%k1} {z}
|
||||
; CHECK-NEXT: vpmadd52luq %ymm2, %ymm1, %ymm2 {%k1} {z}
|
||||
; CHECK-NEXT: vpaddq %ymm0, %ymm3, %ymm0
|
||||
|
|
|
@ -10,8 +10,8 @@ define <16 x i8>@test_int_x86_avx512_mask_permvar_qi_128(<16 x i8> %x0, <16 x i8
|
|||
; CHECK-NEXT: vpermb %xmm0, %xmm1, %xmm2 {%k1} ## encoding: [0x62,0xf2,0x75,0x09,0x8d,0xd0]
|
||||
; CHECK-NEXT: vpermb %xmm0, %xmm1, %xmm3 {%k1} {z} ## encoding: [0x62,0xf2,0x75,0x89,0x8d,0xd8]
|
||||
; CHECK-NEXT: vpermb %xmm0, %xmm1, %xmm0 ## encoding: [0x62,0xf2,0x75,0x08,0x8d,0xc0]
|
||||
; CHECK-NEXT: vpaddb %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x65,0x08,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %xmm0, %xmm3, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe1,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %xmm0, %xmm2, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0xfc,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.avx512.mask.permvar.qi.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %x3)
|
||||
%res1 = call <16 x i8> @llvm.x86.avx512.mask.permvar.qi.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> zeroinitializer, i16 %x3)
|
||||
|
@ -30,8 +30,8 @@ define <32 x i8>@test_int_x86_avx512_mask_permvar_qi_256(<32 x i8> %x0, <32 x i8
|
|||
; CHECK-NEXT: vpermb %ymm0, %ymm1, %ymm2 {%k1} ## encoding: [0x62,0xf2,0x75,0x29,0x8d,0xd0]
|
||||
; CHECK-NEXT: vpermb %ymm0, %ymm1, %ymm3 {%k1} {z} ## encoding: [0x62,0xf2,0x75,0xa9,0x8d,0xd8]
|
||||
; CHECK-NEXT: vpermb %ymm0, %ymm1, %ymm0 ## encoding: [0x62,0xf2,0x75,0x28,0x8d,0xc0]
|
||||
; CHECK-NEXT: vpaddb %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x65,0x28,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %ymm0, %ymm3, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe5,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %ymm0, %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xfc,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx512.mask.permvar.qi.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3)
|
||||
%res1 = call <32 x i8> @llvm.x86.avx512.mask.permvar.qi.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> zeroinitializer, i32 %x3)
|
||||
|
@ -50,8 +50,8 @@ define <16 x i8>@test_int_x86_avx512_mask_pmultishift_qb_128(<16 x i8> %x0, <16
|
|||
; CHECK-NEXT: vpmultishiftqb %xmm1, %xmm0, %xmm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x83,0xd1]
|
||||
; CHECK-NEXT: vpmultishiftqb %xmm1, %xmm0, %xmm3 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0x89,0x83,0xd9]
|
||||
; CHECK-NEXT: vpmultishiftqb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0xfd,0x08,0x83,0xc1]
|
||||
; CHECK-NEXT: vpaddb %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x65,0x08,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %xmm0, %xmm2, %xmm0 ## encoding: [0x62,0xf1,0x6d,0x08,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %xmm0, %xmm3, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe1,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %xmm0, %xmm2, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0xfc,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.avx512.mask.pmultishift.qb.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %x3)
|
||||
%res1 = call <16 x i8> @llvm.x86.avx512.mask.pmultishift.qb.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> zeroinitializer, i16 %x3)
|
||||
|
@ -70,8 +70,8 @@ define <32 x i8>@test_int_x86_avx512_mask_pmultishift_qb_256(<32 x i8> %x0, <32
|
|||
; CHECK-NEXT: vpmultishiftqb %ymm1, %ymm0, %ymm2 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x83,0xd1]
|
||||
; CHECK-NEXT: vpmultishiftqb %ymm1, %ymm0, %ymm3 {%k1} {z} ## encoding: [0x62,0xf2,0xfd,0xa9,0x83,0xd9]
|
||||
; CHECK-NEXT: vpmultishiftqb %ymm1, %ymm0, %ymm0 ## encoding: [0x62,0xf2,0xfd,0x28,0x83,0xc1]
|
||||
; CHECK-NEXT: vpaddb %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x65,0x28,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %ymm0, %ymm3, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe5,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %ymm0, %ymm2, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xfc,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx512.mask.pmultishift.qb.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3)
|
||||
%res1 = call <32 x i8> @llvm.x86.avx512.mask.pmultishift.qb.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> zeroinitializer, i32 %x3)
|
||||
|
@ -87,13 +87,13 @@ define <16 x i8>@test_int_x86_avx512_mask_vpermi2var_qi_128(<16 x i8> %x0, <16 x
|
|||
; CHECK-LABEL: test_int_x86_avx512_mask_vpermi2var_qi_128:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf]
|
||||
; CHECK-NEXT: vmovdqa64 %xmm1, %xmm3 ## encoding: [0x62,0xf1,0xfd,0x08,0x6f,0xd9]
|
||||
; CHECK-NEXT: vmovdqa %xmm1, %xmm3 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0xd9]
|
||||
; CHECK-NEXT: vpermi2b %xmm2, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x75,0xda]
|
||||
; CHECK-NEXT: vpermi2b %xmm2, %xmm0, %xmm1 ## encoding: [0x62,0xf2,0x7d,0x08,0x75,0xca]
|
||||
; CHECK-NEXT: vpxord %xmm4, %xmm4, %xmm4 ## encoding: [0x62,0xf1,0x5d,0x08,0xef,0xe4]
|
||||
; CHECK-NEXT: vpxor %xmm4, %xmm4, %xmm4 ## EVEX TO VEX Compression encoding: [0xc5,0xd9,0xef,0xe4]
|
||||
; CHECK-NEXT: vpermi2b %xmm2, %xmm0, %xmm4 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x75,0xe2]
|
||||
; CHECK-NEXT: vpaddb %xmm1, %xmm4, %xmm0 ## encoding: [0x62,0xf1,0x5d,0x08,0xfc,0xc1]
|
||||
; CHECK-NEXT: vpaddb %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x65,0x08,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %xmm1, %xmm4, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xd9,0xfc,0xc1]
|
||||
; CHECK-NEXT: vpaddb %xmm0, %xmm3, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe1,0xfc,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.avx512.mask.vpermi2var.qi.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %x3)
|
||||
%res1 = call <16 x i8> @llvm.x86.avx512.mask.vpermi2var.qi.128(<16 x i8> %x0, <16 x i8> zeroinitializer, <16 x i8> %x2, i16 %x3)
|
||||
|
@ -109,13 +109,13 @@ define <32 x i8>@test_int_x86_avx512_mask_vpermi2var_qi_256(<32 x i8> %x0, <32 x
|
|||
; CHECK-LABEL: test_int_x86_avx512_mask_vpermi2var_qi_256:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf]
|
||||
; CHECK-NEXT: vmovdqa64 %ymm1, %ymm3 ## encoding: [0x62,0xf1,0xfd,0x28,0x6f,0xd9]
|
||||
; CHECK-NEXT: vmovdqa %ymm1, %ymm3 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0xd9]
|
||||
; CHECK-NEXT: vpermi2b %ymm2, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x75,0xda]
|
||||
; CHECK-NEXT: vpermi2b %ymm2, %ymm0, %ymm1 ## encoding: [0x62,0xf2,0x7d,0x28,0x75,0xca]
|
||||
; CHECK-NEXT: vpxord %ymm4, %ymm4, %ymm4 ## encoding: [0x62,0xf1,0x5d,0x28,0xef,0xe4]
|
||||
; CHECK-NEXT: vpxor %ymm4, %ymm4, %ymm4 ## EVEX TO VEX Compression encoding: [0xc5,0xdd,0xef,0xe4]
|
||||
; CHECK-NEXT: vpermi2b %ymm2, %ymm0, %ymm4 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x75,0xe2]
|
||||
; CHECK-NEXT: vpaddb %ymm1, %ymm4, %ymm0 ## encoding: [0x62,0xf1,0x5d,0x28,0xfc,0xc1]
|
||||
; CHECK-NEXT: vpaddb %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x65,0x28,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %ymm1, %ymm4, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xdd,0xfc,0xc1]
|
||||
; CHECK-NEXT: vpaddb %ymm0, %ymm3, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe5,0xfc,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx512.mask.vpermi2var.qi.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3)
|
||||
%res1 = call <32 x i8> @llvm.x86.avx512.mask.vpermi2var.qi.256(<32 x i8> %x0, <32 x i8> zeroinitializer, <32 x i8> %x2, i32 %x3)
|
||||
|
@ -131,13 +131,13 @@ define <16 x i8>@test_int_x86_avx512_mask_vpermt2var_qi_128(<16 x i8> %x0, <16 x
|
|||
; CHECK-LABEL: test_int_x86_avx512_mask_vpermt2var_qi_128:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovw %edi, %k1 ## encoding: [0xc5,0xf8,0x92,0xcf]
|
||||
; CHECK-NEXT: vmovdqa64 %xmm1, %xmm3 ## encoding: [0x62,0xf1,0xfd,0x08,0x6f,0xd9]
|
||||
; CHECK-NEXT: vmovdqa %xmm1, %xmm3 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0xd9]
|
||||
; CHECK-NEXT: vpermt2b %xmm2, %xmm0, %xmm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x7d,0xda]
|
||||
; CHECK-NEXT: vpermt2b %xmm2, %xmm0, %xmm1 ## encoding: [0x62,0xf2,0x7d,0x08,0x7d,0xca]
|
||||
; CHECK-NEXT: vpxord %xmm4, %xmm4, %xmm4 ## encoding: [0x62,0xf1,0x5d,0x08,0xef,0xe4]
|
||||
; CHECK-NEXT: vpxor %xmm4, %xmm4, %xmm4 ## EVEX TO VEX Compression encoding: [0xc5,0xd9,0xef,0xe4]
|
||||
; CHECK-NEXT: vpermt2b %xmm2, %xmm0, %xmm4 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0x89,0x7d,0xe2]
|
||||
; CHECK-NEXT: vpaddb %xmm1, %xmm4, %xmm0 ## encoding: [0x62,0xf1,0x5d,0x08,0xfc,0xc1]
|
||||
; CHECK-NEXT: vpaddb %xmm0, %xmm3, %xmm0 ## encoding: [0x62,0xf1,0x65,0x08,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %xmm1, %xmm4, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xd9,0xfc,0xc1]
|
||||
; CHECK-NEXT: vpaddb %xmm0, %xmm3, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe1,0xfc,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.avx512.mask.vpermt2var.qi.128(<16 x i8> %x0, <16 x i8> %x1, <16 x i8> %x2, i16 %x3)
|
||||
%res1 = call <16 x i8> @llvm.x86.avx512.mask.vpermt2var.qi.128(<16 x i8> %x0, <16 x i8> zeroinitializer, <16 x i8> %x2, i16 %x3)
|
||||
|
@ -153,13 +153,13 @@ define <32 x i8>@test_int_x86_avx512_mask_vpermt2var_qi_256(<32 x i8> %x0, <32 x
|
|||
; CHECK-LABEL: test_int_x86_avx512_mask_vpermt2var_qi_256:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: kmovd %edi, %k1 ## encoding: [0xc5,0xfb,0x92,0xcf]
|
||||
; CHECK-NEXT: vmovdqa64 %ymm1, %ymm3 ## encoding: [0x62,0xf1,0xfd,0x28,0x6f,0xd9]
|
||||
; CHECK-NEXT: vmovdqa %ymm1, %ymm3 ## EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0xd9]
|
||||
; CHECK-NEXT: vpermt2b %ymm2, %ymm0, %ymm3 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x7d,0xda]
|
||||
; CHECK-NEXT: vpermt2b %ymm2, %ymm0, %ymm1 ## encoding: [0x62,0xf2,0x7d,0x28,0x7d,0xca]
|
||||
; CHECK-NEXT: vpxord %ymm4, %ymm4, %ymm4 ## encoding: [0x62,0xf1,0x5d,0x28,0xef,0xe4]
|
||||
; CHECK-NEXT: vpxor %ymm4, %ymm4, %ymm4 ## EVEX TO VEX Compression encoding: [0xc5,0xdd,0xef,0xe4]
|
||||
; CHECK-NEXT: vpermt2b %ymm2, %ymm0, %ymm4 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x7d,0xe2]
|
||||
; CHECK-NEXT: vpaddb %ymm1, %ymm4, %ymm0 ## encoding: [0x62,0xf1,0x5d,0x28,0xfc,0xc1]
|
||||
; CHECK-NEXT: vpaddb %ymm0, %ymm3, %ymm0 ## encoding: [0x62,0xf1,0x65,0x28,0xfc,0xc0]
|
||||
; CHECK-NEXT: vpaddb %ymm1, %ymm4, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xdd,0xfc,0xc1]
|
||||
; CHECK-NEXT: vpaddb %ymm0, %ymm3, %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xe5,0xfc,0xc0]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%res = call <32 x i8> @llvm.x86.avx512.mask.vpermt2var.qi.256(<32 x i8> %x0, <32 x i8> %x1, <32 x i8> %x2, i32 %x3)
|
||||
%res1 = call <32 x i8> @llvm.x86.avx512.mask.vpermt2var.qi.256(<32 x i8> %x0, <32 x i8> zeroinitializer, <32 x i8> %x2, i32 %x3)
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -8,7 +8,7 @@ define <8 x i32> @vpandd256(<8 x i32> %a, <8 x i32> %b) nounwind uwtable readnon
|
|||
; CHECK-LABEL: vpandd256:
|
||||
; CHECK: ## BB#0: ## %entry
|
||||
; CHECK-NEXT: vpaddd {{.*}}(%rip){1to8}, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vpandd %ymm1, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
; Force the execution domain with an add.
|
||||
|
@ -35,7 +35,7 @@ define <8 x i32> @vpord256(<8 x i32> %a, <8 x i32> %b) nounwind uwtable readnone
|
|||
; CHECK-LABEL: vpord256:
|
||||
; CHECK: ## BB#0: ## %entry
|
||||
; CHECK-NEXT: vpaddd {{.*}}(%rip){1to8}, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vpord %ymm1, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vpor %ymm1, %ymm0, %ymm0
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
; Force the execution domain with an add.
|
||||
|
@ -48,7 +48,7 @@ define <8 x i32> @vpxord256(<8 x i32> %a, <8 x i32> %b) nounwind uwtable readnon
|
|||
; CHECK-LABEL: vpxord256:
|
||||
; CHECK: ## BB#0: ## %entry
|
||||
; CHECK-NEXT: vpaddd {{.*}}(%rip){1to8}, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vpxord %ymm1, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vpxor %ymm1, %ymm0, %ymm0
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
; Force the execution domain with an add.
|
||||
|
@ -61,7 +61,7 @@ define <4 x i64> @vpandq256(<4 x i64> %a, <4 x i64> %b) nounwind uwtable readnon
|
|||
; CHECK-LABEL: vpandq256:
|
||||
; CHECK: ## BB#0: ## %entry
|
||||
; CHECK-NEXT: vpaddq {{.*}}(%rip){1to4}, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vpandq %ymm1, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
; Force the execution domain with an add.
|
||||
|
@ -88,7 +88,7 @@ define <4 x i64> @vporq256(<4 x i64> %a, <4 x i64> %b) nounwind uwtable readnone
|
|||
; CHECK-LABEL: vporq256:
|
||||
; CHECK: ## BB#0: ## %entry
|
||||
; CHECK-NEXT: vpaddq {{.*}}(%rip){1to4}, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vporq %ymm1, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vpor %ymm1, %ymm0, %ymm0
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
; Force the execution domain with an add.
|
||||
|
@ -101,7 +101,7 @@ define <4 x i64> @vpxorq256(<4 x i64> %a, <4 x i64> %b) nounwind uwtable readnon
|
|||
; CHECK-LABEL: vpxorq256:
|
||||
; CHECK: ## BB#0: ## %entry
|
||||
; CHECK-NEXT: vpaddq {{.*}}(%rip){1to4}, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vpxorq %ymm1, %ymm0, %ymm0
|
||||
; CHECK-NEXT: vpxor %ymm1, %ymm0, %ymm0
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
; Force the execution domain with an add.
|
||||
|
@ -116,7 +116,7 @@ define <4 x i32> @vpandd128(<4 x i32> %a, <4 x i32> %b) nounwind uwtable readnon
|
|||
; CHECK-LABEL: vpandd128:
|
||||
; CHECK: ## BB#0: ## %entry
|
||||
; CHECK-NEXT: vpaddd {{.*}}(%rip){1to4}, %xmm0, %xmm0
|
||||
; CHECK-NEXT: vpandd %xmm1, %xmm0, %xmm0
|
||||
; CHECK-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
; Force the execution domain with an add.
|
||||
|
@ -143,7 +143,7 @@ define <4 x i32> @vpord128(<4 x i32> %a, <4 x i32> %b) nounwind uwtable readnone
|
|||
; CHECK-LABEL: vpord128:
|
||||
; CHECK: ## BB#0: ## %entry
|
||||
; CHECK-NEXT: vpaddd {{.*}}(%rip){1to4}, %xmm0, %xmm0
|
||||
; CHECK-NEXT: vpord %xmm1, %xmm0, %xmm0
|
||||
; CHECK-NEXT: vpor %xmm1, %xmm0, %xmm0
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
; Force the execution domain with an add.
|
||||
|
@ -156,7 +156,7 @@ define <4 x i32> @vpxord128(<4 x i32> %a, <4 x i32> %b) nounwind uwtable readnon
|
|||
; CHECK-LABEL: vpxord128:
|
||||
; CHECK: ## BB#0: ## %entry
|
||||
; CHECK-NEXT: vpaddd {{.*}}(%rip){1to4}, %xmm0, %xmm0
|
||||
; CHECK-NEXT: vpxord %xmm1, %xmm0, %xmm0
|
||||
; CHECK-NEXT: vpxor %xmm1, %xmm0, %xmm0
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
; Force the execution domain with an add.
|
||||
|
@ -169,7 +169,7 @@ define <2 x i64> @vpandq128(<2 x i64> %a, <2 x i64> %b) nounwind uwtable readnon
|
|||
; CHECK-LABEL: vpandq128:
|
||||
; CHECK: ## BB#0: ## %entry
|
||||
; CHECK-NEXT: vpaddq {{.*}}(%rip), %xmm0, %xmm0
|
||||
; CHECK-NEXT: vpandq %xmm1, %xmm0, %xmm0
|
||||
; CHECK-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
; Force the execution domain with an add.
|
||||
|
@ -196,7 +196,7 @@ define <2 x i64> @vporq128(<2 x i64> %a, <2 x i64> %b) nounwind uwtable readnone
|
|||
; CHECK-LABEL: vporq128:
|
||||
; CHECK: ## BB#0: ## %entry
|
||||
; CHECK-NEXT: vpaddq {{.*}}(%rip), %xmm0, %xmm0
|
||||
; CHECK-NEXT: vporq %xmm1, %xmm0, %xmm0
|
||||
; CHECK-NEXT: vpor %xmm1, %xmm0, %xmm0
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
; Force the execution domain with an add.
|
||||
|
@ -209,7 +209,7 @@ define <2 x i64> @vpxorq128(<2 x i64> %a, <2 x i64> %b) nounwind uwtable readnon
|
|||
; CHECK-LABEL: vpxorq128:
|
||||
; CHECK: ## BB#0: ## %entry
|
||||
; CHECK-NEXT: vpaddq {{.*}}(%rip), %xmm0, %xmm0
|
||||
; CHECK-NEXT: vpxorq %xmm1, %xmm0, %xmm0
|
||||
; CHECK-NEXT: vpxor %xmm1, %xmm0, %xmm0
|
||||
; CHECK-NEXT: retq
|
||||
entry:
|
||||
; Force the execution domain with an add.
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
define <8 x i32> @test_256_1(i8 * %addr) {
|
||||
; CHECK-LABEL: test_256_1:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x10,0x07]
|
||||
; CHECK-NEXT: vmovups (%rdi), %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x10,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <8 x i32>*
|
||||
%res = load <8 x i32>, <8 x i32>* %vaddr, align 1
|
||||
|
@ -14,7 +14,7 @@ define <8 x i32> @test_256_1(i8 * %addr) {
|
|||
define <8 x i32> @test_256_2(i8 * %addr) {
|
||||
; CHECK-LABEL: test_256_2:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0x07]
|
||||
; CHECK-NEXT: vmovaps (%rdi), %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <8 x i32>*
|
||||
%res = load <8 x i32>, <8 x i32>* %vaddr, align 32
|
||||
|
@ -24,7 +24,7 @@ define <8 x i32> @test_256_2(i8 * %addr) {
|
|||
define void @test_256_3(i8 * %addr, <4 x i64> %data) {
|
||||
; CHECK-LABEL: test_256_3:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps %ymm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x28,0x29,0x07]
|
||||
; CHECK-NEXT: vmovaps %ymm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x29,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x i64>*
|
||||
store <4 x i64>%data, <4 x i64>* %vaddr, align 32
|
||||
|
@ -34,7 +34,7 @@ define void @test_256_3(i8 * %addr, <4 x i64> %data) {
|
|||
define void @test_256_4(i8 * %addr, <8 x i32> %data) {
|
||||
; CHECK-LABEL: test_256_4:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups %ymm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x28,0x11,0x07]
|
||||
; CHECK-NEXT: vmovups %ymm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x11,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <8 x i32>*
|
||||
store <8 x i32>%data, <8 x i32>* %vaddr, align 1
|
||||
|
@ -44,7 +44,7 @@ define void @test_256_4(i8 * %addr, <8 x i32> %data) {
|
|||
define void @test_256_5(i8 * %addr, <8 x i32> %data) {
|
||||
; CHECK-LABEL: test_256_5:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps %ymm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x28,0x29,0x07]
|
||||
; CHECK-NEXT: vmovaps %ymm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x29,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <8 x i32>*
|
||||
store <8 x i32>%data, <8 x i32>* %vaddr, align 32
|
||||
|
@ -54,7 +54,7 @@ define void @test_256_5(i8 * %addr, <8 x i32> %data) {
|
|||
define <4 x i64> @test_256_6(i8 * %addr) {
|
||||
; CHECK-LABEL: test_256_6:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0x07]
|
||||
; CHECK-NEXT: vmovaps (%rdi), %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x i64>*
|
||||
%res = load <4 x i64>, <4 x i64>* %vaddr, align 32
|
||||
|
@ -64,7 +64,7 @@ define <4 x i64> @test_256_6(i8 * %addr) {
|
|||
define void @test_256_7(i8 * %addr, <4 x i64> %data) {
|
||||
; CHECK-LABEL: test_256_7:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups %ymm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x28,0x11,0x07]
|
||||
; CHECK-NEXT: vmovups %ymm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x11,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x i64>*
|
||||
store <4 x i64>%data, <4 x i64>* %vaddr, align 1
|
||||
|
@ -74,7 +74,7 @@ define void @test_256_7(i8 * %addr, <4 x i64> %data) {
|
|||
define <4 x i64> @test_256_8(i8 * %addr) {
|
||||
; CHECK-LABEL: test_256_8:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x10,0x07]
|
||||
; CHECK-NEXT: vmovups (%rdi), %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x10,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x i64>*
|
||||
%res = load <4 x i64>, <4 x i64>* %vaddr, align 1
|
||||
|
@ -84,7 +84,7 @@ define <4 x i64> @test_256_8(i8 * %addr) {
|
|||
define void @test_256_9(i8 * %addr, <4 x double> %data) {
|
||||
; CHECK-LABEL: test_256_9:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps %ymm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x28,0x29,0x07]
|
||||
; CHECK-NEXT: vmovaps %ymm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x29,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x double>*
|
||||
store <4 x double>%data, <4 x double>* %vaddr, align 32
|
||||
|
@ -94,7 +94,7 @@ define void @test_256_9(i8 * %addr, <4 x double> %data) {
|
|||
define <4 x double> @test_256_10(i8 * %addr) {
|
||||
; CHECK-LABEL: test_256_10:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0x07]
|
||||
; CHECK-NEXT: vmovaps (%rdi), %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x double>*
|
||||
%res = load <4 x double>, <4 x double>* %vaddr, align 32
|
||||
|
@ -104,7 +104,7 @@ define <4 x double> @test_256_10(i8 * %addr) {
|
|||
define void @test_256_11(i8 * %addr, <8 x float> %data) {
|
||||
; CHECK-LABEL: test_256_11:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps %ymm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x28,0x29,0x07]
|
||||
; CHECK-NEXT: vmovaps %ymm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x29,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <8 x float>*
|
||||
store <8 x float>%data, <8 x float>* %vaddr, align 32
|
||||
|
@ -114,7 +114,7 @@ define void @test_256_11(i8 * %addr, <8 x float> %data) {
|
|||
define <8 x float> @test_256_12(i8 * %addr) {
|
||||
; CHECK-LABEL: test_256_12:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x28,0x07]
|
||||
; CHECK-NEXT: vmovaps (%rdi), %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <8 x float>*
|
||||
%res = load <8 x float>, <8 x float>* %vaddr, align 32
|
||||
|
@ -124,7 +124,7 @@ define <8 x float> @test_256_12(i8 * %addr) {
|
|||
define void @test_256_13(i8 * %addr, <4 x double> %data) {
|
||||
; CHECK-LABEL: test_256_13:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups %ymm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x28,0x11,0x07]
|
||||
; CHECK-NEXT: vmovups %ymm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x11,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x double>*
|
||||
store <4 x double>%data, <4 x double>* %vaddr, align 1
|
||||
|
@ -134,7 +134,7 @@ define void @test_256_13(i8 * %addr, <4 x double> %data) {
|
|||
define <4 x double> @test_256_14(i8 * %addr) {
|
||||
; CHECK-LABEL: test_256_14:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x10,0x07]
|
||||
; CHECK-NEXT: vmovups (%rdi), %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x10,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x double>*
|
||||
%res = load <4 x double>, <4 x double>* %vaddr, align 1
|
||||
|
@ -144,7 +144,7 @@ define <4 x double> @test_256_14(i8 * %addr) {
|
|||
define void @test_256_15(i8 * %addr, <8 x float> %data) {
|
||||
; CHECK-LABEL: test_256_15:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups %ymm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x28,0x11,0x07]
|
||||
; CHECK-NEXT: vmovups %ymm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x11,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <8 x float>*
|
||||
store <8 x float>%data, <8 x float>* %vaddr, align 1
|
||||
|
@ -154,7 +154,7 @@ define void @test_256_15(i8 * %addr, <8 x float> %data) {
|
|||
define <8 x float> @test_256_16(i8 * %addr) {
|
||||
; CHECK-LABEL: test_256_16:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups (%rdi), %ymm0 ## encoding: [0x62,0xf1,0x7c,0x28,0x10,0x07]
|
||||
; CHECK-NEXT: vmovups (%rdi), %ymm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfc,0x10,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <8 x float>*
|
||||
%res = load <8 x float>, <8 x float>* %vaddr, align 1
|
||||
|
@ -164,7 +164,7 @@ define <8 x float> @test_256_16(i8 * %addr) {
|
|||
define <8 x i32> @test_256_17(i8 * %addr, <8 x i32> %old, <8 x i32> %mask1) {
|
||||
; CHECK-LABEL: test_256_17:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2 ## encoding: [0x62,0xf1,0x6d,0x28,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqd %ymm2, %ymm1, %k1 ## encoding: [0x62,0xf3,0x75,0x28,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vpblendmd (%rdi), %ymm0, %ymm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x64,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -178,7 +178,7 @@ define <8 x i32> @test_256_17(i8 * %addr, <8 x i32> %old, <8 x i32> %mask1) {
|
|||
define <8 x i32> @test_256_18(i8 * %addr, <8 x i32> %old, <8 x i32> %mask1) {
|
||||
; CHECK-LABEL: test_256_18:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2 ## encoding: [0x62,0xf1,0x6d,0x28,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqd %ymm2, %ymm1, %k1 ## encoding: [0x62,0xf3,0x75,0x28,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vpblendmd (%rdi), %ymm0, %ymm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x64,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -192,7 +192,7 @@ define <8 x i32> @test_256_18(i8 * %addr, <8 x i32> %old, <8 x i32> %mask1) {
|
|||
define <8 x i32> @test_256_19(i8 * %addr, <8 x i32> %mask1) {
|
||||
; CHECK-LABEL: test_256_19:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm1, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %ymm1, %ymm1, %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqd %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf3,0x7d,0x28,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovdqa32 (%rdi), %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0xa9,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -206,7 +206,7 @@ define <8 x i32> @test_256_19(i8 * %addr, <8 x i32> %mask1) {
|
|||
define <8 x i32> @test_256_20(i8 * %addr, <8 x i32> %mask1) {
|
||||
; CHECK-LABEL: test_256_20:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm1, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %ymm1, %ymm1, %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqd %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf3,0x7d,0x28,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovdqu32 (%rdi), %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7e,0xa9,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -220,7 +220,7 @@ define <8 x i32> @test_256_20(i8 * %addr, <8 x i32> %mask1) {
|
|||
define <4 x i64> @test_256_21(i8 * %addr, <4 x i64> %old, <4 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_256_21:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2 ## encoding: [0x62,0xf1,0x6d,0x28,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqq %ymm2, %ymm1, %k1 ## encoding: [0x62,0xf3,0xf5,0x28,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vpblendmq (%rdi), %ymm0, %ymm0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x64,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -234,7 +234,7 @@ define <4 x i64> @test_256_21(i8 * %addr, <4 x i64> %old, <4 x i64> %mask1) {
|
|||
define <4 x i64> @test_256_22(i8 * %addr, <4 x i64> %old, <4 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_256_22:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2 ## encoding: [0x62,0xf1,0x6d,0x28,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqq %ymm2, %ymm1, %k1 ## encoding: [0x62,0xf3,0xf5,0x28,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vpblendmq (%rdi), %ymm0, %ymm0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x64,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -248,7 +248,7 @@ define <4 x i64> @test_256_22(i8 * %addr, <4 x i64> %old, <4 x i64> %mask1) {
|
|||
define <4 x i64> @test_256_23(i8 * %addr, <4 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_256_23:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm1, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %ymm1, %ymm1, %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqq %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x28,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovdqa64 (%rdi), %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0xa9,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -262,7 +262,7 @@ define <4 x i64> @test_256_23(i8 * %addr, <4 x i64> %mask1) {
|
|||
define <4 x i64> @test_256_24(i8 * %addr, <4 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_256_24:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm1, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %ymm1, %ymm1, %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqq %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x28,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovdqu64 (%rdi), %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfe,0xa9,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -276,7 +276,7 @@ define <4 x i64> @test_256_24(i8 * %addr, <4 x i64> %mask1) {
|
|||
define <8 x float> @test_256_25(i8 * %addr, <8 x float> %old, <8 x float> %mask1) {
|
||||
; CHECK-LABEL: test_256_25:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2 ## encoding: [0x62,0xf1,0x6d,0x28,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xef,0xd2]
|
||||
; CHECK-NEXT: vcmpordps %ymm2, %ymm1, %k1 ## encoding: [0x62,0xf1,0x74,0x28,0xc2,0xca,0x07]
|
||||
; CHECK-NEXT: vcmpneqps %ymm2, %ymm1, %k1 {%k1} ## encoding: [0x62,0xf1,0x74,0x29,0xc2,0xca,0x04]
|
||||
; CHECK-NEXT: vblendmps (%rdi), %ymm0, %ymm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x65,0x07]
|
||||
|
@ -291,7 +291,7 @@ define <8 x float> @test_256_25(i8 * %addr, <8 x float> %old, <8 x float> %mask1
|
|||
define <8 x float> @test_256_26(i8 * %addr, <8 x float> %old, <8 x float> %mask1) {
|
||||
; CHECK-LABEL: test_256_26:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2 ## encoding: [0x62,0xf1,0x6d,0x28,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xef,0xd2]
|
||||
; CHECK-NEXT: vcmpordps %ymm2, %ymm1, %k1 ## encoding: [0x62,0xf1,0x74,0x28,0xc2,0xca,0x07]
|
||||
; CHECK-NEXT: vcmpneqps %ymm2, %ymm1, %k1 {%k1} ## encoding: [0x62,0xf1,0x74,0x29,0xc2,0xca,0x04]
|
||||
; CHECK-NEXT: vblendmps (%rdi), %ymm0, %ymm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x65,0x07]
|
||||
|
@ -306,7 +306,7 @@ define <8 x float> @test_256_26(i8 * %addr, <8 x float> %old, <8 x float> %mask1
|
|||
define <8 x float> @test_256_27(i8 * %addr, <8 x float> %mask1) {
|
||||
; CHECK-LABEL: test_256_27:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm1, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %ymm1, %ymm1, %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xef,0xc9]
|
||||
; CHECK-NEXT: vcmpordps %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf1,0x7c,0x28,0xc2,0xc9,0x07]
|
||||
; CHECK-NEXT: vcmpneqps %ymm1, %ymm0, %k1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0xc2,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovaps (%rdi), %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xa9,0x28,0x07]
|
||||
|
@ -321,7 +321,7 @@ define <8 x float> @test_256_27(i8 * %addr, <8 x float> %mask1) {
|
|||
define <8 x float> @test_256_28(i8 * %addr, <8 x float> %mask1) {
|
||||
; CHECK-LABEL: test_256_28:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm1, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %ymm1, %ymm1, %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xef,0xc9]
|
||||
; CHECK-NEXT: vcmpordps %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf1,0x7c,0x28,0xc2,0xc9,0x07]
|
||||
; CHECK-NEXT: vcmpneqps %ymm1, %ymm0, %k1 {%k1} ## encoding: [0x62,0xf1,0x7c,0x29,0xc2,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovups (%rdi), %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0xa9,0x10,0x07]
|
||||
|
@ -336,7 +336,7 @@ define <8 x float> @test_256_28(i8 * %addr, <8 x float> %mask1) {
|
|||
define <4 x double> @test_256_29(i8 * %addr, <4 x double> %old, <4 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_256_29:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2 ## encoding: [0x62,0xf1,0x6d,0x28,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqq %ymm2, %ymm1, %k1 ## encoding: [0x62,0xf3,0xf5,0x28,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vblendmpd (%rdi), %ymm0, %ymm0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x65,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -350,7 +350,7 @@ define <4 x double> @test_256_29(i8 * %addr, <4 x double> %old, <4 x i64> %mask1
|
|||
define <4 x double> @test_256_30(i8 * %addr, <4 x double> %old, <4 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_256_30:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2 ## encoding: [0x62,0xf1,0x6d,0x28,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2 ## EVEX TO VEX Compression encoding: [0xc5,0xed,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqq %ymm2, %ymm1, %k1 ## encoding: [0x62,0xf3,0xf5,0x28,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vblendmpd (%rdi), %ymm0, %ymm0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x29,0x65,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -364,7 +364,7 @@ define <4 x double> @test_256_30(i8 * %addr, <4 x double> %old, <4 x i64> %mask1
|
|||
define <4 x double> @test_256_31(i8 * %addr, <4 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_256_31:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm1, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %ymm1, %ymm1, %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqq %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x28,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovapd (%rdi), %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0xa9,0x28,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -378,7 +378,7 @@ define <4 x double> @test_256_31(i8 * %addr, <4 x i64> %mask1) {
|
|||
define <4 x double> @test_256_32(i8 * %addr, <4 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_256_32:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm1, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x75,0x28,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %ymm1, %ymm1, %ymm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf5,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqq %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x28,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovupd (%rdi), %ymm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0xa9,0x10,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -392,7 +392,7 @@ define <4 x double> @test_256_32(i8 * %addr, <4 x i64> %mask1) {
|
|||
define <4 x i32> @test_128_1(i8 * %addr) {
|
||||
; CHECK-LABEL: test_128_1:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x10,0x07]
|
||||
; CHECK-NEXT: vmovups (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x10,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x i32>*
|
||||
%res = load <4 x i32>, <4 x i32>* %vaddr, align 1
|
||||
|
@ -402,7 +402,7 @@ define <4 x i32> @test_128_1(i8 * %addr) {
|
|||
define <4 x i32> @test_128_2(i8 * %addr) {
|
||||
; CHECK-LABEL: test_128_2:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0x07]
|
||||
; CHECK-NEXT: vmovaps (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x i32>*
|
||||
%res = load <4 x i32>, <4 x i32>* %vaddr, align 16
|
||||
|
@ -412,7 +412,7 @@ define <4 x i32> @test_128_2(i8 * %addr) {
|
|||
define void @test_128_3(i8 * %addr, <2 x i64> %data) {
|
||||
; CHECK-LABEL: test_128_3:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps %xmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x08,0x29,0x07]
|
||||
; CHECK-NEXT: vmovaps %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <2 x i64>*
|
||||
store <2 x i64>%data, <2 x i64>* %vaddr, align 16
|
||||
|
@ -422,7 +422,7 @@ define void @test_128_3(i8 * %addr, <2 x i64> %data) {
|
|||
define void @test_128_4(i8 * %addr, <4 x i32> %data) {
|
||||
; CHECK-LABEL: test_128_4:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups %xmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x08,0x11,0x07]
|
||||
; CHECK-NEXT: vmovups %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x11,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x i32>*
|
||||
store <4 x i32>%data, <4 x i32>* %vaddr, align 1
|
||||
|
@ -432,7 +432,7 @@ define void @test_128_4(i8 * %addr, <4 x i32> %data) {
|
|||
define void @test_128_5(i8 * %addr, <4 x i32> %data) {
|
||||
; CHECK-LABEL: test_128_5:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps %xmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x08,0x29,0x07]
|
||||
; CHECK-NEXT: vmovaps %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x i32>*
|
||||
store <4 x i32>%data, <4 x i32>* %vaddr, align 16
|
||||
|
@ -442,7 +442,7 @@ define void @test_128_5(i8 * %addr, <4 x i32> %data) {
|
|||
define <2 x i64> @test_128_6(i8 * %addr) {
|
||||
; CHECK-LABEL: test_128_6:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0x07]
|
||||
; CHECK-NEXT: vmovaps (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <2 x i64>*
|
||||
%res = load <2 x i64>, <2 x i64>* %vaddr, align 16
|
||||
|
@ -452,7 +452,7 @@ define <2 x i64> @test_128_6(i8 * %addr) {
|
|||
define void @test_128_7(i8 * %addr, <2 x i64> %data) {
|
||||
; CHECK-LABEL: test_128_7:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups %xmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x08,0x11,0x07]
|
||||
; CHECK-NEXT: vmovups %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x11,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <2 x i64>*
|
||||
store <2 x i64>%data, <2 x i64>* %vaddr, align 1
|
||||
|
@ -462,7 +462,7 @@ define void @test_128_7(i8 * %addr, <2 x i64> %data) {
|
|||
define <2 x i64> @test_128_8(i8 * %addr) {
|
||||
; CHECK-LABEL: test_128_8:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x10,0x07]
|
||||
; CHECK-NEXT: vmovups (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x10,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <2 x i64>*
|
||||
%res = load <2 x i64>, <2 x i64>* %vaddr, align 1
|
||||
|
@ -472,7 +472,7 @@ define <2 x i64> @test_128_8(i8 * %addr) {
|
|||
define void @test_128_9(i8 * %addr, <2 x double> %data) {
|
||||
; CHECK-LABEL: test_128_9:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps %xmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x08,0x29,0x07]
|
||||
; CHECK-NEXT: vmovaps %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <2 x double>*
|
||||
store <2 x double>%data, <2 x double>* %vaddr, align 16
|
||||
|
@ -482,7 +482,7 @@ define void @test_128_9(i8 * %addr, <2 x double> %data) {
|
|||
define <2 x double> @test_128_10(i8 * %addr) {
|
||||
; CHECK-LABEL: test_128_10:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0x07]
|
||||
; CHECK-NEXT: vmovaps (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <2 x double>*
|
||||
%res = load <2 x double>, <2 x double>* %vaddr, align 16
|
||||
|
@ -492,7 +492,7 @@ define <2 x double> @test_128_10(i8 * %addr) {
|
|||
define void @test_128_11(i8 * %addr, <4 x float> %data) {
|
||||
; CHECK-LABEL: test_128_11:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps %xmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x08,0x29,0x07]
|
||||
; CHECK-NEXT: vmovaps %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x29,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x float>*
|
||||
store <4 x float>%data, <4 x float>* %vaddr, align 16
|
||||
|
@ -502,7 +502,7 @@ define void @test_128_11(i8 * %addr, <4 x float> %data) {
|
|||
define <4 x float> @test_128_12(i8 * %addr) {
|
||||
; CHECK-LABEL: test_128_12:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovaps (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0x07]
|
||||
; CHECK-NEXT: vmovaps (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x float>*
|
||||
%res = load <4 x float>, <4 x float>* %vaddr, align 16
|
||||
|
@ -512,7 +512,7 @@ define <4 x float> @test_128_12(i8 * %addr) {
|
|||
define void @test_128_13(i8 * %addr, <2 x double> %data) {
|
||||
; CHECK-LABEL: test_128_13:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups %xmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x08,0x11,0x07]
|
||||
; CHECK-NEXT: vmovups %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x11,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <2 x double>*
|
||||
store <2 x double>%data, <2 x double>* %vaddr, align 1
|
||||
|
@ -522,7 +522,7 @@ define void @test_128_13(i8 * %addr, <2 x double> %data) {
|
|||
define <2 x double> @test_128_14(i8 * %addr) {
|
||||
; CHECK-LABEL: test_128_14:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x10,0x07]
|
||||
; CHECK-NEXT: vmovups (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x10,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <2 x double>*
|
||||
%res = load <2 x double>, <2 x double>* %vaddr, align 1
|
||||
|
@ -532,7 +532,7 @@ define <2 x double> @test_128_14(i8 * %addr) {
|
|||
define void @test_128_15(i8 * %addr, <4 x float> %data) {
|
||||
; CHECK-LABEL: test_128_15:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups %xmm0, (%rdi) ## encoding: [0x62,0xf1,0x7c,0x08,0x11,0x07]
|
||||
; CHECK-NEXT: vmovups %xmm0, (%rdi) ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x11,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x float>*
|
||||
store <4 x float>%data, <4 x float>* %vaddr, align 1
|
||||
|
@ -542,7 +542,7 @@ define void @test_128_15(i8 * %addr, <4 x float> %data) {
|
|||
define <4 x float> @test_128_16(i8 * %addr) {
|
||||
; CHECK-LABEL: test_128_16:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vmovups (%rdi), %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x10,0x07]
|
||||
; CHECK-NEXT: vmovups (%rdi), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x10,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
%vaddr = bitcast i8* %addr to <4 x float>*
|
||||
%res = load <4 x float>, <4 x float>* %vaddr, align 1
|
||||
|
@ -552,7 +552,7 @@ define <4 x float> @test_128_16(i8 * %addr) {
|
|||
define <4 x i32> @test_128_17(i8 * %addr, <4 x i32> %old, <4 x i32> %mask1) {
|
||||
; CHECK-LABEL: test_128_17:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2 ## encoding: [0x62,0xf1,0x6d,0x08,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqd %xmm2, %xmm1, %k1 ## encoding: [0x62,0xf3,0x75,0x08,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vpblendmd (%rdi), %xmm0, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x64,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -566,7 +566,7 @@ define <4 x i32> @test_128_17(i8 * %addr, <4 x i32> %old, <4 x i32> %mask1) {
|
|||
define <4 x i32> @test_128_18(i8 * %addr, <4 x i32> %old, <4 x i32> %mask1) {
|
||||
; CHECK-LABEL: test_128_18:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2 ## encoding: [0x62,0xf1,0x6d,0x08,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqd %xmm2, %xmm1, %k1 ## encoding: [0x62,0xf3,0x75,0x08,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vpblendmd (%rdi), %xmm0, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x64,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -580,7 +580,7 @@ define <4 x i32> @test_128_18(i8 * %addr, <4 x i32> %old, <4 x i32> %mask1) {
|
|||
define <4 x i32> @test_128_19(i8 * %addr, <4 x i32> %mask1) {
|
||||
; CHECK-LABEL: test_128_19:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm1, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqd %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0x7d,0x08,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovdqa32 (%rdi), %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7d,0x89,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -594,7 +594,7 @@ define <4 x i32> @test_128_19(i8 * %addr, <4 x i32> %mask1) {
|
|||
define <4 x i32> @test_128_20(i8 * %addr, <4 x i32> %mask1) {
|
||||
; CHECK-LABEL: test_128_20:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm1, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqd %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0x7d,0x08,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovdqu32 (%rdi), %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7e,0x89,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -608,7 +608,7 @@ define <4 x i32> @test_128_20(i8 * %addr, <4 x i32> %mask1) {
|
|||
define <2 x i64> @test_128_21(i8 * %addr, <2 x i64> %old, <2 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_128_21:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2 ## encoding: [0x62,0xf1,0x6d,0x08,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqq %xmm2, %xmm1, %k1 ## encoding: [0x62,0xf3,0xf5,0x08,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vpblendmq (%rdi), %xmm0, %xmm0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x64,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -622,7 +622,7 @@ define <2 x i64> @test_128_21(i8 * %addr, <2 x i64> %old, <2 x i64> %mask1) {
|
|||
define <2 x i64> @test_128_22(i8 * %addr, <2 x i64> %old, <2 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_128_22:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2 ## encoding: [0x62,0xf1,0x6d,0x08,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqq %xmm2, %xmm1, %k1 ## encoding: [0x62,0xf3,0xf5,0x08,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vpblendmq (%rdi), %xmm0, %xmm0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x64,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -636,7 +636,7 @@ define <2 x i64> @test_128_22(i8 * %addr, <2 x i64> %old, <2 x i64> %mask1) {
|
|||
define <2 x i64> @test_128_23(i8 * %addr, <2 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_128_23:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm1, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqq %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x08,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovdqa64 (%rdi), %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0x89,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -650,7 +650,7 @@ define <2 x i64> @test_128_23(i8 * %addr, <2 x i64> %mask1) {
|
|||
define <2 x i64> @test_128_24(i8 * %addr, <2 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_128_24:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm1, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqq %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x08,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovdqu64 (%rdi), %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfe,0x89,0x6f,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -664,7 +664,7 @@ define <2 x i64> @test_128_24(i8 * %addr, <2 x i64> %mask1) {
|
|||
define <4 x float> @test_128_25(i8 * %addr, <4 x float> %old, <4 x i32> %mask1) {
|
||||
; CHECK-LABEL: test_128_25:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2 ## encoding: [0x62,0xf1,0x6d,0x08,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqd %xmm2, %xmm1, %k1 ## encoding: [0x62,0xf3,0x75,0x08,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vblendmps (%rdi), %xmm0, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x65,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -678,7 +678,7 @@ define <4 x float> @test_128_25(i8 * %addr, <4 x float> %old, <4 x i32> %mask1)
|
|||
define <4 x float> @test_128_26(i8 * %addr, <4 x float> %old, <4 x i32> %mask1) {
|
||||
; CHECK-LABEL: test_128_26:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2 ## encoding: [0x62,0xf1,0x6d,0x08,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqd %xmm2, %xmm1, %k1 ## encoding: [0x62,0xf3,0x75,0x08,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vblendmps (%rdi), %xmm0, %xmm0 {%k1} ## encoding: [0x62,0xf2,0x7d,0x09,0x65,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -692,7 +692,7 @@ define <4 x float> @test_128_26(i8 * %addr, <4 x float> %old, <4 x i32> %mask1)
|
|||
define <4 x float> @test_128_27(i8 * %addr, <4 x i32> %mask1) {
|
||||
; CHECK-LABEL: test_128_27:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm1, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqd %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0x7d,0x08,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovaps (%rdi), %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x89,0x28,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -706,7 +706,7 @@ define <4 x float> @test_128_27(i8 * %addr, <4 x i32> %mask1) {
|
|||
define <4 x float> @test_128_28(i8 * %addr, <4 x i32> %mask1) {
|
||||
; CHECK-LABEL: test_128_28:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm1, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqd %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0x7d,0x08,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovups (%rdi), %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0x7c,0x89,0x10,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -720,7 +720,7 @@ define <4 x float> @test_128_28(i8 * %addr, <4 x i32> %mask1) {
|
|||
define <2 x double> @test_128_29(i8 * %addr, <2 x double> %old, <2 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_128_29:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2 ## encoding: [0x62,0xf1,0x6d,0x08,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqq %xmm2, %xmm1, %k1 ## encoding: [0x62,0xf3,0xf5,0x08,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vblendmpd (%rdi), %xmm0, %xmm0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x65,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -734,7 +734,7 @@ define <2 x double> @test_128_29(i8 * %addr, <2 x double> %old, <2 x i64> %mask1
|
|||
define <2 x double> @test_128_30(i8 * %addr, <2 x double> %old, <2 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_128_30:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2 ## encoding: [0x62,0xf1,0x6d,0x08,0xef,0xd2]
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2 ## EVEX TO VEX Compression encoding: [0xc5,0xe9,0xef,0xd2]
|
||||
; CHECK-NEXT: vpcmpneqq %xmm2, %xmm1, %k1 ## encoding: [0x62,0xf3,0xf5,0x08,0x1f,0xca,0x04]
|
||||
; CHECK-NEXT: vblendmpd (%rdi), %xmm0, %xmm0 {%k1} ## encoding: [0x62,0xf2,0xfd,0x09,0x65,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -748,7 +748,7 @@ define <2 x double> @test_128_30(i8 * %addr, <2 x double> %old, <2 x i64> %mask1
|
|||
define <2 x double> @test_128_31(i8 * %addr, <2 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_128_31:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm1, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqq %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x08,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovapd (%rdi), %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0x89,0x28,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
@ -762,7 +762,7 @@ define <2 x double> @test_128_31(i8 * %addr, <2 x i64> %mask1) {
|
|||
define <2 x double> @test_128_32(i8 * %addr, <2 x i64> %mask1) {
|
||||
; CHECK-LABEL: test_128_32:
|
||||
; CHECK: ## BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm1, %xmm1, %xmm1 ## encoding: [0x62,0xf1,0x75,0x08,0xef,0xc9]
|
||||
; CHECK-NEXT: vpxor %xmm1, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf1,0xef,0xc9]
|
||||
; CHECK-NEXT: vpcmpneqq %xmm1, %xmm0, %k1 ## encoding: [0x62,0xf3,0xfd,0x08,0x1f,0xc9,0x04]
|
||||
; CHECK-NEXT: vmovupd (%rdi), %xmm0 {%k1} {z} ## encoding: [0x62,0xf1,0xfd,0x89,0x10,0x07]
|
||||
; CHECK-NEXT: retq ## encoding: [0xc3]
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
; RUN: llc < %s -march=x86-64 -mtriple=x86_64-apple-darwin -mcpu=skx --show-mc-encoding | FileCheck %s
|
||||
|
||||
define void @f256(<8 x float> %A, <8 x float> %AA, i8* %B, <4 x double> %C, <4 x double> %CC, i32 %D, <4 x i64> %E, <4 x i64> %EE) {
|
||||
; CHECK: vmovntps %ymm{{.*}} ## encoding: [0x62
|
||||
; CHECK: vmovntps %ymm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
%cast = bitcast i8* %B to <8 x float>*
|
||||
%A2 = fadd <8 x float> %A, %AA
|
||||
store <8 x float> %A2, <8 x float>* %cast, align 64, !nontemporal !0
|
||||
; CHECK: vmovntdq %ymm{{.*}} ## encoding: [0x62
|
||||
; CHECK: vmovntdq %ymm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
%cast1 = bitcast i8* %B to <4 x i64>*
|
||||
%E2 = add <4 x i64> %E, %EE
|
||||
store <4 x i64> %E2, <4 x i64>* %cast1, align 64, !nontemporal !0
|
||||
; CHECK: vmovntpd %ymm{{.*}} ## encoding: [0x62
|
||||
; CHECK: vmovntpd %ymm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
%cast2 = bitcast i8* %B to <4 x double>*
|
||||
%C2 = fadd <4 x double> %C, %CC
|
||||
store <4 x double> %C2, <4 x double>* %cast2, align 64, !nontemporal !0
|
||||
|
@ -17,15 +17,15 @@ define void @f256(<8 x float> %A, <8 x float> %AA, i8* %B, <4 x double> %C, <4 x
|
|||
}
|
||||
|
||||
define void @f128(<4 x float> %A, <4 x float> %AA, i8* %B, <2 x double> %C, <2 x double> %CC, i32 %D, <2 x i64> %E, <2 x i64> %EE) {
|
||||
; CHECK: vmovntps %xmm{{.*}} ## encoding: [0x62
|
||||
; CHECK: vmovntps %xmm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
%cast = bitcast i8* %B to <4 x float>*
|
||||
%A2 = fadd <4 x float> %A, %AA
|
||||
store <4 x float> %A2, <4 x float>* %cast, align 64, !nontemporal !0
|
||||
; CHECK: vmovntdq %xmm{{.*}} ## encoding: [0x62
|
||||
; CHECK: vmovntdq %xmm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
%cast1 = bitcast i8* %B to <2 x i64>*
|
||||
%E2 = add <2 x i64> %E, %EE
|
||||
store <2 x i64> %E2, <2 x i64>* %cast1, align 64, !nontemporal !0
|
||||
; CHECK: vmovntpd %xmm{{.*}} ## encoding: [0x62
|
||||
; CHECK: vmovntpd %xmm{{.*}} ## EVEX TO VEX Compression encoding: [0xc5
|
||||
%cast2 = bitcast i8* %B to <2 x double>*
|
||||
%C2 = fadd <2 x double> %C, %CC
|
||||
store <2 x double> %C2, <2 x double>* %cast2, align 64, !nontemporal !0
|
||||
|
|
|
@ -73,7 +73,7 @@ define <8 x float> @_inreg8xfloat(float %a) {
|
|||
define <8 x float> @_ss8xfloat_mask(<8 x float> %i, float %a, <8 x i32> %mask1) {
|
||||
; CHECK-LABEL: _ss8xfloat_mask:
|
||||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm3, %ymm3, %ymm3
|
||||
; CHECK-NEXT: vpxor %ymm3, %ymm3, %ymm3
|
||||
; CHECK-NEXT: vpcmpneqd %ymm3, %ymm2, %k1
|
||||
; CHECK-NEXT: vbroadcastss %xmm1, %ymm0 {%k1}
|
||||
; CHECK-NEXT: retq
|
||||
|
@ -87,7 +87,7 @@ define <8 x float> @_ss8xfloat_mask(<8 x float> %i, float %a, <8 x i32> %mask1
|
|||
define <8 x float> @_ss8xfloat_maskz(float %a, <8 x i32> %mask1) {
|
||||
; CHECK-LABEL: _ss8xfloat_maskz:
|
||||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: vpxord %ymm2, %ymm2, %ymm2
|
||||
; CHECK-NEXT: vpxor %ymm2, %ymm2, %ymm2
|
||||
; CHECK-NEXT: vpcmpneqd %ymm2, %ymm1, %k1
|
||||
; CHECK-NEXT: vbroadcastss %xmm0, %ymm0 {%k1} {z}
|
||||
; CHECK-NEXT: retq
|
||||
|
@ -111,7 +111,7 @@ define <4 x float> @_inreg4xfloat(float %a) {
|
|||
define <4 x float> @_ss4xfloat_mask(<4 x float> %i, float %a, <4 x i32> %mask1) {
|
||||
; CHECK-LABEL: _ss4xfloat_mask:
|
||||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm3, %xmm3, %xmm3
|
||||
; CHECK-NEXT: vpxor %xmm3, %xmm3, %xmm3
|
||||
; CHECK-NEXT: vpcmpneqd %xmm3, %xmm2, %k1
|
||||
; CHECK-NEXT: vbroadcastss %xmm1, %xmm0 {%k1}
|
||||
; CHECK-NEXT: retq
|
||||
|
@ -125,7 +125,7 @@ define <4 x float> @_ss4xfloat_mask(<4 x float> %i, float %a, <4 x i32> %mask1
|
|||
define <4 x float> @_ss4xfloat_maskz(float %a, <4 x i32> %mask1) {
|
||||
; CHECK-LABEL: _ss4xfloat_maskz:
|
||||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; CHECK-NEXT: vpcmpneqd %xmm2, %xmm1, %k1
|
||||
; CHECK-NEXT: vbroadcastss %xmm0, %xmm0 {%k1} {z}
|
||||
; CHECK-NEXT: retq
|
||||
|
@ -149,7 +149,7 @@ define <4 x double> @_inreg4xdouble(double %a) {
|
|||
define <4 x double> @_ss4xdouble_mask(<4 x double> %i, double %a, <4 x i32> %mask1) {
|
||||
; CHECK-LABEL: _ss4xdouble_mask:
|
||||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm3, %xmm3, %xmm3
|
||||
; CHECK-NEXT: vpxor %xmm3, %xmm3, %xmm3
|
||||
; CHECK-NEXT: vpcmpneqd %xmm3, %xmm2, %k1
|
||||
; CHECK-NEXT: vbroadcastsd %xmm1, %ymm0 {%k1}
|
||||
; CHECK-NEXT: retq
|
||||
|
@ -163,7 +163,7 @@ define <4 x double> @_ss4xdouble_mask(<4 x double> %i, double %a, <4 x i32> %m
|
|||
define <4 x double> @_ss4xdouble_maskz(double %a, <4 x i32> %mask1) {
|
||||
; CHECK-LABEL: _ss4xdouble_maskz:
|
||||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; CHECK-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; CHECK-NEXT: vpcmpneqd %xmm2, %xmm1, %k1
|
||||
; CHECK-NEXT: vbroadcastsd %xmm0, %ymm0 {%k1} {z}
|
||||
; CHECK-NEXT: retq
|
||||
|
|
|
@ -238,7 +238,7 @@ define void @test12(float* %base, <4 x float> %V, <4 x i1> %mask) {
|
|||
define <2 x float> @test13(float* %base, <2 x float> %src0, <2 x i32> %trigger) {
|
||||
; SKX-LABEL: test13:
|
||||
; SKX: # BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2],xmm2[3]
|
||||
; SKX-NEXT: vpcmpeqq %xmm2, %xmm1, %k0
|
||||
; SKX-NEXT: kshiftlb $6, %k0, %k0
|
||||
|
@ -268,7 +268,7 @@ define <2 x float> @test13(float* %base, <2 x float> %src0, <2 x i32> %trigger)
|
|||
define void @test14(float* %base, <2 x float> %V, <2 x i32> %trigger) {
|
||||
; SKX-LABEL: test14:
|
||||
; SKX: # BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2],xmm2[3]
|
||||
; SKX-NEXT: vpcmpeqq %xmm2, %xmm1, %k0
|
||||
; SKX-NEXT: kshiftlb $6, %k0, %k0
|
||||
|
@ -314,7 +314,7 @@ define <16 x double> @test16(double* %base, <16 x double> %src0, <16 x i32> %tri
|
|||
; SKX-LABEL: test16:
|
||||
; SKX: # BB#0:
|
||||
; SKX-NEXT: vextracti32x8 $1, %zmm2, %ymm3
|
||||
; SKX-NEXT: vpxord %ymm4, %ymm4, %ymm4
|
||||
; SKX-NEXT: vpxor %ymm4, %ymm4, %ymm4
|
||||
; SKX-NEXT: vpcmpeqd %ymm4, %ymm3, %k1
|
||||
; SKX-NEXT: vpcmpeqd %ymm4, %ymm2, %k2
|
||||
; SKX-NEXT: kmovb %k2, %eax
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -80,7 +80,7 @@ define <4 x i32> @test_store_4xi32(<4 x i32>* nocapture %addr, <4 x i32> %value,
|
|||
; SKX32-LABEL: test_store_4xi32:
|
||||
; SKX32: # BB#0:
|
||||
; SKX32-NEXT: vpaddd %xmm1, %xmm0, %xmm0
|
||||
; SKX32-NEXT: vmovdqu64 %xmm0, (%rdi)
|
||||
; SKX32-NEXT: vmovdqu %xmm0, (%rdi)
|
||||
; SKX32-NEXT: retq
|
||||
%foo = add <4 x i32> %value, %value2 ; to force integer type on store
|
||||
store <4 x i32> %foo, <4 x i32>* %addr, align 1
|
||||
|
@ -123,7 +123,7 @@ define <4 x i32> @test_store_4xi32_aligned(<4 x i32>* nocapture %addr, <4 x i32>
|
|||
; SKX32-LABEL: test_store_4xi32_aligned:
|
||||
; SKX32: # BB#0:
|
||||
; SKX32-NEXT: vpaddd %xmm1, %xmm0, %xmm0
|
||||
; SKX32-NEXT: vmovdqa64 %xmm0, (%rdi)
|
||||
; SKX32-NEXT: vmovdqa %xmm0, (%rdi)
|
||||
; SKX32-NEXT: retq
|
||||
%foo = add <4 x i32> %value, %value2 ; to force integer type on store
|
||||
store <4 x i32> %foo, <4 x i32>* %addr, align 16
|
||||
|
|
|
@ -22,9 +22,8 @@ define double @FsANDPSrr(double %x, double %y) {
|
|||
;
|
||||
; AVX512DQ-LABEL: FsANDPSrr:
|
||||
; AVX512DQ: # BB#0:
|
||||
; AVX512DQ-NEXT: vandps %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7c,0x08,0x54,0xc1]
|
||||
; AVX512DQ-NEXT: vandps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x54,0xc1]
|
||||
; AVX512DQ-NEXT: retq # encoding: [0xc3]
|
||||
;
|
||||
%bc1 = bitcast double %x to i64
|
||||
%bc2 = bitcast double %y to i64
|
||||
%and = and i64 %bc1, %bc2
|
||||
|
@ -46,9 +45,8 @@ define double @FsANDNPSrr(double %x, double %y) {
|
|||
;
|
||||
; AVX512DQ-LABEL: FsANDNPSrr:
|
||||
; AVX512DQ: # BB#0:
|
||||
; AVX512DQ-NEXT: vandnps %xmm0, %xmm1, %xmm0 # encoding: [0x62,0xf1,0x74,0x08,0x55,0xc0]
|
||||
; AVX512DQ-NEXT: vandnps %xmm0, %xmm1, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf0,0x55,0xc0]
|
||||
; AVX512DQ-NEXT: retq # encoding: [0xc3]
|
||||
;
|
||||
%bc1 = bitcast double %x to i64
|
||||
%bc2 = bitcast double %y to i64
|
||||
%not = xor i64 %bc2, -1
|
||||
|
@ -70,9 +68,8 @@ define double @FsORPSrr(double %x, double %y) {
|
|||
;
|
||||
; AVX512DQ-LABEL: FsORPSrr:
|
||||
; AVX512DQ: # BB#0:
|
||||
; AVX512DQ-NEXT: vorps %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7c,0x08,0x56,0xc1]
|
||||
; AVX512DQ-NEXT: vorps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x56,0xc1]
|
||||
; AVX512DQ-NEXT: retq # encoding: [0xc3]
|
||||
;
|
||||
%bc1 = bitcast double %x to i64
|
||||
%bc2 = bitcast double %y to i64
|
||||
%or = or i64 %bc1, %bc2
|
||||
|
@ -93,9 +90,8 @@ define double @FsXORPSrr(double %x, double %y) {
|
|||
;
|
||||
; AVX512DQ-LABEL: FsXORPSrr:
|
||||
; AVX512DQ: # BB#0:
|
||||
; AVX512DQ-NEXT: vxorps %xmm1, %xmm0, %xmm0 # encoding: [0x62,0xf1,0x7c,0x08,0x57,0xc1]
|
||||
; AVX512DQ-NEXT: vxorps %xmm1, %xmm0, %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x57,0xc1]
|
||||
; AVX512DQ-NEXT: retq # encoding: [0xc3]
|
||||
;
|
||||
%bc1 = bitcast double %x to i64
|
||||
%bc2 = bitcast double %y to i64
|
||||
%xor = xor i64 %bc1, %bc2
|
||||
|
|
|
@ -310,7 +310,7 @@ define <8 x i32> @test6(<8 x i32>%a1, <8 x i32*> %ptr) {
|
|||
; SKX-NEXT: kxnorw %k0, %k0, %k2
|
||||
; SKX-NEXT: vpgatherqd (,%zmm1), %ymm2 {%k2}
|
||||
; SKX-NEXT: vpscatterqd %ymm0, (,%zmm1) {%k1}
|
||||
; SKX-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; SKX-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; SKX-NEXT: retq
|
||||
;
|
||||
; SKX_32-LABEL: test6:
|
||||
|
@ -319,7 +319,7 @@ define <8 x i32> @test6(<8 x i32>%a1, <8 x i32*> %ptr) {
|
|||
; SKX_32-NEXT: kxnorw %k0, %k0, %k2
|
||||
; SKX_32-NEXT: vpgatherdd (,%ymm1), %ymm2 {%k2}
|
||||
; SKX_32-NEXT: vpscatterdd %ymm0, (,%ymm1) {%k1}
|
||||
; SKX_32-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; SKX_32-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; SKX_32-NEXT: retl
|
||||
|
||||
%a = call <8 x i32> @llvm.masked.gather.v8i32(<8 x i32*> %ptr, i32 4, <8 x i1> <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>, <8 x i32> undef)
|
||||
|
@ -359,7 +359,7 @@ define <8 x i32> @test7(i32* %base, <8 x i32> %ind, i8 %mask) {
|
|||
; SKX-NEXT: kmovb %esi, %k1
|
||||
; SKX-NEXT: kmovw %k1, %k2
|
||||
; SKX-NEXT: vpgatherdd (%rdi,%ymm0,4), %ymm1 {%k2}
|
||||
; SKX-NEXT: vmovdqa64 %ymm1, %ymm2
|
||||
; SKX-NEXT: vmovdqa %ymm1, %ymm2
|
||||
; SKX-NEXT: vpgatherdd (%rdi,%ymm0,4), %ymm2 {%k1}
|
||||
; SKX-NEXT: vpaddd %ymm2, %ymm1, %ymm0
|
||||
; SKX-NEXT: retq
|
||||
|
@ -370,7 +370,7 @@ define <8 x i32> @test7(i32* %base, <8 x i32> %ind, i8 %mask) {
|
|||
; SKX_32-NEXT: kmovb {{[0-9]+}}(%esp), %k1
|
||||
; SKX_32-NEXT: kmovw %k1, %k2
|
||||
; SKX_32-NEXT: vpgatherdd (%eax,%ymm0,4), %ymm1 {%k2}
|
||||
; SKX_32-NEXT: vmovdqa64 %ymm1, %ymm2
|
||||
; SKX_32-NEXT: vmovdqa %ymm1, %ymm2
|
||||
; SKX_32-NEXT: vpgatherdd (%eax,%ymm0,4), %ymm2 {%k1}
|
||||
; SKX_32-NEXT: vpaddd %ymm2, %ymm1, %ymm0
|
||||
; SKX_32-NEXT: retl
|
||||
|
@ -1233,7 +1233,7 @@ define <2 x i32> @test23(i32* %base, <2 x i32> %ind, <2 x i1> %mask, <2 x i32> %
|
|||
; SKX-NEXT: vpsllq $63, %xmm1, %xmm1
|
||||
; SKX-NEXT: vptestmq %xmm1, %xmm1, %k1
|
||||
; SKX-NEXT: vpgatherqq (%rdi,%xmm0,8), %xmm2 {%k1}
|
||||
; SKX-NEXT: vmovdqa64 %xmm2, %xmm0
|
||||
; SKX-NEXT: vmovdqa %xmm2, %xmm0
|
||||
; SKX-NEXT: retq
|
||||
;
|
||||
; SKX_32-LABEL: test23:
|
||||
|
@ -1242,7 +1242,7 @@ define <2 x i32> @test23(i32* %base, <2 x i32> %ind, <2 x i1> %mask, <2 x i32> %
|
|||
; SKX_32-NEXT: vptestmq %xmm1, %xmm1, %k1
|
||||
; SKX_32-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; SKX_32-NEXT: vpgatherqq (%eax,%xmm0,8), %xmm2 {%k1}
|
||||
; SKX_32-NEXT: vmovdqa64 %xmm2, %xmm0
|
||||
; SKX_32-NEXT: vmovdqa %xmm2, %xmm0
|
||||
; SKX_32-NEXT: retl
|
||||
%sext_ind = sext <2 x i32> %ind to <2 x i64>
|
||||
%gep.random = getelementptr i32, i32* %base, <2 x i64> %sext_ind
|
||||
|
@ -1276,7 +1276,7 @@ define <2 x i32> @test24(i32* %base, <2 x i32> %ind) {
|
|||
; SKX: # BB#0:
|
||||
; SKX-NEXT: kxnorw %k0, %k0, %k1
|
||||
; SKX-NEXT: vpgatherqq (%rdi,%xmm0,8), %xmm1 {%k1}
|
||||
; SKX-NEXT: vmovdqa64 %xmm1, %xmm0
|
||||
; SKX-NEXT: vmovdqa %xmm1, %xmm0
|
||||
; SKX-NEXT: retq
|
||||
;
|
||||
; SKX_32-LABEL: test24:
|
||||
|
@ -1284,7 +1284,7 @@ define <2 x i32> @test24(i32* %base, <2 x i32> %ind) {
|
|||
; SKX_32-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; SKX_32-NEXT: kxnorw %k0, %k0, %k1
|
||||
; SKX_32-NEXT: vpgatherqq (%eax,%xmm0,8), %xmm1 {%k1}
|
||||
; SKX_32-NEXT: vmovdqa64 %xmm1, %xmm0
|
||||
; SKX_32-NEXT: vmovdqa %xmm1, %xmm0
|
||||
; SKX_32-NEXT: retl
|
||||
%sext_ind = sext <2 x i32> %ind to <2 x i64>
|
||||
%gep.random = getelementptr i32, i32* %base, <2 x i64> %sext_ind
|
||||
|
@ -1324,7 +1324,7 @@ define <2 x i64> @test25(i64* %base, <2 x i32> %ind, <2 x i1> %mask, <2 x i64> %
|
|||
; SKX-NEXT: vpsllq $63, %xmm1, %xmm1
|
||||
; SKX-NEXT: vptestmq %xmm1, %xmm1, %k1
|
||||
; SKX-NEXT: vpgatherqq (%rdi,%xmm0,8), %xmm2 {%k1}
|
||||
; SKX-NEXT: vmovdqa64 %xmm2, %xmm0
|
||||
; SKX-NEXT: vmovdqa %xmm2, %xmm0
|
||||
; SKX-NEXT: retq
|
||||
;
|
||||
; SKX_32-LABEL: test25:
|
||||
|
@ -1333,7 +1333,7 @@ define <2 x i64> @test25(i64* %base, <2 x i32> %ind, <2 x i1> %mask, <2 x i64> %
|
|||
; SKX_32-NEXT: vptestmq %xmm1, %xmm1, %k1
|
||||
; SKX_32-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; SKX_32-NEXT: vpgatherqq (%eax,%xmm0,8), %xmm2 {%k1}
|
||||
; SKX_32-NEXT: vmovdqa64 %xmm2, %xmm0
|
||||
; SKX_32-NEXT: vmovdqa %xmm2, %xmm0
|
||||
; SKX_32-NEXT: retl
|
||||
%sext_ind = sext <2 x i32> %ind to <2 x i64>
|
||||
%gep.random = getelementptr i64, i64* %base, <2 x i64> %sext_ind
|
||||
|
@ -1370,7 +1370,7 @@ define <2 x i64> @test26(i64* %base, <2 x i32> %ind, <2 x i64> %src0) {
|
|||
; SKX: # BB#0:
|
||||
; SKX-NEXT: kxnorw %k0, %k0, %k1
|
||||
; SKX-NEXT: vpgatherqq (%rdi,%xmm0,8), %xmm1 {%k1}
|
||||
; SKX-NEXT: vmovdqa64 %xmm1, %xmm0
|
||||
; SKX-NEXT: vmovdqa %xmm1, %xmm0
|
||||
; SKX-NEXT: retq
|
||||
;
|
||||
; SKX_32-LABEL: test26:
|
||||
|
@ -1378,7 +1378,7 @@ define <2 x i64> @test26(i64* %base, <2 x i32> %ind, <2 x i64> %src0) {
|
|||
; SKX_32-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; SKX_32-NEXT: kxnorw %k0, %k0, %k1
|
||||
; SKX_32-NEXT: vpgatherqq (%eax,%xmm0,8), %xmm1 {%k1}
|
||||
; SKX_32-NEXT: vmovdqa64 %xmm1, %xmm0
|
||||
; SKX_32-NEXT: vmovdqa %xmm1, %xmm0
|
||||
; SKX_32-NEXT: retl
|
||||
%sext_ind = sext <2 x i32> %ind to <2 x i64>
|
||||
%gep.random = getelementptr i64, i64* %base, <2 x i64> %sext_ind
|
||||
|
|
|
@ -27,7 +27,7 @@ define <2 x double> @test6(<2 x i64> %trigger, <2 x double>* %addr, <2 x double>
|
|||
;
|
||||
; SKX-LABEL: test6:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpcmpeqq %xmm2, %xmm0, %k1
|
||||
; SKX-NEXT: vmovupd (%rdi), %xmm1 {%k1}
|
||||
; SKX-NEXT: vmovapd %xmm1, %xmm0
|
||||
|
@ -56,7 +56,7 @@ define <4 x float> @test7(<4 x i32> %trigger, <4 x float>* %addr, <4 x float> %d
|
|||
;
|
||||
; SKX-LABEL: test7:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpcmpeqd %xmm2, %xmm0, %k1
|
||||
; SKX-NEXT: vmovups (%rdi), %xmm1 {%k1}
|
||||
; SKX-NEXT: vmovaps %xmm1, %xmm0
|
||||
|
@ -93,10 +93,10 @@ define <4 x i32> @test8(<4 x i32> %trigger, <4 x i32>* %addr, <4 x i32> %dst) {
|
|||
;
|
||||
; SKX-LABEL: test8:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpcmpeqd %xmm2, %xmm0, %k1
|
||||
; SKX-NEXT: vmovdqu32 (%rdi), %xmm1 {%k1}
|
||||
; SKX-NEXT: vmovdqa64 %xmm1, %xmm0
|
||||
; SKX-NEXT: vmovdqa %xmm1, %xmm0
|
||||
; SKX-NEXT: retq
|
||||
%mask = icmp eq <4 x i32> %trigger, zeroinitializer
|
||||
%res = call <4 x i32> @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %addr, i32 4, <4 x i1>%mask, <4 x i32>%dst)
|
||||
|
@ -127,7 +127,7 @@ define void @test9(<4 x i32> %trigger, <4 x i32>* %addr, <4 x i32> %val) {
|
|||
;
|
||||
; SKX-LABEL: test9:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpcmpeqd %xmm2, %xmm0, %k1
|
||||
; SKX-NEXT: vmovdqu32 %xmm1, (%rdi) {%k1}
|
||||
; SKX-NEXT: retq
|
||||
|
@ -169,7 +169,7 @@ define <4 x double> @test10(<4 x i32> %trigger, <4 x double>* %addr, <4 x double
|
|||
;
|
||||
; SKX-LABEL: test10:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpcmpeqd %xmm2, %xmm0, %k1
|
||||
; SKX-NEXT: vmovapd (%rdi), %ymm1 {%k1}
|
||||
; SKX-NEXT: vmovapd %ymm1, %ymm0
|
||||
|
@ -209,7 +209,7 @@ define <4 x double> @test10b(<4 x i32> %trigger, <4 x double>* %addr, <4 x doubl
|
|||
;
|
||||
; SKX-LABEL: test10b:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpcmpeqd %xmm1, %xmm0, %k1
|
||||
; SKX-NEXT: vmovapd (%rdi), %ymm0 {%k1} {z}
|
||||
; SKX-NEXT: retq
|
||||
|
@ -252,7 +252,7 @@ define <8 x float> @test11a(<8 x i32> %trigger, <8 x float>* %addr, <8 x float>
|
|||
;
|
||||
; SKX-LABEL: test11a:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %ymm2, %ymm2, %ymm2
|
||||
; SKX-NEXT: vpxor %ymm2, %ymm2, %ymm2
|
||||
; SKX-NEXT: vpcmpeqd %ymm2, %ymm0, %k1
|
||||
; SKX-NEXT: vmovaps (%rdi), %ymm1 {%k1}
|
||||
; SKX-NEXT: vmovaps %ymm1, %ymm0
|
||||
|
@ -302,7 +302,7 @@ define <8 x i32> @test11b(<8 x i1> %mask, <8 x i32>* %addr, <8 x i32> %dst) {
|
|||
; SKX-NEXT: vpsllw $15, %xmm0, %xmm0
|
||||
; SKX-NEXT: vpmovw2m %xmm0, %k1
|
||||
; SKX-NEXT: vmovdqu32 (%rdi), %ymm1 {%k1}
|
||||
; SKX-NEXT: vmovdqa64 %ymm1, %ymm0
|
||||
; SKX-NEXT: vmovdqa %ymm1, %ymm0
|
||||
; SKX-NEXT: retq
|
||||
%res = call <8 x i32> @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %addr, i32 4, <8 x i1>%mask, <8 x i32>%dst)
|
||||
ret <8 x i32> %res
|
||||
|
@ -425,7 +425,7 @@ define void @test12(<8 x i32> %trigger, <8 x i32>* %addr, <8 x i32> %val) {
|
|||
;
|
||||
; SKX-LABEL: test12:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %ymm2, %ymm2, %ymm2
|
||||
; SKX-NEXT: vpxor %ymm2, %ymm2, %ymm2
|
||||
; SKX-NEXT: vpcmpeqd %ymm2, %ymm0, %k1
|
||||
; SKX-NEXT: vmovdqu32 %ymm1, (%rdi) {%k1}
|
||||
; SKX-NEXT: retq
|
||||
|
@ -464,7 +464,7 @@ define void @test14(<2 x i32> %trigger, <2 x float>* %addr, <2 x float> %val) {
|
|||
;
|
||||
; SKX-LABEL: test14:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2],xmm2[3]
|
||||
; SKX-NEXT: vpcmpeqq %xmm2, %xmm0, %k0
|
||||
; SKX-NEXT: kshiftlw $14, %k0, %k0
|
||||
|
@ -509,7 +509,7 @@ define void @test15(<2 x i32> %trigger, <2 x i32>* %addr, <2 x i32> %val) {
|
|||
;
|
||||
; SKX-LABEL: test15:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2],xmm2[3]
|
||||
; SKX-NEXT: vpcmpeqq %xmm2, %xmm0, %k1
|
||||
; SKX-NEXT: vpmovqd %xmm1, (%rdi) {%k1}
|
||||
|
@ -552,7 +552,7 @@ define <2 x float> @test16(<2 x i32> %trigger, <2 x float>* %addr, <2 x float> %
|
|||
;
|
||||
; SKX-LABEL: test16:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2],xmm2[3]
|
||||
; SKX-NEXT: vpcmpeqq %xmm2, %xmm0, %k0
|
||||
; SKX-NEXT: kshiftlw $14, %k0, %k0
|
||||
|
@ -604,7 +604,7 @@ define <2 x i32> @test17(<2 x i32> %trigger, <2 x i32>* %addr, <2 x i32> %dst) {
|
|||
;
|
||||
; SKX-LABEL: test17:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; SKX-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm2[1],xmm0[2],xmm2[3]
|
||||
; SKX-NEXT: vpcmpeqq %xmm2, %xmm0, %k0
|
||||
; SKX-NEXT: kshiftlw $14, %k0, %k0
|
||||
|
@ -648,7 +648,7 @@ define <2 x float> @test18(<2 x i32> %trigger, <2 x float>* %addr) {
|
|||
;
|
||||
; SKX-LABEL: test18:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; SKX-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3]
|
||||
; SKX-NEXT: vpcmpeqq %xmm1, %xmm0, %k0
|
||||
; SKX-NEXT: kshiftlw $14, %k0, %k0
|
||||
|
|
|
@ -116,7 +116,7 @@ define void @test_zero_v4f32(<4 x float>* %dst) {
|
|||
;
|
||||
; VLX-LABEL: test_zero_v4f32:
|
||||
; VLX: # BB#0:
|
||||
; VLX-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; VLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; VLX-NEXT: vmovntdq %xmm0, (%rdi)
|
||||
; VLX-NEXT: retq
|
||||
store <4 x float> zeroinitializer, <4 x float>* %dst, align 16, !nontemporal !1
|
||||
|
@ -138,7 +138,7 @@ define void @test_zero_v4i32(<4 x i32>* %dst) {
|
|||
;
|
||||
; VLX-LABEL: test_zero_v4i32:
|
||||
; VLX: # BB#0:
|
||||
; VLX-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; VLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; VLX-NEXT: vmovntdq %xmm0, (%rdi)
|
||||
; VLX-NEXT: retq
|
||||
store <4 x i32> zeroinitializer, <4 x i32>* %dst, align 16, !nontemporal !1
|
||||
|
@ -161,7 +161,7 @@ define void @test_zero_v2f64(<2 x double>* %dst) {
|
|||
;
|
||||
; VLX-LABEL: test_zero_v2f64:
|
||||
; VLX: # BB#0:
|
||||
; VLX-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; VLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; VLX-NEXT: vmovntdq %xmm0, (%rdi)
|
||||
; VLX-NEXT: retq
|
||||
store <2 x double> zeroinitializer, <2 x double>* %dst, align 16, !nontemporal !1
|
||||
|
@ -183,7 +183,7 @@ define void @test_zero_v2i64(<2 x i64>* %dst) {
|
|||
;
|
||||
; VLX-LABEL: test_zero_v2i64:
|
||||
; VLX: # BB#0:
|
||||
; VLX-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; VLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; VLX-NEXT: vmovntdq %xmm0, (%rdi)
|
||||
; VLX-NEXT: retq
|
||||
store <2 x i64> zeroinitializer, <2 x i64>* %dst, align 16, !nontemporal !1
|
||||
|
@ -205,7 +205,7 @@ define void @test_zero_v8i16(<8 x i16>* %dst) {
|
|||
;
|
||||
; VLX-LABEL: test_zero_v8i16:
|
||||
; VLX: # BB#0:
|
||||
; VLX-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; VLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; VLX-NEXT: vmovntdq %xmm0, (%rdi)
|
||||
; VLX-NEXT: retq
|
||||
store <8 x i16> zeroinitializer, <8 x i16>* %dst, align 16, !nontemporal !1
|
||||
|
@ -227,7 +227,7 @@ define void @test_zero_v16i8(<16 x i8>* %dst) {
|
|||
;
|
||||
; VLX-LABEL: test_zero_v16i8:
|
||||
; VLX: # BB#0:
|
||||
; VLX-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; VLX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; VLX-NEXT: vmovntdq %xmm0, (%rdi)
|
||||
; VLX-NEXT: retq
|
||||
store <16 x i8> zeroinitializer, <16 x i8>* %dst, align 16, !nontemporal !1
|
||||
|
@ -253,7 +253,7 @@ define void @test_zero_v8f32(<8 x float>* %dst) {
|
|||
;
|
||||
; VLX-LABEL: test_zero_v8f32:
|
||||
; VLX: # BB#0:
|
||||
; VLX-NEXT: vpxord %ymm0, %ymm0, %ymm0
|
||||
; VLX-NEXT: vpxor %ymm0, %ymm0, %ymm0
|
||||
; VLX-NEXT: vmovntdq %ymm0, (%rdi)
|
||||
; VLX-NEXT: retq
|
||||
store <8 x float> zeroinitializer, <8 x float>* %dst, align 32, !nontemporal !1
|
||||
|
@ -277,7 +277,7 @@ define void @test_zero_v8i32(<8 x i32>* %dst) {
|
|||
;
|
||||
; VLX-LABEL: test_zero_v8i32:
|
||||
; VLX: # BB#0:
|
||||
; VLX-NEXT: vpxord %ymm0, %ymm0, %ymm0
|
||||
; VLX-NEXT: vpxor %ymm0, %ymm0, %ymm0
|
||||
; VLX-NEXT: vmovntdq %ymm0, (%rdi)
|
||||
; VLX-NEXT: retq
|
||||
store <8 x i32> zeroinitializer, <8 x i32>* %dst, align 32, !nontemporal !1
|
||||
|
@ -301,7 +301,7 @@ define void @test_zero_v4f64(<4 x double>* %dst) {
|
|||
;
|
||||
; VLX-LABEL: test_zero_v4f64:
|
||||
; VLX: # BB#0:
|
||||
; VLX-NEXT: vpxord %ymm0, %ymm0, %ymm0
|
||||
; VLX-NEXT: vpxor %ymm0, %ymm0, %ymm0
|
||||
; VLX-NEXT: vmovntdq %ymm0, (%rdi)
|
||||
; VLX-NEXT: retq
|
||||
store <4 x double> zeroinitializer, <4 x double>* %dst, align 32, !nontemporal !1
|
||||
|
@ -325,7 +325,7 @@ define void @test_zero_v4i64(<4 x i64>* %dst) {
|
|||
;
|
||||
; VLX-LABEL: test_zero_v4i64:
|
||||
; VLX: # BB#0:
|
||||
; VLX-NEXT: vpxord %ymm0, %ymm0, %ymm0
|
||||
; VLX-NEXT: vpxor %ymm0, %ymm0, %ymm0
|
||||
; VLX-NEXT: vmovntdq %ymm0, (%rdi)
|
||||
; VLX-NEXT: retq
|
||||
store <4 x i64> zeroinitializer, <4 x i64>* %dst, align 32, !nontemporal !1
|
||||
|
@ -349,7 +349,7 @@ define void @test_zero_v16i16(<16 x i16>* %dst) {
|
|||
;
|
||||
; VLX-LABEL: test_zero_v16i16:
|
||||
; VLX: # BB#0:
|
||||
; VLX-NEXT: vpxord %ymm0, %ymm0, %ymm0
|
||||
; VLX-NEXT: vpxor %ymm0, %ymm0, %ymm0
|
||||
; VLX-NEXT: vmovntdq %ymm0, (%rdi)
|
||||
; VLX-NEXT: retq
|
||||
store <16 x i16> zeroinitializer, <16 x i16>* %dst, align 32, !nontemporal !1
|
||||
|
@ -373,7 +373,7 @@ define void @test_zero_v32i8(<32 x i8>* %dst) {
|
|||
;
|
||||
; VLX-LABEL: test_zero_v32i8:
|
||||
; VLX: # BB#0:
|
||||
; VLX-NEXT: vpxord %ymm0, %ymm0, %ymm0
|
||||
; VLX-NEXT: vpxor %ymm0, %ymm0, %ymm0
|
||||
; VLX-NEXT: vmovntdq %ymm0, (%rdi)
|
||||
; VLX-NEXT: retq
|
||||
store <32 x i8> zeroinitializer, <32 x i8>* %dst, align 32, !nontemporal !1
|
||||
|
|
|
@ -57,7 +57,7 @@ define i32 @test_x86_sse_comieq_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse_comieq_ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2f,0xc1]
|
||||
; SKX-NEXT: vcomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc1]
|
||||
; SKX-NEXT: setnp %al ## encoding: [0x0f,0x9b,0xc0]
|
||||
; SKX-NEXT: sete %cl ## encoding: [0x0f,0x94,0xc1]
|
||||
; SKX-NEXT: andb %al, %cl ## encoding: [0x20,0xc1]
|
||||
|
@ -87,7 +87,7 @@ define i32 @test_x86_sse_comige_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; SKX-LABEL: test_x86_sse_comige_ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vcomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2f,0xc1]
|
||||
; SKX-NEXT: vcomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc1]
|
||||
; SKX-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.comige.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -114,7 +114,7 @@ define i32 @test_x86_sse_comigt_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; SKX-LABEL: test_x86_sse_comigt_ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vcomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2f,0xc1]
|
||||
; SKX-NEXT: vcomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc1]
|
||||
; SKX-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.comigt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -141,7 +141,7 @@ define i32 @test_x86_sse_comile_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; SKX-LABEL: test_x86_sse_comile_ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vcomiss %xmm0, %xmm1 ## encoding: [0x62,0xf1,0x7c,0x08,0x2f,0xc8]
|
||||
; SKX-NEXT: vcomiss %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc8]
|
||||
; SKX-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.comile.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -168,7 +168,7 @@ define i32 @test_x86_sse_comilt_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; SKX-LABEL: test_x86_sse_comilt_ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vcomiss %xmm0, %xmm1 ## encoding: [0x62,0xf1,0x7c,0x08,0x2f,0xc8]
|
||||
; SKX-NEXT: vcomiss %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc8]
|
||||
; SKX-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.comilt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -198,7 +198,7 @@ define i32 @test_x86_sse_comineq_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse_comineq_ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2f,0xc1]
|
||||
; SKX-NEXT: vcomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2f,0xc1]
|
||||
; SKX-NEXT: setp %al ## encoding: [0x0f,0x9a,0xc0]
|
||||
; SKX-NEXT: setne %cl ## encoding: [0x0f,0x95,0xc1]
|
||||
; SKX-NEXT: orb %al, %cl ## encoding: [0x08,0xc1]
|
||||
|
@ -226,7 +226,7 @@ define <4 x float> @test_x86_sse_cvtsi2ss(<4 x float> %a0) {
|
|||
; SKX-LABEL: test_x86_sse_cvtsi2ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: movl $7, %eax ## encoding: [0xb8,0x07,0x00,0x00,0x00]
|
||||
; SKX-NEXT: vcvtsi2ssl %eax, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7e,0x08,0x2a,0xc0]
|
||||
; SKX-NEXT: vcvtsi2ssl %eax, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x2a,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.sse.cvtsi2ss(<4 x float> %a0, i32 7) ; <<4 x float>> [#uses=1]
|
||||
ret <4 x float> %res
|
||||
|
@ -247,7 +247,7 @@ define i32 @test_x86_sse_cvtss2si(<4 x float> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse_cvtss2si:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvtss2si %xmm0, %eax ## encoding: [0x62,0xf1,0x7e,0x08,0x2d,0xc0]
|
||||
; SKX-NEXT: vcvtss2si %xmm0, %eax ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x2d,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.cvtss2si(<4 x float> %a0) ; <i32> [#uses=1]
|
||||
ret i32 %res
|
||||
|
@ -268,7 +268,7 @@ define i32 @test_x86_sse_cvttss2si(<4 x float> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse_cvttss2si:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvttss2si %xmm0, %eax ## encoding: [0x62,0xf1,0x7e,0x08,0x2c,0xc0]
|
||||
; SKX-NEXT: vcvttss2si %xmm0, %eax ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x2c,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.cvttss2si(<4 x float> %a0) ; <i32> [#uses=1]
|
||||
ret i32 %res
|
||||
|
@ -308,7 +308,7 @@ define <4 x float> @test_x86_sse_max_ps(<4 x float> %a0, <4 x float> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse_max_ps:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vmaxps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x5f,0xc1]
|
||||
; SKX-NEXT: vmaxps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x5f,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.sse.max.ps(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
|
||||
ret <4 x float> %res
|
||||
|
@ -345,7 +345,7 @@ define <4 x float> @test_x86_sse_min_ps(<4 x float> %a0, <4 x float> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse_min_ps:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vminps %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x5d,0xc1]
|
||||
; SKX-NEXT: vminps %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x5d,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
|
||||
ret <4 x float> %res
|
||||
|
@ -531,7 +531,7 @@ define i32 @test_x86_sse_ucomieq_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse_ucomieq_ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vucomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2e,0xc1]
|
||||
; SKX-NEXT: vucomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc1]
|
||||
; SKX-NEXT: setnp %al ## encoding: [0x0f,0x9b,0xc0]
|
||||
; SKX-NEXT: sete %cl ## encoding: [0x0f,0x94,0xc1]
|
||||
; SKX-NEXT: andb %al, %cl ## encoding: [0x20,0xc1]
|
||||
|
@ -561,7 +561,7 @@ define i32 @test_x86_sse_ucomige_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; SKX-LABEL: test_x86_sse_ucomige_ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vucomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2e,0xc1]
|
||||
; SKX-NEXT: vucomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc1]
|
||||
; SKX-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.ucomige.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -588,7 +588,7 @@ define i32 @test_x86_sse_ucomigt_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; SKX-LABEL: test_x86_sse_ucomigt_ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vucomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2e,0xc1]
|
||||
; SKX-NEXT: vucomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc1]
|
||||
; SKX-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.ucomigt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -615,7 +615,7 @@ define i32 @test_x86_sse_ucomile_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; SKX-LABEL: test_x86_sse_ucomile_ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vucomiss %xmm0, %xmm1 ## encoding: [0x62,0xf1,0x7c,0x08,0x2e,0xc8]
|
||||
; SKX-NEXT: vucomiss %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc8]
|
||||
; SKX-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.ucomile.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -642,7 +642,7 @@ define i32 @test_x86_sse_ucomilt_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
; SKX-LABEL: test_x86_sse_ucomilt_ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vucomiss %xmm0, %xmm1 ## encoding: [0x62,0xf1,0x7c,0x08,0x2e,0xc8]
|
||||
; SKX-NEXT: vucomiss %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc8]
|
||||
; SKX-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse.ucomilt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
|
||||
|
@ -672,7 +672,7 @@ define i32 @test_x86_sse_ucomineq_ss(<4 x float> %a0, <4 x float> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse_ucomineq_ss:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vucomiss %xmm1, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x2e,0xc1]
|
||||
; SKX-NEXT: vucomiss %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc1]
|
||||
; SKX-NEXT: setp %al ## encoding: [0x0f,0x9a,0xc0]
|
||||
; SKX-NEXT: setne %cl ## encoding: [0x0f,0x95,0xc1]
|
||||
; SKX-NEXT: orb %al, %cl ## encoding: [0x08,0xc1]
|
||||
|
|
|
@ -56,7 +56,7 @@ define i32 @test_x86_sse2_comieq_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_comieq_sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2f,0xc1]
|
||||
; SKX-NEXT: vcomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2f,0xc1]
|
||||
; SKX-NEXT: setnp %al ## encoding: [0x0f,0x9b,0xc0]
|
||||
; SKX-NEXT: sete %cl ## encoding: [0x0f,0x94,0xc1]
|
||||
; SKX-NEXT: andb %al, %cl ## encoding: [0x20,0xc1]
|
||||
|
@ -86,7 +86,7 @@ define i32 @test_x86_sse2_comige_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; SKX-LABEL: test_x86_sse2_comige_sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vcomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2f,0xc1]
|
||||
; SKX-NEXT: vcomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2f,0xc1]
|
||||
; SKX-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.comige.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -113,7 +113,7 @@ define i32 @test_x86_sse2_comigt_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; SKX-LABEL: test_x86_sse2_comigt_sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vcomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2f,0xc1]
|
||||
; SKX-NEXT: vcomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2f,0xc1]
|
||||
; SKX-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.comigt.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -140,7 +140,7 @@ define i32 @test_x86_sse2_comile_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; SKX-LABEL: test_x86_sse2_comile_sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vcomisd %xmm0, %xmm1 ## encoding: [0x62,0xf1,0xfd,0x08,0x2f,0xc8]
|
||||
; SKX-NEXT: vcomisd %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2f,0xc8]
|
||||
; SKX-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.comile.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -167,7 +167,7 @@ define i32 @test_x86_sse2_comilt_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; SKX-LABEL: test_x86_sse2_comilt_sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vcomisd %xmm0, %xmm1 ## encoding: [0x62,0xf1,0xfd,0x08,0x2f,0xc8]
|
||||
; SKX-NEXT: vcomisd %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2f,0xc8]
|
||||
; SKX-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.comilt.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -197,7 +197,7 @@ define i32 @test_x86_sse2_comineq_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_comineq_sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2f,0xc1]
|
||||
; SKX-NEXT: vcomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2f,0xc1]
|
||||
; SKX-NEXT: setp %al ## encoding: [0x0f,0x9a,0xc0]
|
||||
; SKX-NEXT: setne %cl ## encoding: [0x0f,0x95,0xc1]
|
||||
; SKX-NEXT: orb %al, %cl ## encoding: [0x08,0xc1]
|
||||
|
@ -222,7 +222,7 @@ define <4 x float> @test_x86_sse2_cvtdq2ps(<4 x i32> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_cvtdq2ps:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvtdq2ps %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x5b,0xc0]
|
||||
; SKX-NEXT: vcvtdq2ps %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x5b,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.sse2.cvtdq2ps(<4 x i32> %a0) ; <<4 x float>> [#uses=1]
|
||||
ret <4 x float> %res
|
||||
|
@ -243,7 +243,7 @@ define <4 x i32> @test_x86_sse2_cvtpd2dq(<2 x double> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_cvtpd2dq:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvtpd2dq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xff,0x08,0xe6,0xc0]
|
||||
; SKX-NEXT: vcvtpd2dq %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0xe6,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.cvtpd2dq(<2 x double> %a0) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -264,7 +264,7 @@ define <2 x i64> @test_mm_cvtpd_epi32_zext(<2 x double> %a0) nounwind {
|
|||
;
|
||||
; SKX-LABEL: test_mm_cvtpd_epi32_zext:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvtpd2dq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xff,0x08,0xe6,0xc0]
|
||||
; SKX-NEXT: vcvtpd2dq %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0xe6,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%cvt = call <4 x i32> @llvm.x86.sse2.cvtpd2dq(<2 x double> %a0)
|
||||
%res = shufflevector <4 x i32> %cvt, <4 x i32> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
|
||||
|
@ -286,7 +286,7 @@ define <4 x float> @test_x86_sse2_cvtpd2ps(<2 x double> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_cvtpd2ps:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvtpd2ps %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x5a,0xc0]
|
||||
; SKX-NEXT: vcvtpd2ps %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x5a,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x float> @llvm.x86.sse2.cvtpd2ps(<2 x double> %a0) ; <<4 x float>> [#uses=1]
|
||||
ret <4 x float> %res
|
||||
|
@ -306,7 +306,7 @@ define <4 x float> @test_x86_sse2_cvtpd2ps_zext(<2 x double> %a0) nounwind {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_cvtpd2ps_zext:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvtpd2ps %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x5a,0xc0]
|
||||
; SKX-NEXT: vcvtpd2ps %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x5a,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%cvt = call <4 x float> @llvm.x86.sse2.cvtpd2ps(<2 x double> %a0)
|
||||
%res = shufflevector <4 x float> %cvt, <4 x float> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
|
||||
|
@ -342,7 +342,7 @@ define i32 @test_x86_sse2_cvtsd2si(<2 x double> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_cvtsd2si:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvtsd2si %xmm0, %eax ## encoding: [0x62,0xf1,0x7f,0x08,0x2d,0xc0]
|
||||
; SKX-NEXT: vcvtsd2si %xmm0, %eax ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0x2d,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %a0) ; <i32> [#uses=1]
|
||||
ret i32 %res
|
||||
|
@ -415,7 +415,7 @@ define <2 x double> @test_x86_sse2_cvtsi2sd(<2 x double> %a0, i32 %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_cvtsi2sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvtsi2sdl {{[0-9]+}}(%esp), %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7f,0x08,0x2a,0x44,0x24,0x01]
|
||||
; SKX-NEXT: vcvtsi2sdl {{[0-9]+}}(%esp), %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0x2a,0x44,0x24,0x04]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x double> @llvm.x86.sse2.cvtsi2sd(<2 x double> %a0, i32 %a1) ; <<2 x double>> [#uses=1]
|
||||
ret <2 x double> %res
|
||||
|
@ -488,7 +488,7 @@ define <4 x i32> @test_x86_sse2_cvttpd2dq(<2 x double> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_cvttpd2dq:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvttpd2dq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xe6,0xc0]
|
||||
; SKX-NEXT: vcvttpd2dq %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe6,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.cvttpd2dq(<2 x double> %a0) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -509,7 +509,7 @@ define <2 x i64> @test_mm_cvttpd_epi32_zext(<2 x double> %a0) nounwind {
|
|||
;
|
||||
; SKX-LABEL: test_mm_cvttpd_epi32_zext:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvttpd2dq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xe6,0xc0]
|
||||
; SKX-NEXT: vcvttpd2dq %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe6,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%cvt = call <4 x i32> @llvm.x86.sse2.cvttpd2dq(<2 x double> %a0)
|
||||
%res = shufflevector <4 x i32> %cvt, <4 x i32> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
|
||||
|
@ -531,7 +531,7 @@ define <4 x i32> @test_x86_sse2_cvttps2dq(<4 x float> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_cvttps2dq:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvttps2dq %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7e,0x08,0x5b,0xc0]
|
||||
; SKX-NEXT: vcvttps2dq %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x5b,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.cvttps2dq(<4 x float> %a0) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -552,7 +552,7 @@ define i32 @test_x86_sse2_cvttsd2si(<2 x double> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_cvttsd2si:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vcvttsd2si %xmm0, %eax ## encoding: [0x62,0xf1,0x7f,0x08,0x2c,0xc0]
|
||||
; SKX-NEXT: vcvttsd2si %xmm0, %eax ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0x2c,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.cvttsd2si(<2 x double> %a0) ; <i32> [#uses=1]
|
||||
ret i32 %res
|
||||
|
@ -573,7 +573,7 @@ define <2 x double> @test_x86_sse2_max_pd(<2 x double> %a0, <2 x double> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_max_pd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vmaxpd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x5f,0xc1]
|
||||
; SKX-NEXT: vmaxpd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x5f,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x double> @llvm.x86.sse2.max.pd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
|
||||
ret <2 x double> %res
|
||||
|
@ -610,7 +610,7 @@ define <2 x double> @test_x86_sse2_min_pd(<2 x double> %a0, <2 x double> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_min_pd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vminpd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x5d,0xc1]
|
||||
; SKX-NEXT: vminpd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x5d,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x double> @llvm.x86.sse2.min.pd(<2 x double> %a0, <2 x double> %a1) ; <<2 x double>> [#uses=1]
|
||||
ret <2 x double> %res
|
||||
|
@ -665,7 +665,7 @@ define <8 x i16> @test_x86_sse2_packssdw_128(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_packssdw_128:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpackssdw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x6b,0xc1]
|
||||
; SKX-NEXT: vpackssdw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6b,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %a0, <4 x i32> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -686,7 +686,7 @@ define <16 x i8> @test_x86_sse2_packsswb_128(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_packsswb_128:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpacksswb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x63,0xc1]
|
||||
; SKX-NEXT: vpacksswb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x63,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.packsswb.128(<8 x i16> %a0, <8 x i16> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -707,7 +707,7 @@ define <16 x i8> @test_x86_sse2_packuswb_128(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_packuswb_128:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpackuswb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x67,0xc1]
|
||||
; SKX-NEXT: vpackuswb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x67,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16> %a0, <8 x i16> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -728,7 +728,7 @@ define <16 x i8> @test_x86_sse2_padds_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_padds_b:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpaddsb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xec,0xc1]
|
||||
; SKX-NEXT: vpaddsb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xec,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.padds.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -749,7 +749,7 @@ define <8 x i16> @test_x86_sse2_padds_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_padds_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpaddsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xed,0xc1]
|
||||
; SKX-NEXT: vpaddsw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xed,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.padds.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -770,7 +770,7 @@ define <16 x i8> @test_x86_sse2_paddus_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_paddus_b:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpaddusb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xdc,0xc1]
|
||||
; SKX-NEXT: vpaddusb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xdc,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.paddus.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -791,7 +791,7 @@ define <8 x i16> @test_x86_sse2_paddus_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_paddus_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpaddusw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xdd,0xc1]
|
||||
; SKX-NEXT: vpaddusw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xdd,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.paddus.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -812,7 +812,7 @@ define <16 x i8> @test_x86_sse2_pavg_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pavg_b:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpavgb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe0,0xc1]
|
||||
; SKX-NEXT: vpavgb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe0,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.pavg.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -833,7 +833,7 @@ define <8 x i16> @test_x86_sse2_pavg_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pavg_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpavgw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe3,0xc1]
|
||||
; SKX-NEXT: vpavgw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe3,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.pavg.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -854,7 +854,7 @@ define <4 x i32> @test_x86_sse2_pmadd_wd(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pmadd_wd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmaddwd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xf5,0xc1]
|
||||
; SKX-NEXT: vpmaddwd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xf5,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.pmadd.wd(<8 x i16> %a0, <8 x i16> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -875,7 +875,7 @@ define <8 x i16> @test_x86_sse2_pmaxs_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pmaxs_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xee,0xc1]
|
||||
; SKX-NEXT: vpmaxsw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xee,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.pmaxs.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -896,7 +896,7 @@ define <16 x i8> @test_x86_sse2_pmaxu_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pmaxu_b:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xde,0xc1]
|
||||
; SKX-NEXT: vpmaxub %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xde,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.pmaxu.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -917,7 +917,7 @@ define <8 x i16> @test_x86_sse2_pmins_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pmins_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpminsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xea,0xc1]
|
||||
; SKX-NEXT: vpminsw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xea,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.pmins.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -938,7 +938,7 @@ define <16 x i8> @test_x86_sse2_pminu_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pminu_b:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpminub %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xda,0xc1]
|
||||
; SKX-NEXT: vpminub %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xda,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.pminu.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -975,7 +975,7 @@ define <8 x i16> @test_x86_sse2_pmulh_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pmulh_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmulhw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe5,0xc1]
|
||||
; SKX-NEXT: vpmulhw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe5,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.pmulh.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -996,7 +996,7 @@ define <8 x i16> @test_x86_sse2_pmulhu_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pmulhu_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmulhuw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe4,0xc1]
|
||||
; SKX-NEXT: vpmulhuw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe4,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.pmulhu.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1017,7 +1017,7 @@ define <2 x i64> @test_x86_sse2_pmulu_dq(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pmulu_dq:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmuludq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xf4,0xc1]
|
||||
; SKX-NEXT: vpmuludq %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xf4,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse2.pmulu.dq(<4 x i32> %a0, <4 x i32> %a1) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -1038,7 +1038,7 @@ define <2 x i64> @test_x86_sse2_psad_bw(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psad_bw:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsadbw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xf6,0xc1]
|
||||
; SKX-NEXT: vpsadbw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xf6,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse2.psad.bw(<16 x i8> %a0, <16 x i8> %a1) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -1059,7 +1059,7 @@ define <4 x i32> @test_x86_sse2_psll_d(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psll_d:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpslld %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xf2,0xc1]
|
||||
; SKX-NEXT: vpslld %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xf2,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.psll.d(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1080,7 +1080,7 @@ define <2 x i64> @test_x86_sse2_psll_q(<2 x i64> %a0, <2 x i64> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psll_q:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsllq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xf3,0xc1]
|
||||
; SKX-NEXT: vpsllq %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xf3,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse2.psll.q(<2 x i64> %a0, <2 x i64> %a1) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -1101,7 +1101,7 @@ define <8 x i16> @test_x86_sse2_psll_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psll_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsllw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xf1,0xc1]
|
||||
; SKX-NEXT: vpsllw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xf1,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psll.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1122,7 +1122,7 @@ define <4 x i32> @test_x86_sse2_pslli_d(<4 x i32> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pslli_d:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpslld $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x72,0xf0,0x07]
|
||||
; SKX-NEXT: vpslld $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x72,0xf0,0x07]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.pslli.d(<4 x i32> %a0, i32 7) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1143,7 +1143,7 @@ define <2 x i64> @test_x86_sse2_pslli_q(<2 x i64> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pslli_q:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsllq $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x73,0xf0,0x07]
|
||||
; SKX-NEXT: vpsllq $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x73,0xf0,0x07]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse2.pslli.q(<2 x i64> %a0, i32 7) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -1164,7 +1164,7 @@ define <8 x i16> @test_x86_sse2_pslli_w(<8 x i16> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_pslli_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsllw $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x71,0xf0,0x07]
|
||||
; SKX-NEXT: vpsllw $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x71,0xf0,0x07]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.pslli.w(<8 x i16> %a0, i32 7) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1185,7 +1185,7 @@ define <4 x i32> @test_x86_sse2_psra_d(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psra_d:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsrad %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe2,0xc1]
|
||||
; SKX-NEXT: vpsrad %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe2,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.psra.d(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1206,7 +1206,7 @@ define <8 x i16> @test_x86_sse2_psra_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psra_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsraw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe1,0xc1]
|
||||
; SKX-NEXT: vpsraw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe1,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psra.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1227,7 +1227,7 @@ define <4 x i32> @test_x86_sse2_psrai_d(<4 x i32> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psrai_d:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsrad $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x72,0xe0,0x07]
|
||||
; SKX-NEXT: vpsrad $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x72,0xe0,0x07]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.psrai.d(<4 x i32> %a0, i32 7) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1248,7 +1248,7 @@ define <8 x i16> @test_x86_sse2_psrai_w(<8 x i16> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psrai_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsraw $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x71,0xe0,0x07]
|
||||
; SKX-NEXT: vpsraw $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x71,0xe0,0x07]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psrai.w(<8 x i16> %a0, i32 7) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1269,7 +1269,7 @@ define <4 x i32> @test_x86_sse2_psrl_d(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psrl_d:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsrld %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd2,0xc1]
|
||||
; SKX-NEXT: vpsrld %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xd2,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.psrl.d(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1290,7 +1290,7 @@ define <2 x i64> @test_x86_sse2_psrl_q(<2 x i64> %a0, <2 x i64> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psrl_q:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsrlq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0xd3,0xc1]
|
||||
; SKX-NEXT: vpsrlq %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xd3,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse2.psrl.q(<2 x i64> %a0, <2 x i64> %a1) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -1311,7 +1311,7 @@ define <8 x i16> @test_x86_sse2_psrl_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psrl_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsrlw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd1,0xc1]
|
||||
; SKX-NEXT: vpsrlw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xd1,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psrl.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1332,7 +1332,7 @@ define <4 x i32> @test_x86_sse2_psrli_d(<4 x i32> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psrli_d:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsrld $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x72,0xd0,0x07]
|
||||
; SKX-NEXT: vpsrld $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x72,0xd0,0x07]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse2.psrli.d(<4 x i32> %a0, i32 7) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -1353,7 +1353,7 @@ define <2 x i64> @test_x86_sse2_psrli_q(<2 x i64> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psrli_q:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsrlq $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x73,0xd0,0x07]
|
||||
; SKX-NEXT: vpsrlq $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x73,0xd0,0x07]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse2.psrli.q(<2 x i64> %a0, i32 7) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
@ -1374,7 +1374,7 @@ define <8 x i16> @test_x86_sse2_psrli_w(<8 x i16> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psrli_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsrlw $7, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0x71,0xd0,0x07]
|
||||
; SKX-NEXT: vpsrlw $7, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x71,0xd0,0x07]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psrli.w(<8 x i16> %a0, i32 7) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1395,7 +1395,7 @@ define <16 x i8> @test_x86_sse2_psubs_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psubs_b:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsubsb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe8,0xc1]
|
||||
; SKX-NEXT: vpsubsb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe8,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.psubs.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -1416,7 +1416,7 @@ define <8 x i16> @test_x86_sse2_psubs_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psubs_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsubsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xe9,0xc1]
|
||||
; SKX-NEXT: vpsubsw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xe9,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psubs.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1437,7 +1437,7 @@ define <16 x i8> @test_x86_sse2_psubus_b(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psubus_b:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsubusb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd8,0xc1]
|
||||
; SKX-NEXT: vpsubusb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xd8,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse2.psubus.b(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -1458,7 +1458,7 @@ define <8 x i16> @test_x86_sse2_psubus_w(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_psubus_w:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpsubusw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf1,0x7d,0x08,0xd9,0xc1]
|
||||
; SKX-NEXT: vpsubusw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xd9,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse2.psubus.w(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -1516,7 +1516,7 @@ define <2 x double> @test_x86_sse2_sqrt_sd_vec_load(<2 x double>* %a0) {
|
|||
; SKX-LABEL: test_x86_sse2_sqrt_sd_vec_load:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x04]
|
||||
; SKX-NEXT: vmovaps (%eax), %xmm0 ## encoding: [0x62,0xf1,0x7c,0x08,0x28,0x00]
|
||||
; SKX-NEXT: vmovaps (%eax), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x00]
|
||||
; SKX-NEXT: vsqrtsd %xmm0, %xmm0, %xmm0 ## encoding: [0xc5,0xfb,0x51,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%a1 = load <2 x double>, <2 x double>* %a0, align 16
|
||||
|
@ -1546,7 +1546,7 @@ define i32 @test_x86_sse2_ucomieq_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_ucomieq_sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vucomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2e,0xc1]
|
||||
; SKX-NEXT: vucomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2e,0xc1]
|
||||
; SKX-NEXT: setnp %al ## encoding: [0x0f,0x9b,0xc0]
|
||||
; SKX-NEXT: sete %cl ## encoding: [0x0f,0x94,0xc1]
|
||||
; SKX-NEXT: andb %al, %cl ## encoding: [0x20,0xc1]
|
||||
|
@ -1576,7 +1576,7 @@ define i32 @test_x86_sse2_ucomige_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; SKX-LABEL: test_x86_sse2_ucomige_sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vucomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2e,0xc1]
|
||||
; SKX-NEXT: vucomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2e,0xc1]
|
||||
; SKX-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.ucomige.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -1603,7 +1603,7 @@ define i32 @test_x86_sse2_ucomigt_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; SKX-LABEL: test_x86_sse2_ucomigt_sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vucomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2e,0xc1]
|
||||
; SKX-NEXT: vucomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2e,0xc1]
|
||||
; SKX-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.ucomigt.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -1630,7 +1630,7 @@ define i32 @test_x86_sse2_ucomile_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; SKX-LABEL: test_x86_sse2_ucomile_sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vucomisd %xmm0, %xmm1 ## encoding: [0x62,0xf1,0xfd,0x08,0x2e,0xc8]
|
||||
; SKX-NEXT: vucomisd %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2e,0xc8]
|
||||
; SKX-NEXT: setae %al ## encoding: [0x0f,0x93,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.ucomile.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -1657,7 +1657,7 @@ define i32 @test_x86_sse2_ucomilt_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
; SKX-LABEL: test_x86_sse2_ucomilt_sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0]
|
||||
; SKX-NEXT: vucomisd %xmm0, %xmm1 ## encoding: [0x62,0xf1,0xfd,0x08,0x2e,0xc8]
|
||||
; SKX-NEXT: vucomisd %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2e,0xc8]
|
||||
; SKX-NEXT: seta %al ## encoding: [0x0f,0x97,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call i32 @llvm.x86.sse2.ucomilt.sd(<2 x double> %a0, <2 x double> %a1) ; <i32> [#uses=1]
|
||||
|
@ -1687,7 +1687,7 @@ define i32 @test_x86_sse2_ucomineq_sd(<2 x double> %a0, <2 x double> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse2_ucomineq_sd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vucomisd %xmm1, %xmm0 ## encoding: [0x62,0xf1,0xfd,0x08,0x2e,0xc1]
|
||||
; SKX-NEXT: vucomisd %xmm1, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x2e,0xc1]
|
||||
; SKX-NEXT: setp %al ## encoding: [0x0f,0x9a,0xc0]
|
||||
; SKX-NEXT: setne %cl ## encoding: [0x0f,0x95,0xc1]
|
||||
; SKX-NEXT: orb %al, %cl ## encoding: [0x08,0xc1]
|
||||
|
|
|
@ -127,7 +127,7 @@ define <8 x i16> @test_x86_sse41_packusdw(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse41_packusdw:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpackusdw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x2b,0xc1]
|
||||
; SKX-NEXT: vpackusdw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x2b,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse41.packusdw(<4 x i32> %a0, <4 x i32> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -183,7 +183,7 @@ define <16 x i8> @test_x86_sse41_pmaxsb(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse41_pmaxsb:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3c,0xc1]
|
||||
; SKX-NEXT: vpmaxsb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x3c,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse41.pmaxsb(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -204,7 +204,7 @@ define <4 x i32> @test_x86_sse41_pmaxsd(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse41_pmaxsd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3d,0xc1]
|
||||
; SKX-NEXT: vpmaxsd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x3d,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse41.pmaxsd(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -225,7 +225,7 @@ define <4 x i32> @test_x86_sse41_pmaxud(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse41_pmaxud:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3f,0xc1]
|
||||
; SKX-NEXT: vpmaxud %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x3f,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse41.pmaxud(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -246,7 +246,7 @@ define <8 x i16> @test_x86_sse41_pmaxuw(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse41_pmaxuw:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3e,0xc1]
|
||||
; SKX-NEXT: vpmaxuw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x3e,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse41.pmaxuw(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -267,7 +267,7 @@ define <16 x i8> @test_x86_sse41_pminsb(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse41_pminsb:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpminsb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x38,0xc1]
|
||||
; SKX-NEXT: vpminsb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x38,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.sse41.pminsb(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -288,7 +288,7 @@ define <4 x i32> @test_x86_sse41_pminsd(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse41_pminsd:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpminsd %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x39,0xc1]
|
||||
; SKX-NEXT: vpminsd %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x39,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse41.pminsd(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -309,7 +309,7 @@ define <4 x i32> @test_x86_sse41_pminud(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse41_pminud:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpminud %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3b,0xc1]
|
||||
; SKX-NEXT: vpminud %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x3b,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.sse41.pminud(<4 x i32> %a0, <4 x i32> %a1) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -330,7 +330,7 @@ define <8 x i16> @test_x86_sse41_pminuw(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse41_pminuw:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpminuw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x3a,0xc1]
|
||||
; SKX-NEXT: vpminuw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x3a,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.sse41.pminuw(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -351,7 +351,7 @@ define <2 x i64> @test_x86_sse41_pmuldq(<4 x i32> %a0, <4 x i32> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_sse41_pmuldq:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmuldq %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0xfd,0x08,0x28,0xc1]
|
||||
; SKX-NEXT: vpmuldq %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x28,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <2 x i64> @llvm.x86.sse41.pmuldq(<4 x i32> %a0, <4 x i32> %a1) ; <<2 x i64>> [#uses=1]
|
||||
ret <2 x i64> %res
|
||||
|
|
|
@ -52,7 +52,7 @@ define i32 @test_x86_sse42_pcmpestri128_load(<16 x i8>* %a0, <16 x i8>* %a2) {
|
|||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx ## encoding: [0x8b,0x4c,0x24,0x08]
|
||||
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x04]
|
||||
; SKX-NEXT: vmovdqu8 (%eax), %xmm0 ## encoding: [0x62,0xf1,0x7f,0x08,0x6f,0x00]
|
||||
; SKX-NEXT: vmovdqu (%eax), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x6f,0x00]
|
||||
; SKX-NEXT: movl $7, %eax ## encoding: [0xb8,0x07,0x00,0x00,0x00]
|
||||
; SKX-NEXT: movl $7, %edx ## encoding: [0xba,0x07,0x00,0x00,0x00]
|
||||
; SKX-NEXT: vpcmpestri $7, (%ecx), %xmm0 ## encoding: [0xc4,0xe3,0x79,0x61,0x01,0x07]
|
||||
|
@ -292,7 +292,7 @@ define i32 @test_x86_sse42_pcmpistri128_load(<16 x i8>* %a0, <16 x i8>* %a1) {
|
|||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: movl {{[0-9]+}}(%esp), %eax ## encoding: [0x8b,0x44,0x24,0x08]
|
||||
; SKX-NEXT: movl {{[0-9]+}}(%esp), %ecx ## encoding: [0x8b,0x4c,0x24,0x04]
|
||||
; SKX-NEXT: vmovdqu8 (%ecx), %xmm0 ## encoding: [0x62,0xf1,0x7f,0x08,0x6f,0x01]
|
||||
; SKX-NEXT: vmovdqu (%ecx), %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x6f,0x01]
|
||||
; SKX-NEXT: vpcmpistri $7, (%eax), %xmm0 ## encoding: [0xc4,0xe3,0x79,0x63,0x00,0x07]
|
||||
; SKX-NEXT: movl %ecx, %eax ## encoding: [0x89,0xc8]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
|
|
|
@ -16,7 +16,7 @@ define <16 x i8> @test_x86_ssse3_pabs_b_128(<16 x i8> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_ssse3_pabs_b_128:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpabsb %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x1c,0xc0]
|
||||
; SKX-NEXT: vpabsb %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x1c,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.ssse3.pabs.b.128(<16 x i8> %a0) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
@ -37,7 +37,7 @@ define <4 x i32> @test_x86_ssse3_pabs_d_128(<4 x i32> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_ssse3_pabs_d_128:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpabsd %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x1e,0xc0]
|
||||
; SKX-NEXT: vpabsd %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x1e,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <4 x i32> @llvm.x86.ssse3.pabs.d.128(<4 x i32> %a0) ; <<4 x i32>> [#uses=1]
|
||||
ret <4 x i32> %res
|
||||
|
@ -58,7 +58,7 @@ define <8 x i16> @test_x86_ssse3_pabs_w_128(<8 x i16> %a0) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_ssse3_pabs_w_128:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpabsw %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x1d,0xc0]
|
||||
; SKX-NEXT: vpabsw %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x1d,0xc0]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.ssse3.pabs.w.128(<8 x i16> %a0) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -175,7 +175,7 @@ define <8 x i16> @test_x86_ssse3_pmadd_ub_sw_128(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_ssse3_pmadd_ub_sw_128:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmaddubsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x04,0xc1]
|
||||
; SKX-NEXT: vpmaddubsw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x04,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8> %a0, <16 x i8> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -196,7 +196,7 @@ define <8 x i16> @test_x86_ssse3_pmul_hr_sw_128(<8 x i16> %a0, <8 x i16> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_ssse3_pmul_hr_sw_128:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpmulhrsw %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x0b,0xc1]
|
||||
; SKX-NEXT: vpmulhrsw %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x0b,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <8 x i16> @llvm.x86.ssse3.pmul.hr.sw.128(<8 x i16> %a0, <8 x i16> %a1) ; <<8 x i16>> [#uses=1]
|
||||
ret <8 x i16> %res
|
||||
|
@ -217,7 +217,7 @@ define <16 x i8> @test_x86_ssse3_pshuf_b_128(<16 x i8> %a0, <16 x i8> %a1) {
|
|||
;
|
||||
; SKX-LABEL: test_x86_ssse3_pshuf_b_128:
|
||||
; SKX: ## BB#0:
|
||||
; SKX-NEXT: vpshufb %xmm1, %xmm0, %xmm0 ## encoding: [0x62,0xf2,0x7d,0x08,0x00,0xc1]
|
||||
; SKX-NEXT: vpshufb %xmm1, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x00,0xc1]
|
||||
; SKX-NEXT: retl ## encoding: [0xc3]
|
||||
%res = call <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8> %a0, <16 x i8> %a1) ; <<16 x i8>> [#uses=1]
|
||||
ret <16 x i8> %res
|
||||
|
|
|
@ -558,7 +558,7 @@ define <32 x i16> @test_broadcast_8i16_32i16(<8 x i16> *%p) nounwind {
|
|||
; X32-AVX512F: ## BB#0:
|
||||
; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} ymm0 = mem[0,1,2,3,0,1,2,3]
|
||||
; X32-AVX512F-NEXT: vmovdqa64 %ymm0, %ymm1
|
||||
; X32-AVX512F-NEXT: vmovdqa %ymm0, %ymm1
|
||||
; X32-AVX512F-NEXT: retl
|
||||
;
|
||||
; X32-AVX512BW-LABEL: test_broadcast_8i16_32i16:
|
||||
|
@ -571,7 +571,7 @@ define <32 x i16> @test_broadcast_8i16_32i16(<8 x i16> *%p) nounwind {
|
|||
; X32-AVX512DQ: ## BB#0:
|
||||
; X32-AVX512DQ-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512DQ-NEXT: vbroadcasti32x4 {{.*#+}} ymm0 = mem[0,1,2,3,0,1,2,3]
|
||||
; X32-AVX512DQ-NEXT: vmovdqa64 %ymm0, %ymm1
|
||||
; X32-AVX512DQ-NEXT: vmovdqa %ymm0, %ymm1
|
||||
; X32-AVX512DQ-NEXT: retl
|
||||
;
|
||||
; X64-AVX1-LABEL: test_broadcast_8i16_32i16:
|
||||
|
@ -589,7 +589,7 @@ define <32 x i16> @test_broadcast_8i16_32i16(<8 x i16> *%p) nounwind {
|
|||
; X64-AVX512F-LABEL: test_broadcast_8i16_32i16:
|
||||
; X64-AVX512F: ## BB#0:
|
||||
; X64-AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} ymm0 = mem[0,1,2,3,0,1,2,3]
|
||||
; X64-AVX512F-NEXT: vmovdqa64 %ymm0, %ymm1
|
||||
; X64-AVX512F-NEXT: vmovdqa %ymm0, %ymm1
|
||||
; X64-AVX512F-NEXT: retq
|
||||
;
|
||||
; X64-AVX512BW-LABEL: test_broadcast_8i16_32i16:
|
||||
|
@ -600,7 +600,7 @@ define <32 x i16> @test_broadcast_8i16_32i16(<8 x i16> *%p) nounwind {
|
|||
; X64-AVX512DQ-LABEL: test_broadcast_8i16_32i16:
|
||||
; X64-AVX512DQ: ## BB#0:
|
||||
; X64-AVX512DQ-NEXT: vbroadcasti32x4 {{.*#+}} ymm0 = mem[0,1,2,3,0,1,2,3]
|
||||
; X64-AVX512DQ-NEXT: vmovdqa64 %ymm0, %ymm1
|
||||
; X64-AVX512DQ-NEXT: vmovdqa %ymm0, %ymm1
|
||||
; X64-AVX512DQ-NEXT: retq
|
||||
%1 = load <8 x i16>, <8 x i16> *%p
|
||||
%2 = shufflevector <8 x i16> %1, <8 x i16> undef, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
|
||||
|
@ -708,7 +708,7 @@ define <64 x i8> @test_broadcast_16i8_64i8(<16 x i8> *%p) nounwind {
|
|||
; X32-AVX512F: ## BB#0:
|
||||
; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} ymm0 = mem[0,1,2,3,0,1,2,3]
|
||||
; X32-AVX512F-NEXT: vmovdqa64 %ymm0, %ymm1
|
||||
; X32-AVX512F-NEXT: vmovdqa %ymm0, %ymm1
|
||||
; X32-AVX512F-NEXT: retl
|
||||
;
|
||||
; X32-AVX512BW-LABEL: test_broadcast_16i8_64i8:
|
||||
|
@ -721,7 +721,7 @@ define <64 x i8> @test_broadcast_16i8_64i8(<16 x i8> *%p) nounwind {
|
|||
; X32-AVX512DQ: ## BB#0:
|
||||
; X32-AVX512DQ-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512DQ-NEXT: vbroadcasti32x4 {{.*#+}} ymm0 = mem[0,1,2,3,0,1,2,3]
|
||||
; X32-AVX512DQ-NEXT: vmovdqa64 %ymm0, %ymm1
|
||||
; X32-AVX512DQ-NEXT: vmovdqa %ymm0, %ymm1
|
||||
; X32-AVX512DQ-NEXT: retl
|
||||
;
|
||||
; X64-AVX1-LABEL: test_broadcast_16i8_64i8:
|
||||
|
@ -739,7 +739,7 @@ define <64 x i8> @test_broadcast_16i8_64i8(<16 x i8> *%p) nounwind {
|
|||
; X64-AVX512F-LABEL: test_broadcast_16i8_64i8:
|
||||
; X64-AVX512F: ## BB#0:
|
||||
; X64-AVX512F-NEXT: vbroadcasti32x4 {{.*#+}} ymm0 = mem[0,1,2,3,0,1,2,3]
|
||||
; X64-AVX512F-NEXT: vmovdqa64 %ymm0, %ymm1
|
||||
; X64-AVX512F-NEXT: vmovdqa %ymm0, %ymm1
|
||||
; X64-AVX512F-NEXT: retq
|
||||
;
|
||||
; X64-AVX512BW-LABEL: test_broadcast_16i8_64i8:
|
||||
|
@ -750,7 +750,7 @@ define <64 x i8> @test_broadcast_16i8_64i8(<16 x i8> *%p) nounwind {
|
|||
; X64-AVX512DQ-LABEL: test_broadcast_16i8_64i8:
|
||||
; X64-AVX512DQ: ## BB#0:
|
||||
; X64-AVX512DQ-NEXT: vbroadcasti32x4 {{.*#+}} ymm0 = mem[0,1,2,3,0,1,2,3]
|
||||
; X64-AVX512DQ-NEXT: vmovdqa64 %ymm0, %ymm1
|
||||
; X64-AVX512DQ-NEXT: vmovdqa %ymm0, %ymm1
|
||||
; X64-AVX512DQ-NEXT: retq
|
||||
%1 = load <16 x i8>, <16 x i8> *%p
|
||||
%2 = shufflevector <16 x i8> %1, <16 x i8> undef, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
|
||||
|
@ -900,8 +900,8 @@ define <4 x i64> @test_broadcast_2i64_4i64_reuse(<2 x i64>* %p0, <2 x i64>* %p1)
|
|||
; X32-AVX512F: ## BB#0:
|
||||
; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512F-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512F-NEXT: vmovdqa64 %xmm0, (%eax)
|
||||
; X32-AVX512F-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512F-NEXT: vmovdqa %xmm0, (%eax)
|
||||
; X32-AVX512F-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X32-AVX512F-NEXT: retl
|
||||
;
|
||||
|
@ -909,8 +909,8 @@ define <4 x i64> @test_broadcast_2i64_4i64_reuse(<2 x i64>* %p0, <2 x i64>* %p1)
|
|||
; X32-AVX512BW: ## BB#0:
|
||||
; X32-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512BW-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512BW-NEXT: vmovdqa64 %xmm0, (%eax)
|
||||
; X32-AVX512BW-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512BW-NEXT: vmovdqa %xmm0, (%eax)
|
||||
; X32-AVX512BW-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X32-AVX512BW-NEXT: retl
|
||||
;
|
||||
|
@ -918,8 +918,8 @@ define <4 x i64> @test_broadcast_2i64_4i64_reuse(<2 x i64>* %p0, <2 x i64>* %p1)
|
|||
; X32-AVX512DQ: ## BB#0:
|
||||
; X32-AVX512DQ-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512DQ-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512DQ-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512DQ-NEXT: vmovdqa64 %xmm0, (%eax)
|
||||
; X32-AVX512DQ-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512DQ-NEXT: vmovdqa %xmm0, (%eax)
|
||||
; X32-AVX512DQ-NEXT: vinserti64x2 $1, %xmm0, %ymm0, %ymm0
|
||||
; X32-AVX512DQ-NEXT: retl
|
||||
;
|
||||
|
@ -932,22 +932,22 @@ define <4 x i64> @test_broadcast_2i64_4i64_reuse(<2 x i64>* %p0, <2 x i64>* %p1)
|
|||
;
|
||||
; X64-AVX512F-LABEL: test_broadcast_2i64_4i64_reuse:
|
||||
; X64-AVX512F: ## BB#0:
|
||||
; X64-AVX512F-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512F-NEXT: vmovdqa64 %xmm0, (%rsi)
|
||||
; X64-AVX512F-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512F-NEXT: vmovdqa %xmm0, (%rsi)
|
||||
; X64-AVX512F-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512F-NEXT: retq
|
||||
;
|
||||
; X64-AVX512BW-LABEL: test_broadcast_2i64_4i64_reuse:
|
||||
; X64-AVX512BW: ## BB#0:
|
||||
; X64-AVX512BW-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512BW-NEXT: vmovdqa64 %xmm0, (%rsi)
|
||||
; X64-AVX512BW-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512BW-NEXT: vmovdqa %xmm0, (%rsi)
|
||||
; X64-AVX512BW-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512BW-NEXT: retq
|
||||
;
|
||||
; X64-AVX512DQ-LABEL: test_broadcast_2i64_4i64_reuse:
|
||||
; X64-AVX512DQ: ## BB#0:
|
||||
; X64-AVX512DQ-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512DQ-NEXT: vmovdqa64 %xmm0, (%rsi)
|
||||
; X64-AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512DQ-NEXT: vmovdqa %xmm0, (%rsi)
|
||||
; X64-AVX512DQ-NEXT: vinserti64x2 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512DQ-NEXT: retq
|
||||
%1 = load <2 x i64>, <2 x i64>* %p0
|
||||
|
@ -1008,8 +1008,8 @@ define <8 x i32> @test_broadcast_4i32_8i32_reuse(<4 x i32>* %p0, <4 x i32>* %p1)
|
|||
; X32-AVX512: ## BB#0:
|
||||
; X32-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512-NEXT: vmovdqa32 (%ecx), %xmm0
|
||||
; X32-AVX512-NEXT: vmovdqa32 %xmm0, (%eax)
|
||||
; X32-AVX512-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512-NEXT: vmovdqa %xmm0, (%eax)
|
||||
; X32-AVX512-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X32-AVX512-NEXT: retl
|
||||
;
|
||||
|
@ -1022,8 +1022,8 @@ define <8 x i32> @test_broadcast_4i32_8i32_reuse(<4 x i32>* %p0, <4 x i32>* %p1)
|
|||
;
|
||||
; X64-AVX512-LABEL: test_broadcast_4i32_8i32_reuse:
|
||||
; X64-AVX512: ## BB#0:
|
||||
; X64-AVX512-NEXT: vmovdqa32 (%rdi), %xmm0
|
||||
; X64-AVX512-NEXT: vmovdqa32 %xmm0, (%rsi)
|
||||
; X64-AVX512-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512-NEXT: vmovdqa %xmm0, (%rsi)
|
||||
; X64-AVX512-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512-NEXT: retq
|
||||
%1 = load <4 x i32>, <4 x i32>* %p0
|
||||
|
@ -1046,8 +1046,8 @@ define <16 x i16> @test_broadcast_8i16_16i16_reuse(<8 x i16> *%p0, <8 x i16> *%p
|
|||
; X32-AVX512F: ## BB#0:
|
||||
; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512F-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512F-NEXT: vmovdqa32 %xmm0, (%eax)
|
||||
; X32-AVX512F-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512F-NEXT: vmovdqa %xmm0, (%eax)
|
||||
; X32-AVX512F-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X32-AVX512F-NEXT: retl
|
||||
;
|
||||
|
@ -1055,8 +1055,8 @@ define <16 x i16> @test_broadcast_8i16_16i16_reuse(<8 x i16> *%p0, <8 x i16> *%p
|
|||
; X32-AVX512BW: ## BB#0:
|
||||
; X32-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512BW-NEXT: vmovdqu16 (%ecx), %xmm0
|
||||
; X32-AVX512BW-NEXT: vmovdqu16 %xmm0, (%eax)
|
||||
; X32-AVX512BW-NEXT: vmovdqu (%ecx), %xmm0
|
||||
; X32-AVX512BW-NEXT: vmovdqu %xmm0, (%eax)
|
||||
; X32-AVX512BW-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X32-AVX512BW-NEXT: retl
|
||||
;
|
||||
|
@ -1064,8 +1064,8 @@ define <16 x i16> @test_broadcast_8i16_16i16_reuse(<8 x i16> *%p0, <8 x i16> *%p
|
|||
; X32-AVX512DQ: ## BB#0:
|
||||
; X32-AVX512DQ-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512DQ-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512DQ-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512DQ-NEXT: vmovdqa32 %xmm0, (%eax)
|
||||
; X32-AVX512DQ-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512DQ-NEXT: vmovdqa %xmm0, (%eax)
|
||||
; X32-AVX512DQ-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X32-AVX512DQ-NEXT: retl
|
||||
;
|
||||
|
@ -1078,22 +1078,22 @@ define <16 x i16> @test_broadcast_8i16_16i16_reuse(<8 x i16> *%p0, <8 x i16> *%p
|
|||
;
|
||||
; X64-AVX512F-LABEL: test_broadcast_8i16_16i16_reuse:
|
||||
; X64-AVX512F: ## BB#0:
|
||||
; X64-AVX512F-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512F-NEXT: vmovdqa32 %xmm0, (%rsi)
|
||||
; X64-AVX512F-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512F-NEXT: vmovdqa %xmm0, (%rsi)
|
||||
; X64-AVX512F-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512F-NEXT: retq
|
||||
;
|
||||
; X64-AVX512BW-LABEL: test_broadcast_8i16_16i16_reuse:
|
||||
; X64-AVX512BW: ## BB#0:
|
||||
; X64-AVX512BW-NEXT: vmovdqu16 (%rdi), %xmm0
|
||||
; X64-AVX512BW-NEXT: vmovdqu16 %xmm0, (%rsi)
|
||||
; X64-AVX512BW-NEXT: vmovdqu (%rdi), %xmm0
|
||||
; X64-AVX512BW-NEXT: vmovdqu %xmm0, (%rsi)
|
||||
; X64-AVX512BW-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512BW-NEXT: retq
|
||||
;
|
||||
; X64-AVX512DQ-LABEL: test_broadcast_8i16_16i16_reuse:
|
||||
; X64-AVX512DQ: ## BB#0:
|
||||
; X64-AVX512DQ-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512DQ-NEXT: vmovdqa32 %xmm0, (%rsi)
|
||||
; X64-AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512DQ-NEXT: vmovdqa %xmm0, (%rsi)
|
||||
; X64-AVX512DQ-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512DQ-NEXT: retq
|
||||
%1 = load <8 x i16>, <8 x i16> *%p0
|
||||
|
@ -1116,8 +1116,8 @@ define <32 x i8> @test_broadcast_16i8_32i8_reuse(<16 x i8> *%p0, <16 x i8> *%p1)
|
|||
; X32-AVX512F: ## BB#0:
|
||||
; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512F-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512F-NEXT: vmovdqa32 %xmm0, (%eax)
|
||||
; X32-AVX512F-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512F-NEXT: vmovdqa %xmm0, (%eax)
|
||||
; X32-AVX512F-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X32-AVX512F-NEXT: retl
|
||||
;
|
||||
|
@ -1125,8 +1125,8 @@ define <32 x i8> @test_broadcast_16i8_32i8_reuse(<16 x i8> *%p0, <16 x i8> *%p1)
|
|||
; X32-AVX512BW: ## BB#0:
|
||||
; X32-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512BW-NEXT: vmovdqu8 (%ecx), %xmm0
|
||||
; X32-AVX512BW-NEXT: vmovdqu8 %xmm0, (%eax)
|
||||
; X32-AVX512BW-NEXT: vmovdqu (%ecx), %xmm0
|
||||
; X32-AVX512BW-NEXT: vmovdqu %xmm0, (%eax)
|
||||
; X32-AVX512BW-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X32-AVX512BW-NEXT: retl
|
||||
;
|
||||
|
@ -1134,8 +1134,8 @@ define <32 x i8> @test_broadcast_16i8_32i8_reuse(<16 x i8> *%p0, <16 x i8> *%p1)
|
|||
; X32-AVX512DQ: ## BB#0:
|
||||
; X32-AVX512DQ-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512DQ-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512DQ-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512DQ-NEXT: vmovdqa32 %xmm0, (%eax)
|
||||
; X32-AVX512DQ-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512DQ-NEXT: vmovdqa %xmm0, (%eax)
|
||||
; X32-AVX512DQ-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X32-AVX512DQ-NEXT: retl
|
||||
;
|
||||
|
@ -1148,22 +1148,22 @@ define <32 x i8> @test_broadcast_16i8_32i8_reuse(<16 x i8> *%p0, <16 x i8> *%p1)
|
|||
;
|
||||
; X64-AVX512F-LABEL: test_broadcast_16i8_32i8_reuse:
|
||||
; X64-AVX512F: ## BB#0:
|
||||
; X64-AVX512F-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512F-NEXT: vmovdqa32 %xmm0, (%rsi)
|
||||
; X64-AVX512F-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512F-NEXT: vmovdqa %xmm0, (%rsi)
|
||||
; X64-AVX512F-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512F-NEXT: retq
|
||||
;
|
||||
; X64-AVX512BW-LABEL: test_broadcast_16i8_32i8_reuse:
|
||||
; X64-AVX512BW: ## BB#0:
|
||||
; X64-AVX512BW-NEXT: vmovdqu8 (%rdi), %xmm0
|
||||
; X64-AVX512BW-NEXT: vmovdqu8 %xmm0, (%rsi)
|
||||
; X64-AVX512BW-NEXT: vmovdqu (%rdi), %xmm0
|
||||
; X64-AVX512BW-NEXT: vmovdqu %xmm0, (%rsi)
|
||||
; X64-AVX512BW-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512BW-NEXT: retq
|
||||
;
|
||||
; X64-AVX512DQ-LABEL: test_broadcast_16i8_32i8_reuse:
|
||||
; X64-AVX512DQ: ## BB#0:
|
||||
; X64-AVX512DQ-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512DQ-NEXT: vmovdqa32 %xmm0, (%rsi)
|
||||
; X64-AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512DQ-NEXT: vmovdqa %xmm0, (%rsi)
|
||||
; X64-AVX512DQ-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512DQ-NEXT: retq
|
||||
%1 = load <16 x i8>, <16 x i8> *%p0
|
||||
|
@ -1191,9 +1191,9 @@ define <8 x i32> @test_broadcast_4i32_8i32_chain(<4 x i32>* %p0, <4 x float>* %p
|
|||
; X32-AVX512F: ## BB#0:
|
||||
; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512F-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512F-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; X32-AVX512F-NEXT: vmovdqa32 %xmm1, (%eax)
|
||||
; X32-AVX512F-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512F-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; X32-AVX512F-NEXT: vmovdqa %xmm1, (%eax)
|
||||
; X32-AVX512F-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X32-AVX512F-NEXT: retl
|
||||
;
|
||||
|
@ -1201,9 +1201,9 @@ define <8 x i32> @test_broadcast_4i32_8i32_chain(<4 x i32>* %p0, <4 x float>* %p
|
|||
; X32-AVX512BW: ## BB#0:
|
||||
; X32-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512BW-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512BW-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; X32-AVX512BW-NEXT: vmovdqa32 %xmm1, (%eax)
|
||||
; X32-AVX512BW-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512BW-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; X32-AVX512BW-NEXT: vmovdqa %xmm1, (%eax)
|
||||
; X32-AVX512BW-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X32-AVX512BW-NEXT: retl
|
||||
;
|
||||
|
@ -1211,7 +1211,7 @@ define <8 x i32> @test_broadcast_4i32_8i32_chain(<4 x i32>* %p0, <4 x float>* %p
|
|||
; X32-AVX512DQ: ## BB#0:
|
||||
; X32-AVX512DQ-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512DQ-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512DQ-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512DQ-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512DQ-NEXT: vxorps %xmm1, %xmm1, %xmm1
|
||||
; X32-AVX512DQ-NEXT: vmovaps %xmm1, (%eax)
|
||||
; X32-AVX512DQ-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
|
@ -1227,23 +1227,23 @@ define <8 x i32> @test_broadcast_4i32_8i32_chain(<4 x i32>* %p0, <4 x float>* %p
|
|||
;
|
||||
; X64-AVX512F-LABEL: test_broadcast_4i32_8i32_chain:
|
||||
; X64-AVX512F: ## BB#0:
|
||||
; X64-AVX512F-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512F-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; X64-AVX512F-NEXT: vmovdqa32 %xmm1, (%rsi)
|
||||
; X64-AVX512F-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512F-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; X64-AVX512F-NEXT: vmovdqa %xmm1, (%rsi)
|
||||
; X64-AVX512F-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512F-NEXT: retq
|
||||
;
|
||||
; X64-AVX512BW-LABEL: test_broadcast_4i32_8i32_chain:
|
||||
; X64-AVX512BW: ## BB#0:
|
||||
; X64-AVX512BW-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512BW-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; X64-AVX512BW-NEXT: vmovdqa32 %xmm1, (%rsi)
|
||||
; X64-AVX512BW-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512BW-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; X64-AVX512BW-NEXT: vmovdqa %xmm1, (%rsi)
|
||||
; X64-AVX512BW-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
; X64-AVX512BW-NEXT: retq
|
||||
;
|
||||
; X64-AVX512DQ-LABEL: test_broadcast_4i32_8i32_chain:
|
||||
; X64-AVX512DQ: ## BB#0:
|
||||
; X64-AVX512DQ-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512DQ-NEXT: vxorps %xmm1, %xmm1, %xmm1
|
||||
; X64-AVX512DQ-NEXT: vmovaps %xmm1, (%rsi)
|
||||
; X64-AVX512DQ-NEXT: vinserti32x4 $1, %xmm0, %ymm0, %ymm0
|
||||
|
@ -1270,9 +1270,9 @@ define <16 x i32> @test_broadcast_4i32_16i32_chain(<4 x i32>* %p0, <4 x float>*
|
|||
; X32-AVX512F: ## BB#0:
|
||||
; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512F-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512F-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; X32-AVX512F-NEXT: vmovdqa32 %xmm1, (%eax)
|
||||
; X32-AVX512F-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512F-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; X32-AVX512F-NEXT: vmovdqa %xmm1, (%eax)
|
||||
; X32-AVX512F-NEXT: vinserti32x4 $1, %xmm0, %zmm0, %zmm0
|
||||
; X32-AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
|
||||
; X32-AVX512F-NEXT: retl
|
||||
|
@ -1281,9 +1281,9 @@ define <16 x i32> @test_broadcast_4i32_16i32_chain(<4 x i32>* %p0, <4 x float>*
|
|||
; X32-AVX512BW: ## BB#0:
|
||||
; X32-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512BW-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512BW-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512BW-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; X32-AVX512BW-NEXT: vmovdqa32 %xmm1, (%eax)
|
||||
; X32-AVX512BW-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512BW-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; X32-AVX512BW-NEXT: vmovdqa %xmm1, (%eax)
|
||||
; X32-AVX512BW-NEXT: vinserti32x4 $1, %xmm0, %zmm0, %zmm0
|
||||
; X32-AVX512BW-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
|
||||
; X32-AVX512BW-NEXT: retl
|
||||
|
@ -1292,7 +1292,7 @@ define <16 x i32> @test_broadcast_4i32_16i32_chain(<4 x i32>* %p0, <4 x float>*
|
|||
; X32-AVX512DQ: ## BB#0:
|
||||
; X32-AVX512DQ-NEXT: movl {{[0-9]+}}(%esp), %eax
|
||||
; X32-AVX512DQ-NEXT: movl {{[0-9]+}}(%esp), %ecx
|
||||
; X32-AVX512DQ-NEXT: vmovdqa64 (%ecx), %xmm0
|
||||
; X32-AVX512DQ-NEXT: vmovdqa (%ecx), %xmm0
|
||||
; X32-AVX512DQ-NEXT: vxorps %xmm1, %xmm1, %xmm1
|
||||
; X32-AVX512DQ-NEXT: vmovaps %xmm1, (%eax)
|
||||
; X32-AVX512DQ-NEXT: vinserti32x4 $1, %xmm0, %zmm0, %zmm0
|
||||
|
@ -1310,25 +1310,25 @@ define <16 x i32> @test_broadcast_4i32_16i32_chain(<4 x i32>* %p0, <4 x float>*
|
|||
;
|
||||
; X64-AVX512F-LABEL: test_broadcast_4i32_16i32_chain:
|
||||
; X64-AVX512F: ## BB#0:
|
||||
; X64-AVX512F-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512F-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; X64-AVX512F-NEXT: vmovdqa32 %xmm1, (%rsi)
|
||||
; X64-AVX512F-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512F-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; X64-AVX512F-NEXT: vmovdqa %xmm1, (%rsi)
|
||||
; X64-AVX512F-NEXT: vinserti32x4 $1, %xmm0, %zmm0, %zmm0
|
||||
; X64-AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
|
||||
; X64-AVX512F-NEXT: retq
|
||||
;
|
||||
; X64-AVX512BW-LABEL: test_broadcast_4i32_16i32_chain:
|
||||
; X64-AVX512BW: ## BB#0:
|
||||
; X64-AVX512BW-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512BW-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; X64-AVX512BW-NEXT: vmovdqa32 %xmm1, (%rsi)
|
||||
; X64-AVX512BW-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512BW-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; X64-AVX512BW-NEXT: vmovdqa %xmm1, (%rsi)
|
||||
; X64-AVX512BW-NEXT: vinserti32x4 $1, %xmm0, %zmm0, %zmm0
|
||||
; X64-AVX512BW-NEXT: vinserti64x4 $1, %ymm0, %zmm0, %zmm0
|
||||
; X64-AVX512BW-NEXT: retq
|
||||
;
|
||||
; X64-AVX512DQ-LABEL: test_broadcast_4i32_16i32_chain:
|
||||
; X64-AVX512DQ: ## BB#0:
|
||||
; X64-AVX512DQ-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; X64-AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; X64-AVX512DQ-NEXT: vxorps %xmm1, %xmm1, %xmm1
|
||||
; X64-AVX512DQ-NEXT: vmovaps %xmm1, (%rsi)
|
||||
; X64-AVX512DQ-NEXT: vinserti32x4 $1, %xmm0, %zmm0, %zmm0
|
||||
|
@ -1355,18 +1355,18 @@ define void @fallback_broadcast_v4i64_to_v8i64(<4 x i64> %a, <8 x i64> %b) {
|
|||
; X32-AVX512-NEXT: vmovdqa64 {{.*#+}} zmm2 = [1,0,2,0,3,0,4,0,1,0,2,0,3,0,4,0]
|
||||
; X32-AVX512-NEXT: vpaddq %zmm2, %zmm1, %zmm1
|
||||
; X32-AVX512-NEXT: vpandq %zmm2, %zmm1, %zmm1
|
||||
; X32-AVX512-NEXT: vmovdqu64 %ymm0, _ga4
|
||||
; X32-AVX512-NEXT: vmovdqu %ymm0, _ga4
|
||||
; X32-AVX512-NEXT: vmovdqu64 %zmm1, _gb4
|
||||
; X32-AVX512-NEXT: retl
|
||||
;
|
||||
; X64-AVX512-LABEL: fallback_broadcast_v4i64_to_v8i64:
|
||||
; X64-AVX512: ## BB#0: ## %entry
|
||||
; X64-AVX512-NEXT: vmovdqa64 {{.*#+}} ymm2 = [1,2,3,4]
|
||||
; X64-AVX512-NEXT: vmovdqa {{.*#+}} ymm2 = [1,2,3,4]
|
||||
; X64-AVX512-NEXT: vpaddq %ymm2, %ymm0, %ymm0
|
||||
; X64-AVX512-NEXT: vinserti64x4 $1, %ymm2, %zmm2, %zmm2
|
||||
; X64-AVX512-NEXT: vpaddq %zmm2, %zmm1, %zmm1
|
||||
; X64-AVX512-NEXT: vpandq %zmm2, %zmm1, %zmm1
|
||||
; X64-AVX512-NEXT: vmovdqu64 %ymm0, {{.*}}(%rip)
|
||||
; X64-AVX512-NEXT: vmovdqu %ymm0, {{.*}}(%rip)
|
||||
; X64-AVX512-NEXT: vmovdqu64 %zmm1, {{.*}}(%rip)
|
||||
; X64-AVX512-NEXT: retq
|
||||
entry:
|
||||
|
|
|
@ -7,7 +7,7 @@ define <4 x float> @v4f32(<4 x float> %a, <4 x float> %b) nounwind {
|
|||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpandd {{.*}}(%rip){1to4}, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpandd {{.*}}(%rip){1to4}, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vporq %xmm1, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpor %xmm1, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
;
|
||||
; AVX512VLDQ-LABEL: v4f32:
|
||||
|
@ -25,7 +25,7 @@ define <8 x float> @v8f32(<8 x float> %a, <8 x float> %b) nounwind {
|
|||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpandd {{.*}}(%rip){1to8}, %ymm1, %ymm1
|
||||
; AVX512VL-NEXT: vpandd {{.*}}(%rip){1to8}, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: vporq %ymm1, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: vpor %ymm1, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
;
|
||||
; AVX512VLDQ-LABEL: v8f32:
|
||||
|
@ -59,9 +59,9 @@ define <16 x float> @v16f32(<16 x float> %a, <16 x float> %b) nounwind {
|
|||
define <2 x double> @v2f64(<2 x double> %a, <2 x double> %b) nounwind {
|
||||
; AVX512VL-LABEL: v2f64:
|
||||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpandq {{.*}}(%rip), %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpandq {{.*}}(%rip), %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vporq %xmm1, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpand {{.*}}(%rip), %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpand {{.*}}(%rip), %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpor %xmm1, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
;
|
||||
; AVX512VLDQ-LABEL: v2f64:
|
||||
|
@ -79,7 +79,7 @@ define <4 x double> @v4f64(<4 x double> %a, <4 x double> %b) nounwind {
|
|||
; AVX512VL: ## BB#0:
|
||||
; AVX512VL-NEXT: vpandq {{.*}}(%rip){1to4}, %ymm1, %ymm1
|
||||
; AVX512VL-NEXT: vpandq {{.*}}(%rip){1to4}, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: vporq %ymm1, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: vpor %ymm1, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
;
|
||||
; AVX512VLDQ-LABEL: v4f64:
|
||||
|
|
|
@ -17,7 +17,7 @@ define <2 x double> @fabs_v2f64(<2 x double> %p) {
|
|||
;
|
||||
; X32_AVX512VL-LABEL: fabs_v2f64:
|
||||
; X32_AVX512VL: # BB#0:
|
||||
; X32_AVX512VL-NEXT: vpandq {{\.LCPI.*}}, %xmm0, %xmm0
|
||||
; X32_AVX512VL-NEXT: vpand {{\.LCPI.*}}, %xmm0, %xmm0
|
||||
; X32_AVX512VL-NEXT: retl
|
||||
;
|
||||
; X32_AVX512VLDQ-LABEL: fabs_v2f64:
|
||||
|
@ -32,7 +32,7 @@ define <2 x double> @fabs_v2f64(<2 x double> %p) {
|
|||
;
|
||||
; X64_AVX512VL-LABEL: fabs_v2f64:
|
||||
; X64_AVX512VL: # BB#0:
|
||||
; X64_AVX512VL-NEXT: vpandq {{.*}}(%rip), %xmm0, %xmm0
|
||||
; X64_AVX512VL-NEXT: vpand {{.*}}(%rip), %xmm0, %xmm0
|
||||
; X64_AVX512VL-NEXT: retq
|
||||
;
|
||||
; X64_AVX512VLDQ-LABEL: fabs_v2f64:
|
||||
|
|
|
@ -2468,7 +2468,7 @@ define <4 x i32> @fptosi_2f128_to_4i32(<2 x fp128> %a) nounwind {
|
|||
; AVX512VL-NEXT: movq %rcx, %rsi
|
||||
; AVX512VL-NEXT: callq __fixtfdi
|
||||
; AVX512VL-NEXT: vmovq %rax, %xmm0
|
||||
; AVX512VL-NEXT: vmovdqa64 %xmm0, (%rsp) # 16-byte Spill
|
||||
; AVX512VL-NEXT: vmovdqa %xmm0, (%rsp) # 16-byte Spill
|
||||
; AVX512VL-NEXT: movq %rbx, %rdi
|
||||
; AVX512VL-NEXT: movq %r14, %rsi
|
||||
; AVX512VL-NEXT: callq __fixtfdi
|
||||
|
@ -2516,7 +2516,7 @@ define <4 x i32> @fptosi_2f128_to_4i32(<2 x fp128> %a) nounwind {
|
|||
; AVX512VLDQ-NEXT: movq %rcx, %rsi
|
||||
; AVX512VLDQ-NEXT: callq __fixtfdi
|
||||
; AVX512VLDQ-NEXT: vmovq %rax, %xmm0
|
||||
; AVX512VLDQ-NEXT: vmovdqa64 %xmm0, (%rsp) # 16-byte Spill
|
||||
; AVX512VLDQ-NEXT: vmovdqa %xmm0, (%rsp) # 16-byte Spill
|
||||
; AVX512VLDQ-NEXT: movq %rbx, %rdi
|
||||
; AVX512VLDQ-NEXT: movq %r14, %rsi
|
||||
; AVX512VLDQ-NEXT: callq __fixtfdi
|
||||
|
|
|
@ -28,8 +28,8 @@ define void @fpext_frommem(<2 x float>* %in, <2 x double>* %out) {
|
|||
; X32-AVX512VL: # BB#0: # %entry
|
||||
; X32-AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]
|
||||
; X32-AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x04]
|
||||
; X32-AVX512VL-NEXT: vcvtps2pd (%ecx), %xmm0 # encoding: [0x62,0xf1,0x7c,0x08,0x5a,0x01]
|
||||
; X32-AVX512VL-NEXT: vmovups %xmm0, (%eax) # encoding: [0x62,0xf1,0x7c,0x08,0x11,0x00]
|
||||
; X32-AVX512VL-NEXT: vcvtps2pd (%ecx), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x5a,0x01]
|
||||
; X32-AVX512VL-NEXT: vmovups %xmm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x11,0x00]
|
||||
; X32-AVX512VL-NEXT: retl # encoding: [0xc3]
|
||||
;
|
||||
; X64-SSE-LABEL: fpext_frommem:
|
||||
|
@ -46,8 +46,8 @@ define void @fpext_frommem(<2 x float>* %in, <2 x double>* %out) {
|
|||
;
|
||||
; X64-AVX512VL-LABEL: fpext_frommem:
|
||||
; X64-AVX512VL: # BB#0: # %entry
|
||||
; X64-AVX512VL-NEXT: vcvtps2pd (%rdi), %xmm0 # encoding: [0x62,0xf1,0x7c,0x08,0x5a,0x07]
|
||||
; X64-AVX512VL-NEXT: vmovups %xmm0, (%rsi) # encoding: [0x62,0xf1,0x7c,0x08,0x11,0x06]
|
||||
; X64-AVX512VL-NEXT: vcvtps2pd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x5a,0x07]
|
||||
; X64-AVX512VL-NEXT: vmovups %xmm0, (%rsi) # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x11,0x06]
|
||||
; X64-AVX512VL-NEXT: retq # encoding: [0xc3]
|
||||
entry:
|
||||
%0 = load <2 x float>, <2 x float>* %in, align 8
|
||||
|
@ -80,8 +80,8 @@ define void @fpext_frommem4(<4 x float>* %in, <4 x double>* %out) {
|
|||
; X32-AVX512VL: # BB#0: # %entry
|
||||
; X32-AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]
|
||||
; X32-AVX512VL-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x04]
|
||||
; X32-AVX512VL-NEXT: vcvtps2pd (%ecx), %ymm0 # encoding: [0x62,0xf1,0x7c,0x28,0x5a,0x01]
|
||||
; X32-AVX512VL-NEXT: vmovups %ymm0, (%eax) # encoding: [0x62,0xf1,0x7c,0x28,0x11,0x00]
|
||||
; X32-AVX512VL-NEXT: vcvtps2pd (%ecx), %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfc,0x5a,0x01]
|
||||
; X32-AVX512VL-NEXT: vmovups %ymm0, (%eax) # EVEX TO VEX Compression encoding: [0xc5,0xfc,0x11,0x00]
|
||||
; X32-AVX512VL-NEXT: retl # encoding: [0xc3]
|
||||
;
|
||||
; X64-SSE-LABEL: fpext_frommem4:
|
||||
|
@ -101,8 +101,8 @@ define void @fpext_frommem4(<4 x float>* %in, <4 x double>* %out) {
|
|||
;
|
||||
; X64-AVX512VL-LABEL: fpext_frommem4:
|
||||
; X64-AVX512VL: # BB#0: # %entry
|
||||
; X64-AVX512VL-NEXT: vcvtps2pd (%rdi), %ymm0 # encoding: [0x62,0xf1,0x7c,0x28,0x5a,0x07]
|
||||
; X64-AVX512VL-NEXT: vmovups %ymm0, (%rsi) # encoding: [0x62,0xf1,0x7c,0x28,0x11,0x06]
|
||||
; X64-AVX512VL-NEXT: vcvtps2pd (%rdi), %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfc,0x5a,0x07]
|
||||
; X64-AVX512VL-NEXT: vmovups %ymm0, (%rsi) # EVEX TO VEX Compression encoding: [0xc5,0xfc,0x11,0x06]
|
||||
; X64-AVX512VL-NEXT: retq # encoding: [0xc3]
|
||||
entry:
|
||||
%0 = load <4 x float>, <4 x float>* %in
|
||||
|
@ -195,9 +195,9 @@ define <2 x double> @fpext_fromconst() {
|
|||
;
|
||||
; X32-AVX512VL-LABEL: fpext_fromconst:
|
||||
; X32-AVX512VL: # BB#0: # %entry
|
||||
; X32-AVX512VL-NEXT: vmovaps {{.*#+}} xmm0 = [1.000000e+00,-2.000000e+00]
|
||||
; X32-AVX512VL-NEXT: # encoding: [0x62,0xf1,0x7c,0x08,0x28,0x05,A,A,A,A]
|
||||
; X32-AVX512VL-NEXT: # fixup A - offset: 6, value: {{\.LCPI.*}}, kind: FK_Data_4
|
||||
; X32-AVX512VL-NEXT: vmovaps {{\.LCPI.*}}, %xmm0 # EVEX TO VEX Compression xmm0 = [1.000000e+00,-2.000000e+00]
|
||||
; X32-AVX512VL-NEXT: # encoding: [0xc5,0xf8,0x28,0x05,A,A,A,A]
|
||||
; X32-AVX512VL-NEXT: # fixup A - offset: 4, value: {{\.LCPI.*}}, kind: FK_Data_4
|
||||
; X32-AVX512VL-NEXT: retl # encoding: [0xc3]
|
||||
;
|
||||
; X64-SSE-LABEL: fpext_fromconst:
|
||||
|
@ -216,9 +216,9 @@ define <2 x double> @fpext_fromconst() {
|
|||
;
|
||||
; X64-AVX512VL-LABEL: fpext_fromconst:
|
||||
; X64-AVX512VL: # BB#0: # %entry
|
||||
; X64-AVX512VL-NEXT: vmovaps {{.*#+}} xmm0 = [1.000000e+00,-2.000000e+00]
|
||||
; X64-AVX512VL-NEXT: # encoding: [0x62,0xf1,0x7c,0x08,0x28,0x05,A,A,A,A]
|
||||
; X64-AVX512VL-NEXT: # fixup A - offset: 6, value: {{\.LCPI.*}}-4, kind: reloc_riprel_4byte
|
||||
; X64-AVX512VL-NEXT: vmovaps {{.*}}(%rip), %xmm0 # EVEX TO VEX Compression xmm0 = [1.000000e+00,-2.000000e+00]
|
||||
; X64-AVX512VL-NEXT: # encoding: [0xc5,0xf8,0x28,0x05,A,A,A,A]
|
||||
; X64-AVX512VL-NEXT: # fixup A - offset: 4, value: {{\.LCPI.*}}-4, kind: reloc_riprel_4byte
|
||||
; X64-AVX512VL-NEXT: retq # encoding: [0xc3]
|
||||
entry:
|
||||
%0 = insertelement <2 x float> undef, float 1.0, i32 0
|
||||
|
|
|
@ -2594,7 +2594,7 @@ define <2 x double> @sitofp_load_2i64_to_2f64(<2 x i64> *%a) {
|
|||
;
|
||||
; AVX512VL-LABEL: sitofp_load_2i64_to_2f64:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; AVX512VL-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; AVX512VL-NEXT: vpextrq $1, %xmm0, %rax
|
||||
; AVX512VL-NEXT: vcvtsi2sdq %rax, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vmovq %xmm0, %rax
|
||||
|
@ -2774,7 +2774,7 @@ define <4 x double> @sitofp_load_4i64_to_4f64(<4 x i64> *%a) {
|
|||
;
|
||||
; AVX512VL-LABEL: sitofp_load_4i64_to_4f64:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa64 (%rdi), %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa (%rdi), %ymm0
|
||||
; AVX512VL-NEXT: vextracti32x4 $1, %ymm0, %xmm1
|
||||
; AVX512VL-NEXT: vpextrq $1, %xmm1, %rax
|
||||
; AVX512VL-NEXT: vcvtsi2sdq %rax, %xmm2, %xmm2
|
||||
|
@ -2913,7 +2913,7 @@ define <2 x double> @uitofp_load_2i64_to_2f64(<2 x i64> *%a) {
|
|||
;
|
||||
; AVX512VL-LABEL: uitofp_load_2i64_to_2f64:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa64 (%rdi), %xmm0
|
||||
; AVX512VL-NEXT: vmovdqa (%rdi), %xmm0
|
||||
; AVX512VL-NEXT: vpextrq $1, %xmm0, %rax
|
||||
; AVX512VL-NEXT: vcvtusi2sdq %rax, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vmovq %xmm0, %rax
|
||||
|
@ -3021,7 +3021,7 @@ define <2 x double> @uitofp_load_2i16_to_2f64(<2 x i16> *%a) {
|
|||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpmovzxwq {{.*#+}} xmm0 = mem[0],zero,zero,zero,mem[1],zero,zero,zero
|
||||
; AVX512VL-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3,4,5,6,7]
|
||||
; AVX512VL-NEXT: vcvtdq2pd %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
|
@ -3037,7 +3037,7 @@ define <2 x double> @uitofp_load_2i16_to_2f64(<2 x i16> *%a) {
|
|||
; AVX512VLDQ: # BB#0:
|
||||
; AVX512VLDQ-NEXT: vpmovzxwq {{.*#+}} xmm0 = mem[0],zero,zero,zero,mem[1],zero,zero,zero
|
||||
; AVX512VLDQ-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
|
||||
; AVX512VLDQ-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VLDQ-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VLDQ-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2],xmm1[3,4,5,6,7]
|
||||
; AVX512VLDQ-NEXT: vcvtdq2pd %xmm0, %xmm0
|
||||
; AVX512VLDQ-NEXT: retq
|
||||
|
@ -3189,7 +3189,7 @@ define <4 x double> @uitofp_load_4i64_to_4f64(<4 x i64> *%a) {
|
|||
;
|
||||
; AVX512VL-LABEL: uitofp_load_4i64_to_4f64:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa64 (%rdi), %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa (%rdi), %ymm0
|
||||
; AVX512VL-NEXT: vextracti32x4 $1, %ymm0, %xmm1
|
||||
; AVX512VL-NEXT: vpextrq $1, %xmm1, %rax
|
||||
; AVX512VL-NEXT: vcvtusi2sdq %rax, %xmm2, %xmm2
|
||||
|
@ -3420,7 +3420,7 @@ define <4 x float> @sitofp_load_4i64_to_4f32(<4 x i64> *%a) {
|
|||
;
|
||||
; AVX512VL-LABEL: sitofp_load_4i64_to_4f32:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa64 (%rdi), %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa (%rdi), %ymm0
|
||||
; AVX512VL-NEXT: vpextrq $1, %xmm0, %rax
|
||||
; AVX512VL-NEXT: vcvtsi2ssq %rax, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vmovq %xmm0, %rax
|
||||
|
@ -4007,7 +4007,7 @@ define <4 x float> @uitofp_load_4i64_to_4f32(<4 x i64> *%a) {
|
|||
;
|
||||
; AVX512VL-LABEL: uitofp_load_4i64_to_4f32:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa64 (%rdi), %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa (%rdi), %ymm0
|
||||
; AVX512VL-NEXT: vpextrq $1, %xmm0, %rax
|
||||
; AVX512VL-NEXT: vcvtusi2ssq %rax, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vmovq %xmm0, %rax
|
||||
|
|
|
@ -3010,7 +3010,7 @@ define <8 x i16> @cvt_4f32_to_8i16_zero(<4 x float> %a0) nounwind {
|
|||
; AVX512VL-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]
|
||||
; AVX512VL-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]
|
||||
; AVX512VL-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,2]
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpunpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm1[1]
|
||||
; AVX512VL-NEXT: retq
|
||||
%1 = fptrunc <4 x float> %a0 to <4 x half>
|
||||
|
@ -3713,7 +3713,7 @@ define void @store_cvt_4f32_to_8i16_undef(<4 x float> %a0, <8 x i16>* %a1) nounw
|
|||
; AVX512VL-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]
|
||||
; AVX512VL-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]
|
||||
; AVX512VL-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
|
||||
; AVX512VL-NEXT: vmovdqa32 %xmm0, (%rdi)
|
||||
; AVX512VL-NEXT: vmovdqa %xmm0, (%rdi)
|
||||
; AVX512VL-NEXT: retq
|
||||
%1 = fptrunc <4 x float> %a0 to <4 x half>
|
||||
%2 = bitcast <4 x half> %1 to <4 x i16>
|
||||
|
@ -3827,9 +3827,9 @@ define void @store_cvt_4f32_to_8i16_zero(<4 x float> %a0, <8 x i16>* %a1) nounwi
|
|||
; AVX512VL-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]
|
||||
; AVX512VL-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]
|
||||
; AVX512VL-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,2]
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpunpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm1[1]
|
||||
; AVX512VL-NEXT: vmovdqa32 %xmm0, (%rdi)
|
||||
; AVX512VL-NEXT: vmovdqa %xmm0, (%rdi)
|
||||
; AVX512VL-NEXT: retq
|
||||
%1 = fptrunc <4 x float> %a0 to <4 x half>
|
||||
%2 = bitcast <4 x half> %1 to <4 x i16>
|
||||
|
@ -4742,7 +4742,7 @@ define <8 x i16> @cvt_4f64_to_8i16_zero(<4 x double> %a0) nounwind {
|
|||
; AVX512VL-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]
|
||||
; AVX512VL-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]
|
||||
; AVX512VL-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,2]
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpunpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm1[1]
|
||||
; AVX512VL-NEXT: addq $40, %rsp
|
||||
; AVX512VL-NEXT: popq %rbx
|
||||
|
@ -5373,7 +5373,7 @@ define void @store_cvt_4f64_to_8i16_undef(<4 x double> %a0, <8 x i16>* %a1) noun
|
|||
; AVX512VL-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]
|
||||
; AVX512VL-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]
|
||||
; AVX512VL-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
|
||||
; AVX512VL-NEXT: vmovdqa32 %xmm0, (%r14)
|
||||
; AVX512VL-NEXT: vmovdqa %xmm0, (%r14)
|
||||
; AVX512VL-NEXT: addq $32, %rsp
|
||||
; AVX512VL-NEXT: popq %rbx
|
||||
; AVX512VL-NEXT: popq %r14
|
||||
|
@ -5544,9 +5544,9 @@ define void @store_cvt_4f64_to_8i16_zero(<4 x double> %a0, <8 x i16>* %a1) nounw
|
|||
; AVX512VL-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7]
|
||||
; AVX512VL-NEXT: vpshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]
|
||||
; AVX512VL-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,2]
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpunpckhqdq {{.*#+}} xmm0 = xmm0[1],xmm1[1]
|
||||
; AVX512VL-NEXT: vmovdqa32 %xmm0, (%r14)
|
||||
; AVX512VL-NEXT: vmovdqa %xmm0, (%r14)
|
||||
; AVX512VL-NEXT: addq $32, %rsp
|
||||
; AVX512VL-NEXT: popq %rbx
|
||||
; AVX512VL-NEXT: popq %r14
|
||||
|
|
|
@ -716,7 +716,7 @@ define <32 x i8> @testv32i8(<32 x i8> %in) nounwind {
|
|||
; AVX512VLCD-NEXT: vpmovzxbd {{.*#+}} zmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero,xmm1[4],zero,zero,zero,xmm1[5],zero,zero,zero,xmm1[6],zero,zero,zero,xmm1[7],zero,zero,zero,xmm1[8],zero,zero,zero,xmm1[9],zero,zero,zero,xmm1[10],zero,zero,zero,xmm1[11],zero,zero,zero,xmm1[12],zero,zero,zero,xmm1[13],zero,zero,zero,xmm1[14],zero,zero,zero,xmm1[15],zero,zero,zero
|
||||
; AVX512VLCD-NEXT: vplzcntd %zmm1, %zmm1
|
||||
; AVX512VLCD-NEXT: vpmovdb %zmm1, %xmm1
|
||||
; AVX512VLCD-NEXT: vmovdqa64 {{.*#+}} xmm2 = [24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24]
|
||||
; AVX512VLCD-NEXT: vmovdqa {{.*#+}} xmm2 = [24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24]
|
||||
; AVX512VLCD-NEXT: vpsubb %xmm2, %xmm1, %xmm1
|
||||
; AVX512VLCD-NEXT: vpmovzxbd {{.*#+}} zmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero,xmm0[4],zero,zero,zero,xmm0[5],zero,zero,zero,xmm0[6],zero,zero,zero,xmm0[7],zero,zero,zero,xmm0[8],zero,zero,zero,xmm0[9],zero,zero,zero,xmm0[10],zero,zero,zero,xmm0[11],zero,zero,zero,xmm0[12],zero,zero,zero,xmm0[13],zero,zero,zero,xmm0[14],zero,zero,zero,xmm0[15],zero,zero,zero
|
||||
; AVX512VLCD-NEXT: vplzcntd %zmm0, %zmm0
|
||||
|
@ -805,7 +805,7 @@ define <32 x i8> @testv32i8u(<32 x i8> %in) nounwind {
|
|||
; AVX512VLCD-NEXT: vpmovzxbd {{.*#+}} zmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero,xmm1[4],zero,zero,zero,xmm1[5],zero,zero,zero,xmm1[6],zero,zero,zero,xmm1[7],zero,zero,zero,xmm1[8],zero,zero,zero,xmm1[9],zero,zero,zero,xmm1[10],zero,zero,zero,xmm1[11],zero,zero,zero,xmm1[12],zero,zero,zero,xmm1[13],zero,zero,zero,xmm1[14],zero,zero,zero,xmm1[15],zero,zero,zero
|
||||
; AVX512VLCD-NEXT: vplzcntd %zmm1, %zmm1
|
||||
; AVX512VLCD-NEXT: vpmovdb %zmm1, %xmm1
|
||||
; AVX512VLCD-NEXT: vmovdqa64 {{.*#+}} xmm2 = [24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24]
|
||||
; AVX512VLCD-NEXT: vmovdqa {{.*#+}} xmm2 = [24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24]
|
||||
; AVX512VLCD-NEXT: vpsubb %xmm2, %xmm1, %xmm1
|
||||
; AVX512VLCD-NEXT: vpmovzxbd {{.*#+}} zmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero,xmm0[4],zero,zero,zero,xmm0[5],zero,zero,zero,xmm0[6],zero,zero,zero,xmm0[7],zero,zero,zero,xmm0[8],zero,zero,zero,xmm0[9],zero,zero,zero,xmm0[10],zero,zero,zero,xmm0[11],zero,zero,zero,xmm0[12],zero,zero,zero,xmm0[13],zero,zero,zero,xmm0[14],zero,zero,zero,xmm0[15],zero,zero,zero
|
||||
; AVX512VLCD-NEXT: vplzcntd %zmm0, %zmm0
|
||||
|
|
|
@ -423,7 +423,7 @@ define <16 x i8> @shuffle_v16i8_00_17_02_19_04_21_06_23_08_25_10_27_12_29_14_31(
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i8_00_17_02_19_04_21_06_23_08_25_10_27_12_29_14_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} xmm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} xmm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vpblendvb %xmm2, %xmm0, %xmm1, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 17, i32 2, i32 19, i32 4, i32 21, i32 6, i32 23, i32 8, i32 25, i32 10, i32 27, i32 12, i32 29, i32 14, i32 31>
|
||||
|
@ -462,7 +462,7 @@ define <16 x i8> @shuffle_v16i8_00_01_02_19_04_05_06_23_08_09_10_27_12_13_14_31(
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i8_00_01_02_19_04_05_06_23_08_09_10_27_12_13_14_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} xmm2 = [255,255,255,0,255,255,255,0,255,255,255,0,255,255,255,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} xmm2 = [255,255,255,0,255,255,255,0,255,255,255,0,255,255,255,0]
|
||||
; AVX512VL-NEXT: vpblendvb %xmm2, %xmm0, %xmm1, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 1, i32 2, i32 19, i32 4, i32 5, i32 6, i32 23, i32 8, i32 9, i32 10, i32 27, i32 12, i32 13, i32 14, i32 31>
|
||||
|
@ -482,7 +482,7 @@ define <16 x i8> @shuffle_v16i8_00_01_02_zz_04_05_06_zz_08_09_10_zz_12_13_14_zz(
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i8_00_01_02_zz_04_05_06_zz_08_09_10_zz_12_13_14_zz:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpandq {{.*}}(%rip), %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpand {{.*}}(%rip), %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i8> %a, <16 x i8> zeroinitializer, <16 x i32> <i32 0, i32 1, i32 2, i32 19, i32 4, i32 5, i32 6, i32 23, i32 8, i32 9, i32 10, i32 27, i32 12, i32 13, i32 14, i32 31>
|
||||
ret <16 x i8> %shuffle
|
||||
|
@ -520,7 +520,7 @@ define <16 x i8> @shuffle_v16i8_00_01_02_03_20_05_06_23_08_09_10_11_28_13_14_31(
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i8_00_01_02_03_20_05_06_23_08_09_10_11_28_13_14_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} xmm2 = [255,255,255,255,0,255,255,0,255,255,255,255,0,255,255,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} xmm2 = [255,255,255,255,0,255,255,0,255,255,255,255,0,255,255,0]
|
||||
; AVX512VL-NEXT: vpblendvb %xmm2, %xmm0, %xmm1, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 20, i32 5, i32 6, i32 23, i32 8, i32 9, i32 10, i32 11, i32 28, i32 13, i32 14, i32 31>
|
||||
|
@ -560,7 +560,7 @@ define <16 x i8> @shuffle_v16i8_16_17_18_19_04_05_06_07_24_25_10_11_28_13_30_15(
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i8_16_17_18_19_04_05_06_07_24_25_10_11_28_13_30_15:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} xmm2 = [255,255,255,255,0,0,0,0,255,255,0,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} xmm2 = [255,255,255,255,0,0,0,0,255,255,0,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vpblendvb %xmm2, %xmm1, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 16, i32 17, i32 18, i32 19, i32 4, i32 5, i32 6, i32 7, i32 24, i32 25, i32 10, i32 11, i32 28, i32 13, i32 30, i32 15>
|
||||
|
@ -710,7 +710,7 @@ define <16 x i8> @shuffle_v16i8_zz_zz_zz_zz_zz_16_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz(
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i8_zz_zz_zz_zz_zz_16_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpinsrb $5, %edi, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%a = insertelement <16 x i8> undef, i8 %i, i32 0
|
||||
|
@ -747,7 +747,7 @@ define <16 x i8> @shuffle_v16i8_zz_uu_uu_zz_uu_uu_zz_zz_zz_zz_zz_zz_zz_zz_zz_16(
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i8_zz_uu_uu_zz_uu_uu_zz_zz_zz_zz_zz_zz_zz_zz_zz_16:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpinsrb $15, %edi, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%a = insertelement <16 x i8> undef, i8 %i, i32 0
|
||||
|
@ -784,7 +784,7 @@ define <16 x i8> @shuffle_v16i8_zz_zz_19_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz(
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i8_zz_zz_19_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpinsrb $2, %edi, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%a = insertelement <16 x i8> undef, i8 %i, i32 3
|
||||
|
@ -1233,7 +1233,7 @@ define <16 x i8> @shuffle_v16i8_uu_10_02_07_22_14_07_02_18_03_01_14_18_09_11_00(
|
|||
; AVX512VL: # BB#0: # %entry
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} xmm1 = xmm1[u],zero,zero,zero,xmm1[6],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[2],zero,zero,zero
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[u,10,2,7],zero,xmm0[14,7,2],zero,xmm0[3,1,14],zero,xmm0[9,11,0]
|
||||
; AVX512VL-NEXT: vporq %xmm1, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpor %xmm1, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
entry:
|
||||
%shuffle = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 undef, i32 10, i32 2, i32 7, i32 22, i32 14, i32 7, i32 2, i32 18, i32 3, i32 1, i32 14, i32 18, i32 9, i32 11, i32 0>
|
||||
|
@ -1270,9 +1270,9 @@ define void @constant_gets_selected(<4 x i32>* %ptr1, <4 x i32>* %ptr2) {
|
|||
;
|
||||
; AVX512VL-LABEL: constant_gets_selected:
|
||||
; AVX512VL: # BB#0: # %entry
|
||||
; AVX512VL-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vmovdqa32 %xmm0, (%rdi)
|
||||
; AVX512VL-NEXT: vmovdqa32 %xmm0, (%rsi)
|
||||
; AVX512VL-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vmovdqa %xmm0, (%rdi)
|
||||
; AVX512VL-NEXT: vmovdqa %xmm0, (%rsi)
|
||||
; AVX512VL-NEXT: retq
|
||||
entry:
|
||||
%weird_zero = bitcast <4 x i32> zeroinitializer to <16 x i8>
|
||||
|
@ -1420,7 +1420,7 @@ define <16 x i8> @PR12412(<16 x i8> %inval1, <16 x i8> %inval2) {
|
|||
;
|
||||
; AVX512VL-LABEL: PR12412:
|
||||
; AVX512VL: # BB#0: # %entry
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} xmm2 = <0,2,4,6,8,10,12,14,u,u,u,u,u,u,u,u>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} xmm2 = <0,2,4,6,8,10,12,14,u,u,u,u,u,u,u,u>
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
|
||||
|
@ -1781,7 +1781,7 @@ define <16 x i8> @PR31364(i8* nocapture readonly %a, i8* nocapture readonly %b)
|
|||
;
|
||||
; AVX512VL-LABEL: PR31364:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpinsrb $0, (%rdi), %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpinsrb $1, (%rsi), %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[1,1,1,1,1,1,1],zero,xmm0[1,1,1,1,1,0,0,0]
|
||||
|
|
|
@ -782,7 +782,7 @@ define <2 x i64> @shuffle_v2i64_z1(<2 x i64> %a) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v2i64_z1:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpblendd {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <2 x i64> %a, <2 x i64> zeroinitializer, <2 x i32> <i32 2, i32 1>
|
||||
|
@ -824,7 +824,7 @@ define <2 x double> @shuffle_v2f64_1z(<2 x double> %a) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v2f64_1z:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <2 x double> %a, <2 x double> zeroinitializer, <2 x i32> <i32 1, i32 3>
|
||||
|
@ -853,7 +853,7 @@ define <2 x double> @shuffle_v2f64_z0(<2 x double> %a) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v2f64_z0:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vunpcklpd {{.*#+}} xmm0 = xmm1[0],xmm0[0]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <2 x double> %a, <2 x double> zeroinitializer, <2 x i32> <i32 2, i32 0>
|
||||
|
@ -899,7 +899,7 @@ define <2 x double> @shuffle_v2f64_z1(<2 x double> %a) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v2f64_z1:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vblendpd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <2 x double> %a, <2 x double> zeroinitializer, <2 x i32> <i32 2, i32 1>
|
||||
|
@ -927,7 +927,7 @@ define <2 x double> @shuffle_v2f64_bitcast_1z(<2 x double> %a) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v2f64_bitcast_1z:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vshufpd {{.*#+}} xmm0 = xmm0[1],xmm1[0]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle64 = shufflevector <2 x double> %a, <2 x double> zeroinitializer, <2 x i32> <i32 2, i32 1>
|
||||
|
@ -973,7 +973,7 @@ define <2 x i64> @shuffle_v2i64_bitcast_z123(<2 x i64> %x) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v2i64_bitcast_z123:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpblendd {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]
|
||||
; AVX512VL-NEXT: retq
|
||||
%bitcast32 = bitcast <2 x i64> %x to <4 x float>
|
||||
|
|
|
@ -1364,7 +1364,7 @@ define <4 x i32> @shuffle_v4i32_z6zz(<4 x i32> %a) {
|
|||
; AVX512VL-LABEL: shuffle_v4i32_z6zz:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,2,3,3]
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpblendd {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <4 x i32> zeroinitializer, <4 x i32> %a, <4 x i32> <i32 0, i32 6, i32 2, i32 3>
|
||||
|
@ -1691,7 +1691,7 @@ define <4 x i32> @shuffle_v4i32_0z23(<4 x i32> %a) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v4i32_0z23:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <4 x i32> %a, <4 x i32> zeroinitializer, <4 x i32> <i32 0, i32 4, i32 2, i32 3>
|
||||
|
@ -1734,7 +1734,7 @@ define <4 x i32> @shuffle_v4i32_01z3(<4 x i32> %a) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v4i32_01z3:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <4 x i32> %a, <4 x i32> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 4, i32 3>
|
||||
|
@ -1777,7 +1777,7 @@ define <4 x i32> @shuffle_v4i32_012z(<4 x i32> %a) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v4i32_012z:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <4 x i32> %a, <4 x i32> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 7>
|
||||
|
@ -1820,7 +1820,7 @@ define <4 x i32> @shuffle_v4i32_0zz3(<4 x i32> %a) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v4i32_0zz3:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1,2],xmm0[3]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <4 x i32> %a, <4 x i32> zeroinitializer, <4 x i32> <i32 0, i32 4, i32 4, i32 3>
|
||||
|
|
|
@ -1423,7 +1423,7 @@ define <8 x i16> @shuffle_v8i16_z8zzzzzz(i16 %i) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i16_z8zzzzzz:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpinsrw $1, %edi, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%a = insertelement <8 x i16> undef, i16 %i, i32 0
|
||||
|
@ -1446,7 +1446,7 @@ define <8 x i16> @shuffle_v8i16_zzzzz8zz(i16 %i) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i16_zzzzz8zz:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpinsrw $5, %edi, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%a = insertelement <8 x i16> undef, i16 %i, i32 0
|
||||
|
@ -1469,7 +1469,7 @@ define <8 x i16> @shuffle_v8i16_zuuzuuz8(i16 %i) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i16_zuuzuuz8:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpinsrw $7, %edi, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%a = insertelement <8 x i16> undef, i16 %i, i32 0
|
||||
|
@ -1492,7 +1492,7 @@ define <8 x i16> @shuffle_v8i16_zzBzzzzz(i16 %i) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i16_zzBzzzzz:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpinsrw $2, %edi, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%a = insertelement <8 x i16> undef, i16 %i, i32 3
|
||||
|
@ -2110,7 +2110,7 @@ define <8 x i16> @shuffle_v8i16_0z234567(<8 x i16> %a) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i16_0z234567:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5,6,7]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i16> %a, <8 x i16> zeroinitializer, <8 x i32> <i32 0, i32 9, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
|
||||
|
@ -2142,7 +2142,7 @@ define <8 x i16> @shuffle_v8i16_0zzzz5z7(<8 x i16> %a) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i16_0zzzz5z7:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1,2,3,4],xmm0[5],xmm1[6],xmm0[7]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i16> %a, <8 x i16> zeroinitializer, <8 x i32> <i32 0, i32 8, i32 8, i32 8, i32 8, i32 5, i32 8, i32 7>
|
||||
|
@ -2174,7 +2174,7 @@ define <8 x i16> @shuffle_v8i16_0123456z(<8 x i16> %a) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i16_0123456z:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3,4,5,6],xmm1[7]
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i16> %a, <8 x i16> zeroinitializer, <8 x i32> <i32 0, i32 9, i32 2, i32 3, i32 4, i32 5, i32 6, i32 15>
|
||||
|
|
|
@ -170,7 +170,7 @@ define <16 x i16> @shuffle_v16i16_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_0
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_00_00_00_00_00_00_08_00_00_00_00_00_00_00_00:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm1 = [0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm1 = [0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vpermw %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 8, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -198,7 +198,7 @@ define <16 x i16> @shuffle_v16i16_00_00_00_00_00_00_09_00_00_00_00_00_00_00_00_0
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_00_00_00_00_00_09_00_00_00_00_00_00_00_00_00:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm1 = [0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm1 = [0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vpermw %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 9, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -225,7 +225,7 @@ define <16 x i16> @shuffle_v16i16_00_00_00_00_00_10_00_00_00_00_00_00_00_00_00_0
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_00_00_00_00_10_00_00_00_00_00_00_00_00_00_00:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm1 = [0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm1 = [0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vpermw %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 10, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -252,7 +252,7 @@ define <16 x i16> @shuffle_v16i16_00_00_00_00_11_00_00_00_00_00_00_00_00_00_00_0
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_00_00_00_11_00_00_00_00_00_00_00_00_00_00_00:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm1 = [0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm1 = [0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vpermw %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 11, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -278,7 +278,7 @@ define <16 x i16> @shuffle_v16i16_00_00_00_12_00_00_00_00_00_00_00_00_00_00_00_0
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_00_00_12_00_00_00_00_00_00_00_00_00_00_00_00:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm1 = [0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm1 = [0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vpermw %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 0, i32 0, i32 12, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -304,7 +304,7 @@ define <16 x i16> @shuffle_v16i16_00_00_13_00_00_00_00_00_00_00_00_00_00_00_00_0
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_00_13_00_00_00_00_00_00_00_00_00_00_00_00_00:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm1 = [0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm1 = [0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vpermw %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 0, i32 13, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -330,7 +330,7 @@ define <16 x i16> @shuffle_v16i16_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_0
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_14_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm1 = [0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm1 = [0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vpermw %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 14, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -717,7 +717,7 @@ define <16 x i16> @shuffle_v16i16_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_3
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0]
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 31>
|
||||
|
@ -741,7 +741,7 @@ define <16 x i16> @shuffle_v16i16_16_01_02_03_04_05_06_07_08_09_10_11_12_13_14_1
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_16_01_02_03_04_05_06_07_08_09_10_11_12_13_14_15:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = [0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 16, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
|
||||
|
@ -765,7 +765,7 @@ define <16 x i16> @shuffle_v16i16_00_17_02_19_04_21_06_23_24_09_26_11_28_13_30_1
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_17_02_19_04_21_06_23_24_09_26_11_28_13_30_15:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = [255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255]
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 17, i32 2, i32 19, i32 4, i32 21, i32 6, i32 23, i32 24, i32 9, i32 26, i32 11, i32 28, i32 13, i32 30, i32 15>
|
||||
|
@ -789,7 +789,7 @@ define <16 x i16> @shuffle_v16i16_16_01_18_03_20_05_22_07_08_25_10_27_12_29_14_3
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_16_01_18_03_20_05_22_07_08_25_10_27_12_29_14_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = [0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,255,255,0,0,255,255,0,0,255,255,0,0,255,255,0,0]
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 16, i32 1, i32 18, i32 3, i32 20, i32 5, i32 22, i32 7, i32 8, i32 25, i32 10, i32 27, i32 12, i32 29, i32 14, i32 31>
|
||||
|
@ -849,7 +849,7 @@ define <16 x i16> @shuffle_v16i16_00_16_00_16_00_16_00_16_08_24_08_24_08_24_08_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_16_00_16_00_16_00_16_08_24_08_24_08_24_08_24:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,16,0,16,0,16,0,16,8,24,8,24,8,24,8,24]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,16,0,16,0,16,0,16,8,24,8,24,8,24,8,24]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 16, i32 0, i32 16, i32 0, i32 16, i32 0, i32 16, i32 8, i32 24, i32 8, i32 24, i32 8, i32 24, i32 8, i32 24>
|
||||
|
@ -876,9 +876,9 @@ define <16 x i16> @shuffle_v16i16_16_16_16_16_04_05_06_07_24_24_24_24_12_13_14_1
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_16_16_16_16_04_05_06_07_24_24_24_24_12_13_14_15:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,0,0,0,20,21,22,23,8,8,8,8,28,29,30,31]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,0,0,0,20,21,22,23,8,8,8,8,28,29,30,31]
|
||||
; AVX512VL-NEXT: vpermi2w %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 16, i32 16, i32 16, i32 16, i32 4, i32 5, i32 6, i32 7, i32 24, i32 24, i32 24, i32 24, i32 12, i32 13, i32 14, i32 15>
|
||||
ret <16 x i16> %shuffle
|
||||
|
@ -909,9 +909,9 @@ define <16 x i16> @shuffle_v16i16_19_18_17_16_07_06_05_04_27_26_25_24_15_14_13_1
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_19_18_17_16_07_06_05_04_27_26_25_24_15_14_13_12:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [3,2,1,0,23,22,21,20,11,10,9,8,31,30,29,28]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [3,2,1,0,23,22,21,20,11,10,9,8,31,30,29,28]
|
||||
; AVX512VL-NEXT: vpermi2w %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 19, i32 18, i32 17, i32 16, i32 7, i32 6, i32 5, i32 4, i32 27, i32 26, i32 25, i32 24, i32 15, i32 14, i32 13, i32 12>
|
||||
ret <16 x i16> %shuffle
|
||||
|
@ -940,9 +940,9 @@ define <16 x i16> @shuffle_v16i16_19_18_17_16_03_02_01_00_27_26_25_24_11_10_09_0
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_19_18_17_16_03_02_01_00_27_26_25_24_11_10_09_08:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [3,2,1,0,19,18,17,16,11,10,9,8,27,26,25,24]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [3,2,1,0,19,18,17,16,11,10,9,8,27,26,25,24]
|
||||
; AVX512VL-NEXT: vpermi2w %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 19, i32 18, i32 17, i32 16, i32 3, i32 2, i32 1, i32 0, i32 27, i32 26, i32 25, i32 24, i32 11, i32 10, i32 9, i32 8>
|
||||
ret <16 x i16> %shuffle
|
||||
|
@ -1129,7 +1129,7 @@ define <16 x i16> @shuffle_v16i16_00_16_01_17_02_18_03_19_12_28_13_29_14_30_15_3
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_16_01_17_02_18_03_19_12_28_13_29_14_30_15_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,16,1,17,2,18,3,19,12,28,13,29,14,30,15,31]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,16,1,17,2,18,3,19,12,28,13,29,14,30,15,31]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31>
|
||||
|
@ -1155,7 +1155,7 @@ define <16 x i16> @shuffle_v16i16_04_20_05_21_06_22_07_23_08_24_09_25_10_26_11_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_04_20_05_21_06_22_07_23_08_24_09_25_10_26_11_27:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [4,20,5,21,6,22,7,23,8,24,9,25,10,26,11,27]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [4,20,5,21,6,22,7,23,8,24,9,25,10,26,11,27]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23, i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27>
|
||||
|
@ -1408,7 +1408,7 @@ define <16 x i16> @shuffle_v16i16_00_00_00_00_04_04_04_04_16_16_16_16_20_20_20_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_00_00_00_04_04_04_04_16_16_16_16_20_20_20_20:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,0,0,0,4,4,4,4,16,16,16,16,20,20,20,20]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,0,0,0,4,4,4,4,16,16,16,16,20,20,20,20]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4, i32 16, i32 16, i32 16, i32 16, i32 20, i32 20, i32 20, i32 20>
|
||||
|
@ -1435,7 +1435,7 @@ define <16 x i16> @shuffle_v16i16_08_08_08_08_12_12_12_12_16_16_16_16_20_20_20_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_08_08_08_08_12_12_12_12_16_16_16_16_20_20_20_20:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [8,8,8,8,12,12,12,12,16,16,16,16,20,20,20,20]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [8,8,8,8,12,12,12,12,16,16,16,16,20,20,20,20]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 8, i32 8, i32 8, i32 8, i32 12, i32 12, i32 12, i32 12, i32 16, i32 16, i32 16, i32 16, i32 20, i32 20, i32 20, i32 20>
|
||||
|
@ -1463,7 +1463,7 @@ define <16 x i16> @shuffle_v16i16_08_08_08_08_12_12_12_12_24_24_24_24_28_28_28_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_08_08_08_08_12_12_12_12_24_24_24_24_28_28_28_28:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [8,8,8,8,12,12,12,12,24,24,24,24,28,28,28,28]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [8,8,8,8,12,12,12,12,24,24,24,24,28,28,28,28]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 8, i32 8, i32 8, i32 8, i32 12, i32 12, i32 12, i32 12, i32 24, i32 24, i32 24, i32 24, i32 28, i32 28, i32 28, i32 28>
|
||||
|
@ -1490,7 +1490,7 @@ define <16 x i16> @shuffle_v16i16_00_00_00_00_04_04_04_04_24_24_24_24_28_28_28_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_00_00_00_04_04_04_04_24_24_24_24_28_28_28_28:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,0,0,0,4,4,4,4,24,24,24,24,28,28,28,28]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,0,0,0,4,4,4,4,24,24,24,24,28,28,28,28]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4, i32 24, i32 24, i32 24, i32 24, i32 28, i32 28, i32 28, i32 28>
|
||||
|
@ -1514,7 +1514,7 @@ define <16 x i16> @shuffle_v16i16_00_16_01_17_02_18_03_19_04_20_05_21_06_22_07_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_16_01_17_02_18_03_19_04_20_05_21_06_22_07_23:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,16,1,17,2,18,3,19,4,20,5,21,6,22,7,23]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,16,1,17,2,18,3,19,4,20,5,21,6,22,7,23]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 19, i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 23>
|
||||
|
@ -1748,7 +1748,7 @@ define <16 x i16> @shuffle_v16i16_01_02_03_04_05_06_07_00_17_18_19_20_21_22_23_1
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_01_02_03_04_05_06_07_00_17_18_19_20_21_22_23_16:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [1,2,3,4,5,6,7,0,17,18,19,20,21,22,23,16]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [1,2,3,4,5,6,7,0,17,18,19,20,21,22,23,16]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 0, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 16>
|
||||
|
@ -1771,7 +1771,7 @@ define <16 x i16> @shuffle_v16i16_07_00_01_02_03_04_05_06_23_16_17_18_19_20_21_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_07_00_01_02_03_04_05_06_23_16_17_18_19_20_21_22:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [7,0,1,2,3,4,5,6,23,16,17,18,19,20,21,22]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [7,0,1,2,3,4,5,6,23,16,17,18,19,20,21,22]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 7, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 23, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22>
|
||||
|
@ -1867,7 +1867,7 @@ define <16 x i16> @shuffle_v16i16_04_05_06_07_16_17_18_27_12_13_14_15_24_25_26_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_04_05_06_07_16_17_18_27_12_13_14_15_24_25_26_27:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [4,5,6,7,16,17,18,27,12,13,14,15,24,25,26,27]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [4,5,6,7,16,17,18,27,12,13,14,15,24,25,26,27]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 27, i32 12, i32 13, i32 14, i32 15, i32 24, i32 25, i32 26, i32 27>
|
||||
|
@ -2211,7 +2211,7 @@ define <16 x i16> @shuffle_v16i16_07_05_06_04_03_01_02_08_15_13_14_12_11_09_10_0
|
|||
; AVX512VL-LABEL: shuffle_v16i16_07_05_06_04_03_01_02_08_15_13_14_12_11_09_10_08:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vextracti32x4 $1, %ymm0, %xmm1
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} xmm2 = [14,15,10,11,12,13,8,9,6,7,2,3,4,5,0,1]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} xmm2 = [14,15,10,11,12,13,8,9,6,7,2,3,4,5,0,1]
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm1, %xmm3
|
||||
; AVX512VL-NEXT: vpblendw {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3,4,5,6,7]
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm0, %xmm0
|
||||
|
@ -2415,7 +2415,7 @@ define <16 x i16> @shuffle_v16i16_02_06_04_00_05_01_07_11_10_14_12_08_13_09_15_1
|
|||
; AVX512VL-LABEL: shuffle_v16i16_02_06_04_00_05_01_07_11_10_14_12_08_13_09_15_11:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vextracti32x4 $1, %ymm0, %xmm1
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} xmm2 = [4,5,12,13,8,9,0,1,10,11,2,3,14,15,6,7]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} xmm2 = [4,5,12,13,8,9,0,1,10,11,2,3,14,15,6,7]
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm1, %xmm3
|
||||
; AVX512VL-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3],xmm0[4,5,6,7]
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm0, %xmm0
|
||||
|
@ -2449,7 +2449,7 @@ define <16 x i16> @shuffle_v16i16_02_00_06_04_05_01_07_11_10_08_14_12_13_09_15_1
|
|||
; AVX512VL-LABEL: shuffle_v16i16_02_00_06_04_05_01_07_11_10_08_14_12_13_09_15_11:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vextracti32x4 $1, %ymm0, %xmm1
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} xmm2 = [4,5,0,1,12,13,8,9,10,11,2,3,14,15,6,7]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} xmm2 = [4,5,0,1,12,13,8,9,10,11,2,3,14,15,6,7]
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm1, %xmm3
|
||||
; AVX512VL-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2],xmm1[3],xmm0[4,5,6,7]
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm0, %xmm0
|
||||
|
@ -2483,7 +2483,7 @@ define <16 x i16> @shuffle_v16i16_02_06_04_00_01_03_07_13_10_14_12_08_09_11_15_1
|
|||
; AVX512VL-LABEL: shuffle_v16i16_02_06_04_00_01_03_07_13_10_14_12_08_09_11_15_13:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vextracti32x4 $1, %ymm0, %xmm1
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} xmm2 = [4,5,12,13,8,9,0,1,2,3,6,7,14,15,10,11]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} xmm2 = [4,5,12,13,8,9,0,1,2,3,6,7,14,15,10,11]
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm1, %xmm3
|
||||
; AVX512VL-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm1[5],xmm0[6,7]
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm0, %xmm0
|
||||
|
@ -2517,7 +2517,7 @@ define <16 x i16> @shuffle_v16i16_06_06_07_05_01_06_04_11_14_14_15_13_09_14_12_1
|
|||
; AVX512VL-LABEL: shuffle_v16i16_06_06_07_05_01_06_04_11_14_14_15_13_09_14_12_11:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vextracti32x4 $1, %ymm0, %xmm1
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} xmm2 = [12,13,12,13,14,15,10,11,2,3,12,13,8,9,6,7]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} xmm2 = [12,13,12,13,14,15,10,11,2,3,12,13,8,9,6,7]
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm1, %xmm3
|
||||
; AVX512VL-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm0, %xmm0
|
||||
|
@ -2997,7 +2997,7 @@ define <16 x i16> @shuffle_v16i16_03_07_01_00_02_07_03_13_11_15_09_08_10_15_11_1
|
|||
; AVX512VL-LABEL: shuffle_v16i16_03_07_01_00_02_07_03_13_11_15_09_08_10_15_11_13:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vextracti32x4 $1, %ymm0, %xmm1
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} xmm2 = [6,7,14,15,2,3,0,1,4,5,14,15,6,7,10,11]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} xmm2 = [6,7,14,15,2,3,0,1,4,5,14,15,6,7,10,11]
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm1, %xmm3
|
||||
; AVX512VL-NEXT: vpblendd {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm0, %xmm0
|
||||
|
@ -3033,7 +3033,7 @@ define <16 x i16> @shuffle_v16i16_00_16_01_17_02_18_03_27_08_24_09_25_10_26_11_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_16_01_17_02_18_03_27_08_24_09_25_10_26_11_27:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,16,1,17,2,18,3,27,8,24,9,25,10,26,11,27]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,16,1,17,2,18,3,27,8,24,9,25,10,26,11,27]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 2, i32 18, i32 3, i32 27, i32 8, i32 24, i32 9, i32 25, i32 10, i32 26, i32 11, i32 27>
|
||||
|
@ -3066,7 +3066,7 @@ define <16 x i16> @shuffle_v16i16_00_20_01_21_02_22_03_31_08_28_09_29_10_30_11_3
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_20_01_21_02_22_03_31_08_28_09_29_10_30_11_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,20,1,21,2,22,3,31,8,28,9,29,10,30,11,31]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,20,1,21,2,22,3,31,8,28,9,29,10,30,11,31]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 20, i32 1, i32 21, i32 2, i32 22, i32 3, i32 31, i32 8, i32 28, i32 9, i32 29, i32 10, i32 30, i32 11, i32 31>
|
||||
|
@ -3099,7 +3099,7 @@ define <16 x i16> @shuffle_v16i16_04_20_05_21_06_22_07_31_12_28_13_29_14_30_15_3
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_04_20_05_21_06_22_07_31_12_28_13_29_14_30_15_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [4,20,5,21,6,22,7,31,12,28,13,29,14,30,15,31]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [4,20,5,21,6,22,7,31,12,28,13,29,14,30,15,31]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 4, i32 20, i32 5, i32 21, i32 6, i32 22, i32 7, i32 31, i32 12, i32 28, i32 13, i32 29, i32 14, i32 30, i32 15, i32 31>
|
||||
|
@ -3132,7 +3132,7 @@ define <16 x i16> @shuffle_v16i16_04_16_05_17_06_18_07_27_12_24_13_25_14_26_15_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_04_16_05_17_06_18_07_27_12_24_13_25_14_26_15_27:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [4,16,5,17,6,18,7,27,12,24,13,25,14,26,15,27]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [4,16,5,17,6,18,7,27,12,24,13,25,14,26,15,27]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 4, i32 16, i32 5, i32 17, i32 6, i32 18, i32 7, i32 27, i32 12, i32 24, i32 13, i32 25, i32 14, i32 26, i32 15, i32 27>
|
||||
|
@ -3172,7 +3172,7 @@ define <16 x i16> @shuffle_v16i16_00_16_01_17_06_22_07_31_08_24_09_25_14_30_15_3
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_16_01_17_06_22_07_31_08_24_09_25_14_30_15_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,16,1,17,6,22,7,31,8,24,9,25,14,30,15,31]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,16,1,17,6,22,7,31,8,24,9,25,14,30,15,31]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 16, i32 1, i32 17, i32 6, i32 22, i32 7, i32 31, i32 8, i32 24, i32 9, i32 25, i32 14, i32 30, i32 15, i32 31>
|
||||
|
@ -3209,7 +3209,7 @@ define <16 x i16> @shuffle_v16i16_00_20_01_21_06_16_07_25_08_28_09_29_14_24_15_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_20_01_21_06_16_07_25_08_28_09_29_14_24_15_25:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,20,1,21,6,16,7,25,8,28,9,29,14,24,15,25]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,20,1,21,6,16,7,25,8,28,9,29,14,24,15,25]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 20, i32 1, i32 21, i32 6, i32 16, i32 7, i32 25, i32 8, i32 28, i32 9, i32 29, i32 14, i32 24, i32 15, i32 25>
|
||||
|
@ -3245,7 +3245,7 @@ define <16 x i16> @shuffle_v16i16_01_00_17_16_03_02_19_26_09_08_25_24_11_10_27_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_01_00_17_16_03_02_19_26_09_08_25_24_11_10_27_26:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [1,0,17,16,3,2,19,26,9,8,25,24,11,10,27,26]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [1,0,17,16,3,2,19,26,9,8,25,24,11,10,27,26]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 1, i32 0, i32 17, i32 16, i32 3, i32 2, i32 19, i32 26, i32 9, i32 8, i32 25, i32 24, i32 11, i32 10, i32 27, i32 26>
|
||||
|
@ -3278,9 +3278,9 @@ define <16 x i16> @shuffle_v16i16_16_00_17_01_18_02_19_11_24_08_25_09_26_10_27_1
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_16_00_17_01_18_02_19_11_24_08_25_09_26_10_27_11:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,16,1,17,2,18,3,27,8,24,9,25,10,26,11,27]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,16,1,17,2,18,3,27,8,24,9,25,10,26,11,27]
|
||||
; AVX512VL-NEXT: vpermi2w %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 16, i32 0, i32 17, i32 1, i32 18, i32 2, i32 19, i32 11, i32 24, i32 8, i32 25, i32 9, i32 26, i32 10, i32 27, i32 11>
|
||||
ret <16 x i16> %shuffle
|
||||
|
@ -3312,9 +3312,9 @@ define <16 x i16> @shuffle_v16i16_20_04_21_05_22_06_23_15_28_12_29_13_30_14_31_1
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_20_04_21_05_22_06_23_15_28_12_29_13_30_14_31_15:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [4,20,5,21,6,22,7,31,12,28,13,29,14,30,15,31]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [4,20,5,21,6,22,7,31,12,28,13,29,14,30,15,31]
|
||||
; AVX512VL-NEXT: vpermi2w %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 20, i32 4, i32 21, i32 5, i32 22, i32 6, i32 23, i32 15, i32 28, i32 12, i32 29, i32 13, i32 30, i32 14, i32 31, i32 15>
|
||||
ret <16 x i16> %shuffle
|
||||
|
@ -3350,7 +3350,7 @@ define <16 x i16> @shuffle_v16i16_00_02_01_03_20_22_21_31_08_10_09_11_28_30_29_3
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_02_01_03_20_22_21_31_08_10_09_11_28_30_29_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,2,1,3,20,22,21,31,8,10,9,11,28,30,29,31]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,2,1,3,20,22,21,31,8,10,9,11,28,30,29,31]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 2, i32 1, i32 3, i32 20, i32 22, i32 21, i32 31, i32 8, i32 10, i32 9, i32 11, i32 28, i32 30, i32 29, i32 31>
|
||||
|
@ -3380,7 +3380,7 @@ define <16 x i16> @shuffle_v16i16_04_04_03_18_uu_uu_uu_uu_12_12_11_26_uu_uu_uu_u
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_04_04_03_18_uu_uu_uu_uu_12_12_11_26_uu_uu_uu_uu:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = <4,4,3,18,u,u,u,u,12,12,11,26,u,u,u,u>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = <4,4,3,18,u,u,u,u,12,12,11,26,u,u,u,u>
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 4, i32 4, i32 3, i32 18, i32 undef, i32 undef, i32 undef, i32 undef, i32 12, i32 12, i32 11, i32 26, i32 undef, i32 undef, i32 undef, i32 undef>
|
||||
|
@ -3408,7 +3408,7 @@ define <16 x i16> @shuffle_v16i16_00_03_02_21_uu_uu_uu_uu_08_11_10_29_uu_uu_uu_u
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_03_02_21_uu_uu_uu_uu_08_11_10_29_uu_uu_uu_uu:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = <0,3,2,21,u,u,u,u,8,11,10,29,u,u,u,u>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = <0,3,2,21,u,u,u,u,8,11,10,29,u,u,u,u>
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 3, i32 2, i32 21, i32 undef, i32 undef, i32 undef, i32 undef, i32 8, i32 11, i32 10, i32 29, i32 undef, i32 undef, i32 undef, i32 undef>
|
||||
|
@ -3449,7 +3449,7 @@ define <16 x i16> @shuffle_v16i16_00_01_02_21_uu_uu_uu_uu_08_09_10_29_uu_uu_uu_u
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_01_02_21_uu_uu_uu_uu_08_09_10_29_uu_uu_uu_uu:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = <0,1,2,21,u,u,u,u,8,9,10,29,u,u,u,u>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = <0,1,2,21,u,u,u,u,8,9,10,29,u,u,u,u>
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 1, i32 2, i32 21, i32 undef, i32 undef, i32 undef, i32 undef, i32 8, i32 9, i32 10, i32 29, i32 undef, i32 undef, i32 undef, i32 undef>
|
||||
|
@ -3475,9 +3475,9 @@ define <16 x i16> @shuffle_v16i16_uu_uu_uu_uu_20_21_22_11_uu_uu_uu_uu_28_29_30_1
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_uu_uu_uu_uu_20_21_22_11_uu_uu_uu_uu_28_29_30_11:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = <u,u,u,u,4,5,6,27,u,u,u,u,12,13,14,27>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = <u,u,u,u,4,5,6,27,u,u,u,u,12,13,14,27>
|
||||
; AVX512VL-NEXT: vpermi2w %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 20, i32 21, i32 22, i32 11, i32 undef, i32 undef, i32 undef, i32 undef, i32 28, i32 29, i32 30, i32 11>
|
||||
ret <16 x i16> %shuffle
|
||||
|
@ -3503,9 +3503,9 @@ define <16 x i16> @shuffle_v16i16_20_21_22_03_uu_uu_uu_uu_28_29_30_11_uu_uu_uu_u
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_20_21_22_03_uu_uu_uu_uu_28_29_30_11_uu_uu_uu_uu:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = <4,5,6,19,u,u,u,u,12,13,14,27,u,u,u,u>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = <4,5,6,19,u,u,u,u,12,13,14,27,u,u,u,u>
|
||||
; AVX512VL-NEXT: vpermi2w %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 20, i32 21, i32 22, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 28, i32 29, i32 30, i32 11, i32 undef, i32 undef, i32 undef, i32 undef>
|
||||
ret <16 x i16> %shuffle
|
||||
|
@ -3537,7 +3537,7 @@ define <16 x i16> @shuffle_v16i16_00_01_02_21_20_21_22_11_08_09_10_29_28_29_30_1
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_01_02_21_20_21_22_11_08_09_10_29_28_29_30_11:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,1,2,21,20,21,22,11,8,9,10,29,28,29,30,11]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,1,2,21,20,21,22,11,8,9,10,29,28,29,30,11]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 1, i32 2, i32 21, i32 20, i32 21, i32 22, i32 11, i32 8, i32 9, i32 10, i32 29, i32 28, i32 29, i32 30, i32 11>
|
||||
|
@ -3563,7 +3563,7 @@ define <16 x i16> @shuffle_v16i16_00_17_02_03_20_21_22_15_08_25_10_11_28_29_30_1
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_00_17_02_03_20_21_22_15_08_25_10_11_28_29_30_15:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,17,2,3,20,21,22,15,8,25,10,11,28,29,30,15]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,17,2,3,20,21,22,15,8,25,10,11,28,29,30,15]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 0, i32 17, i32 2, i32 3, i32 20, i32 21, i32 22, i32 15, i32 8, i32 25, i32 10, i32 11, i32 28, i32 29, i32 30, i32 15>
|
||||
|
@ -3596,7 +3596,7 @@ define <16 x i16> @shuffle_v16i16_uu_uu_uu_01_uu_05_07_25_uu_uu_uu_09_uu_13_15_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_uu_uu_uu_01_uu_05_07_25_uu_uu_uu_09_uu_13_15_25:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = <u,u,u,1,u,5,7,25,u,u,u,9,u,13,15,25>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = <u,u,u,1,u,5,7,25,u,u,u,9,u,13,15,25>
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 undef, i32 undef, i32 undef, i32 1, i32 undef, i32 5, i32 7, i32 25, i32 undef, i32 undef, i32 undef, i32 9, i32 undef, i32 13, i32 15, i32 25>
|
||||
|
@ -3627,9 +3627,9 @@ define <16 x i16> @shuffle_v16i16_uu_uu_04_uu_16_18_20_uu_uu_uu_12_uu_24_26_28_u
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_uu_uu_04_uu_16_18_20_uu_uu_uu_12_uu_24_26_28_uu:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = <u,u,20,u,0,2,4,u,u,u,28,u,8,10,12,u>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = <u,u,20,u,0,2,4,u,u,u,28,u,8,10,12,u>
|
||||
; AVX512VL-NEXT: vpermi2w %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 undef, i32 undef, i32 4, i32 undef, i32 16, i32 18, i32 20, i32 undef, i32 undef, i32 undef, i32 12, i32 undef, i32 24, i32 26, i32 28, i32 undef>
|
||||
ret <16 x i16> %shuffle
|
||||
|
@ -3658,7 +3658,7 @@ define <16 x i16> @shuffle_v16i16_21_22_23_00_01_02_03_12_29_30_31_08_09_10_11_1
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_21_22_23_00_01_02_03_12_29_30_31_08_09_10_11_12:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [21,22,23,0,1,2,3,12,29,30,31,8,9,10,11,12]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [21,22,23,0,1,2,3,12,29,30,31,8,9,10,11,12]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 21, i32 22, i32 23, i32 0, i32 1, i32 2, i32 3, i32 12, i32 29, i32 30, i32 31, i32 8, i32 9, i32 10, i32 11, i32 12>
|
||||
|
@ -3773,9 +3773,9 @@ define <16 x i16> @shuffle_v16i16_19_20_21_22_23_00_01_10_27_28_29_30_31_08_09_1
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_19_20_21_22_23_00_01_10_27_28_29_30_31_08_09_10:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [3,4,5,6,7,16,17,26,11,12,13,14,15,24,25,26]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [3,4,5,6,7,16,17,26,11,12,13,14,15,24,25,26]
|
||||
; AVX512VL-NEXT: vpermi2w %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 19, i32 20, i32 21, i32 22, i32 23, i32 0, i32 1, i32 10, i32 27, i32 28, i32 29, i32 30, i32 31, i32 8, i32 9, i32 10>
|
||||
ret <16 x i16> %shuffle
|
||||
|
@ -3889,7 +3889,7 @@ define <16 x i16> @shuffle_v16i16_03_04_05_06_07_16_17_26_11_12_13_14_15_24_25_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_03_04_05_06_07_16_17_26_11_12_13_14_15_24_25_26:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [3,4,5,6,7,16,17,26,11,12,13,14,15,24,25,26]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [3,4,5,6,7,16,17,26,11,12,13,14,15,24,25,26]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 26, i32 11, i32 12, i32 13, i32 14, i32 15, i32 24, i32 25, i32 26>
|
||||
|
@ -3937,9 +3937,9 @@ define <16 x i16> @shuffle_v16i16_05_06_07_16_17_18_19_28_13_14_15_24_25_26_27_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_05_06_07_16_17_18_19_28_13_14_15_24_25_26_27_28:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [21,22,23,0,1,2,3,12,29,30,31,8,9,10,11,12]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [21,22,23,0,1,2,3,12,29,30,31,8,9,10,11,12]
|
||||
; AVX512VL-NEXT: vpermi2w %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 28, i32 13, i32 14, i32 15, i32 24, i32 25, i32 26, i32 27, i32 28>
|
||||
ret <16 x i16> %shuffle
|
||||
|
@ -3985,9 +3985,9 @@ define <16 x i16> @shuffle_v16i16_23_uu_03_uu_20_20_05_uu_31_uu_11_uu_28_28_13_u
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_23_uu_03_uu_20_20_05_uu_31_uu_11_uu_28_28_13_uu:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = <7,u,19,u,4,4,21,u,15,u,27,u,12,12,29,u>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = <7,u,19,u,4,4,21,u,15,u,27,u,12,12,29,u>
|
||||
; AVX512VL-NEXT: vpermi2w %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 23, i32 undef, i32 3, i32 undef, i32 20, i32 20, i32 5, i32 undef, i32 31, i32 undef, i32 11, i32 undef, i32 28, i32 28, i32 13, i32 undef>
|
||||
ret <16 x i16> %shuffle
|
||||
|
@ -4129,7 +4129,7 @@ define <16 x i16> @shuffle_v16i16_02_18_03_19_00_16_01_17_10_26_11_27_08_24_09_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_02_18_03_19_00_16_01_17_10_26_11_27_08_24_09_25:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [2,18,3,19,0,16,1,17,10,26,11,27,8,24,9,25]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [2,18,3,19,0,16,1,17,10,26,11,27,8,24,9,25]
|
||||
; AVX512VL-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%1 = shufflevector <16 x i16> %a0, <16 x i16> %a1, <16 x i32> <i32 2, i32 18, i32 3, i32 19, i32 0, i32 16, i32 1, i32 17, i32 10, i32 26, i32 11, i32 27, i32 8, i32 24, i32 9, i32 25>
|
||||
|
@ -4166,7 +4166,7 @@ define <16 x i16> @shuffle_v16i16_02_18_03_19_10_26_11_27_00_16_01_17_08_24_09_2
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v16i16_02_18_03_19_10_26_11_27_00_16_01_17_08_24_09_25:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [2,18,3,19,0,16,1,17,10,26,11,27,8,24,9,25]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [2,18,3,19,0,16,1,17,10,26,11,27,8,24,9,25]
|
||||
; AVX512VL-NEXT: vpermi2w %ymm1, %ymm0, %ymm2
|
||||
; AVX512VL-NEXT: vpermq {{.*#+}} ymm0 = ymm2[0,2,1,3]
|
||||
; AVX512VL-NEXT: retq
|
||||
|
@ -4256,9 +4256,9 @@ define <16 x i16> @PR24935(<16 x i16> %a, <16 x i16> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: PR24935:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu16 {{.*#+}} ymm2 = [11,10,17,13,10,7,27,0,17,25,0,12,29,20,16,8]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [11,10,17,13,10,7,27,0,17,25,0,12,29,20,16,8]
|
||||
; AVX512VL-NEXT: vpermi2w %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <16 x i16> %a, <16 x i16> %b, <16 x i32> <i32 27, i32 26, i32 1, i32 29, i32 26, i32 23, i32 11, i32 16, i32 1, i32 9, i32 16, i32 28, i32 13, i32 4, i32 0, i32 24>
|
||||
ret <16 x i16> %shuffle
|
||||
|
|
|
@ -317,10 +317,10 @@ define <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_
|
|||
; AVX512VL-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
|
||||
; AVX512VL-NEXT: vpxord %ymm2, %ymm2, %ymm2
|
||||
; AVX512VL-NEXT: vpxor %ymm2, %ymm2, %ymm2
|
||||
; AVX512VL-NEXT: vpshufb %ymm2, %ymm1, %ymm1
|
||||
; AVX512VL-NEXT: vpbroadcastb %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -349,7 +349,7 @@ define <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_17_00_
|
|||
; AVX512VL-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_17_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = <0,255,u,u,u,u,u,u,u,u,u,u,u,u,u,u,255,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = <0,255,u,u,u,u,u,u,u,u,u,u,u,u,u,u,255,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u>
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
|
||||
; AVX512VL-NEXT: retq
|
||||
|
@ -379,7 +379,7 @@ define <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_18_00_00_
|
|||
; AVX512VL-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_18_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = <0,0,255,255,u,u,u,u,u,u,u,u,u,u,u,u,255,255,u,u,u,u,u,u,u,u,u,u,u,u,u,u>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = <0,0,255,255,u,u,u,u,u,u,u,u,u,u,u,u,255,255,u,u,u,u,u,u,u,u,u,u,u,u,u,u>
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
|
||||
; AVX512VL-NEXT: retq
|
||||
|
@ -409,7 +409,7 @@ define <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_19_00_00_00_
|
|||
; AVX512VL-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_19_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm0[2,3,0,1]
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = <0,0,255,255,u,u,u,u,u,u,u,u,u,u,u,u,255,255,u,u,u,u,u,u,u,u,u,u,u,u,u,u>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = <0,0,255,255,u,u,u,u,u,u,u,u,u,u,u,u,255,255,u,u,u,u,u,u,u,u,u,u,u,u,u,u>
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
|
||||
; AVX512VL-NEXT: retq
|
||||
|
@ -749,7 +749,7 @@ define <32 x i8> @shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v32i8_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16_16:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; AVX512VL-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; AVX512VL-NEXT: vpshufb %ymm1, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
|
||||
|
@ -1037,7 +1037,7 @@ define <32 x i8> @shuffle_v32i8_00_33_02_35_04_37_06_39_08_41_10_43_12_45_14_47_
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v32i8_00_33_02_35_04_37_06_39_08_41_10_43_12_45_14_47_16_49_18_51_20_53_22_55_24_57_26_59_28_61_30_63:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 33, i32 2, i32 35, i32 4, i32 37, i32 6, i32 39, i32 8, i32 41, i32 10, i32 43, i32 12, i32 45, i32 14, i32 47, i32 16, i32 49, i32 18, i32 51, i32 20, i32 53, i32 22, i32 55, i32 24, i32 57, i32 26, i32 59, i32 28, i32 61, i32 30, i32 63>
|
||||
|
@ -1061,7 +1061,7 @@ define <32 x i8> @shuffle_v32i8_32_01_34_03_36_05_38_07_40_09_42_11_44_13_46_15_
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v32i8_32_01_34_03_36_05_38_07_40_09_42_11_44_13_46_15_48_17_50_19_52_21_54_23_56_25_58_27_60_29_62_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 32, i32 1, i32 34, i32 3, i32 36, i32 5, i32 38, i32 7, i32 40, i32 9, i32 42, i32 11, i32 44, i32 13, i32 46, i32 15, i32 48, i32 17, i32 50, i32 19, i32 52, i32 21, i32 54, i32 23, i32 56, i32 25, i32 58, i32 27, i32 60, i32 29, i32 62, i32 31>
|
||||
|
@ -1076,7 +1076,7 @@ define <32 x i8> @shuffle_v32i8_zz_01_zz_03_zz_05_zz_07_zz_09_zz_11_zz_13_zz_15_
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v32i8_zz_01_zz_03_zz_05_zz_07_zz_09_zz_11_zz_13_zz_15_zz_17_zz_19_zz_21_zz_23_zz_25_zz_27_zz_29_zz_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpandq {{.*}}(%rip), %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: vpand {{.*}}(%rip), %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <32 x i8> %a, <32 x i8> zeroinitializer, <32 x i32> <i32 32, i32 1, i32 34, i32 3, i32 36, i32 5, i32 38, i32 7, i32 40, i32 9, i32 42, i32 11, i32 44, i32 13, i32 46, i32 15, i32 48, i32 17, i32 50, i32 19, i32 52, i32 21, i32 54, i32 23, i32 56, i32 25, i32 58, i32 27, i32 60, i32 29, i32 62, i32 31>
|
||||
ret <32 x i8> %shuffle
|
||||
|
@ -1142,11 +1142,11 @@ define <32 x i8> @shuffle_v32i8_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v32i8_00_32_00_32_00_32_00_32_00_32_00_32_00_32_00_32_16_48_16_48_16_48_16_48_16_48_16_48_16_48_16_48:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %ymm2, %ymm2, %ymm2
|
||||
; AVX512VL-NEXT: vpxor %ymm2, %ymm2, %ymm2
|
||||
; AVX512VL-NEXT: vpshufb %ymm2, %ymm1, %ymm1
|
||||
; AVX512VL-NEXT: vpshuflw {{.*#+}} ymm0 = ymm0[0,0,0,0,4,5,6,7,8,8,8,8,12,13,14,15]
|
||||
; AVX512VL-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[0,0,1,1,4,4,5,5]
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 0, i32 32, i32 16, i32 48, i32 16, i32 48, i32 16, i32 48, i32 16, i32 48, i32 16, i32 48, i32 16, i32 48, i32 16, i32 48, i32 16, i32 48>
|
||||
|
@ -1176,7 +1176,7 @@ define <32 x i8> @shuffle_v32i8_32_32_32_32_32_32_32_32_08_09_10_11_12_13_14_15_
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v32i8_32_32_32_32_32_32_32_32_08_09_10_11_12_13_14_15_48_48_48_48_48_48_48_48_24_25_26_27_28_29_30_31:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpxord %ymm2, %ymm2, %ymm2
|
||||
; AVX512VL-NEXT: vpxor %ymm2, %ymm2, %ymm2
|
||||
; AVX512VL-NEXT: vpshufb %ymm2, %ymm1, %ymm1
|
||||
; AVX512VL-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]
|
||||
; AVX512VL-NEXT: retq
|
||||
|
@ -1399,7 +1399,7 @@ define <32 x i8> @shuffle_v32i8_00_32_01_33_02_34_03_35_04_36_05_37_06_38_07_39_
|
|||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[0,u,1,u,2,u,3,u,4,u,5,u,6,u,7,u,24,u,25,u,26,u,27,u,28,u,29,u,30,u,31,u]
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,0,u,1,u,2,u,3,u,4,u,5,u,6,u,7,u,24,u,25,u,26,u,27,u,28,u,29,u,30,u,31]
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 24, i32 56, i32 25, i32 57, i32 26, i32 58, i32 27, i32 59, i32 28, i32 60, i32 29, i32 61, i32 30, i32 62, i32 31, i32 63>
|
||||
|
@ -1428,7 +1428,7 @@ define <32 x i8> @shuffle_v32i8_08_40_09_41_10_42_11_43_12_44_13_45_14_46_15_47_
|
|||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[8,u,9,u,10,u,11,u,12,u,13,u,14,u,15,u,16,u,17,u,18,u,19,u,20,u,21,u,22,u,23,u]
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,8,u,9,u,10,u,11,u,12,u,13,u,14,u,15,u,16,u,17,u,18,u,19,u,20,u,21,u,22,u,23]
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0]
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 8, i32 40, i32 9, i32 41, i32 10, i32 42, i32 11, i32 43, i32 12, i32 44, i32 13, i32 45, i32 14, i32 46, i32 15, i32 47, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55>
|
||||
|
@ -1684,13 +1684,13 @@ define <32 x i8> @shuffle_v32i8_42_45_12_13_35_35_60_40_17_22_29_44_33_12_48_51_
|
|||
; AVX512VL-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm1[2,3,0,1]
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,12,u,u,u,u,u,u,u,0,3,u,u,u,u,u,u,21,16,u,26,u,u,20,18,20,23]
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[10,13,u,u,3,3,u,8,u,u,u,12,1,u,u,u,u,u,20,u,17,22,u,u,16,u,27,u,u,u,u,u]
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm3 = <255,255,u,u,255,255,0,255,u,u,u,255,255,u,0,0,u,u,255,u,255,255,0,0,255,0,255,u,0,0,0,0>
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm3 = <255,255,u,u,255,255,0,255,u,u,u,255,255,u,0,0,u,u,255,u,255,255,0,0,255,0,255,u,0,0,0,0>
|
||||
; AVX512VL-NEXT: vpblendvb %ymm3, %ymm1, %ymm2, %ymm1
|
||||
; AVX512VL-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm0[2,3,0,1]
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,1,6,13,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,u,23,u,u,u,u]
|
||||
; AVX512VL-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[u,u,12,13,u,u,u,u,u,u,u,u,u,12,u,u,20,19,u,19,u,u,u,u,u,u,u,u,u,u,u,u]
|
||||
; AVX512VL-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2],ymm0[3,4,5],ymm2[6],ymm0[7]
|
||||
; AVX512VL-NEXT: vmovdqu8 {{.*#+}} ymm2 = [255,255,0,0,255,255,255,255,0,0,0,255,255,0,255,255,0,0,255,0,255,255,255,255,255,255,255,0,255,255,255,255]
|
||||
; AVX512VL-NEXT: vmovdqu {{.*#+}} ymm2 = [255,255,0,0,255,255,255,255,0,0,0,255,255,0,255,255,0,0,255,0,255,255,255,255,255,255,255,0,255,255,255,255]
|
||||
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <32 x i8> %a, <32 x i8> %b, <32 x i32> <i32 42, i32 45, i32 12, i32 13, i32 35, i32 35, i32 60, i32 40, i32 17, i32 22, i32 29, i32 44, i32 33, i32 12, i32 48, i32 51, i32 20, i32 19, i32 52, i32 19, i32 49, i32 54, i32 37, i32 32, i32 48, i32 42, i32 59, i32 7, i32 36, i32 34, i32 36, i32 39>
|
||||
|
|
|
@ -1049,7 +1049,7 @@ define <8 x i32> @shuffle_v8i32_00040000(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_00040000:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [0,0,0,4,0,0,0,0]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [0,0,0,4,0,0,0,0]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 0, i32 4, i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -1072,7 +1072,7 @@ define <8 x i32> @shuffle_v8i32_00500000(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_00500000:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [0,0,5,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [0,0,5,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -1095,7 +1095,7 @@ define <8 x i32> @shuffle_v8i32_06000000(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_06000000:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [0,6,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [0,6,0,0,0,0,0,0]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 6, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -1150,7 +1150,7 @@ define <8 x i32> @shuffle_v8i32_00112233(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_00112233:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [0,0,1,1,2,2,3,3]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [0,0,1,1,2,2,3,3]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 1, i32 1, i32 2, i32 2, i32 3, i32 3>
|
||||
|
@ -1296,7 +1296,7 @@ define <8 x i32> @shuffle_v8i32_08192a3b(<8 x i32> %a, <8 x i32> %b) {
|
|||
; AVX512VL-LABEL: shuffle_v8i32_08192a3b:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpmovzxdq {{.*#+}} ymm2 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm0 = [0,8,2,9,4,10,6,11]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm0 = [0,8,2,9,4,10,6,11]
|
||||
; AVX512VL-NEXT: vpermi2d %ymm1, %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11>
|
||||
|
@ -1325,7 +1325,7 @@ define <8 x i32> @shuffle_v8i32_08991abb(<8 x i32> %a, <8 x i32> %b) {
|
|||
; AVX512VL-LABEL: shuffle_v8i32_08991abb:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vpmovzxdq {{.*#+}} xmm2 = xmm0[0],zero,xmm0[1],zero
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm0 = [8,0,1,1,10,2,3,3]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm0 = [8,0,1,1,10,2,3,3]
|
||||
; AVX512VL-NEXT: vpermi2d %ymm2, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 8, i32 9, i32 9, i32 1, i32 10, i32 11, i32 11>
|
||||
|
@ -1564,7 +1564,7 @@ define <8 x i32> @shuffle_v8i32_00015444(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_00015444:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [0,0,0,1,5,4,4,4]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [0,0,0,1,5,4,4,4]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 0, i32 1, i32 5, i32 4, i32 4, i32 4>
|
||||
|
@ -1585,7 +1585,7 @@ define <8 x i32> @shuffle_v8i32_00204644(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_00204644:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [0,0,2,0,4,6,4,4]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [0,0,2,0,4,6,4,4]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 2, i32 0, i32 4, i32 6, i32 4, i32 4>
|
||||
|
@ -1606,7 +1606,7 @@ define <8 x i32> @shuffle_v8i32_03004474(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_03004474:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [0,3,0,0,4,4,7,4]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [0,3,0,0,4,4,7,4]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 3, i32 0, i32 0, i32 4, i32 4, i32 7, i32 4>
|
||||
|
@ -1627,7 +1627,7 @@ define <8 x i32> @shuffle_v8i32_10004444(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_10004444:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [1,0,0,0,4,4,4,4]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [1,0,0,0,4,4,4,4]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 1, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
|
||||
|
@ -1648,7 +1648,7 @@ define <8 x i32> @shuffle_v8i32_22006446(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_22006446:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [2,2,0,0,6,4,4,6]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [2,2,0,0,6,4,4,6]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 2, i32 2, i32 0, i32 0, i32 6, i32 4, i32 4, i32 6>
|
||||
|
@ -1669,7 +1669,7 @@ define <8 x i32> @shuffle_v8i32_33307474(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_33307474:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [3,3,3,0,7,4,7,4]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [3,3,3,0,7,4,7,4]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 3, i32 3, i32 3, i32 0, i32 7, i32 4, i32 7, i32 4>
|
||||
|
@ -1690,7 +1690,7 @@ define <8 x i32> @shuffle_v8i32_32104567(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_32104567:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [3,2,1,0,4,5,6,7]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [3,2,1,0,4,5,6,7]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 4, i32 5, i32 6, i32 7>
|
||||
|
@ -1711,7 +1711,7 @@ define <8 x i32> @shuffle_v8i32_00236744(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_00236744:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [0,0,2,3,6,7,4,4]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [0,0,2,3,6,7,4,4]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 2, i32 3, i32 6, i32 7, i32 4, i32 4>
|
||||
|
@ -1732,7 +1732,7 @@ define <8 x i32> @shuffle_v8i32_00226644(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_00226644:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [0,0,2,2,6,6,4,4]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [0,0,2,2,6,6,4,4]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 6, i32 6, i32 4, i32 4>
|
||||
|
@ -1753,7 +1753,7 @@ define <8 x i32> @shuffle_v8i32_10324567(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_10324567:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [1,0,3,2,4,5,6,7]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [1,0,3,2,4,5,6,7]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 1, i32 0, i32 3, i32 2, i32 4, i32 5, i32 6, i32 7>
|
||||
|
@ -1774,7 +1774,7 @@ define <8 x i32> @shuffle_v8i32_11334567(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_11334567:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [1,1,3,3,4,5,6,7]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [1,1,3,3,4,5,6,7]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 4, i32 5, i32 6, i32 7>
|
||||
|
@ -1795,7 +1795,7 @@ define <8 x i32> @shuffle_v8i32_01235467(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_01235467:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [0,1,2,3,5,4,6,7]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [0,1,2,3,5,4,6,7]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 4, i32 6, i32 7>
|
||||
|
@ -1816,7 +1816,7 @@ define <8 x i32> @shuffle_v8i32_01235466(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_01235466:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = [0,1,2,3,5,4,6,6]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = [0,1,2,3,5,4,6,6]
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 4, i32 6, i32 6>
|
||||
|
@ -1837,7 +1837,7 @@ define <8 x i32> @shuffle_v8i32_002u6u44(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_002u6u44:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = <0,0,2,u,6,u,4,4>
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = <0,0,2,u,6,u,4,4>
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 2, i32 undef, i32 6, i32 undef, i32 4, i32 4>
|
||||
|
@ -1858,7 +1858,7 @@ define <8 x i32> @shuffle_v8i32_00uu66uu(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_00uu66uu:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = <0,0,u,u,6,6,u,u>
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = <0,0,u,u,6,6,u,u>
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 0, i32 undef, i32 undef, i32 6, i32 6, i32 undef, i32 undef>
|
||||
|
@ -1879,7 +1879,7 @@ define <8 x i32> @shuffle_v8i32_103245uu(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_103245uu:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = <1,0,3,2,4,5,u,u>
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = <1,0,3,2,4,5,u,u>
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 1, i32 0, i32 3, i32 2, i32 4, i32 5, i32 undef, i32 undef>
|
||||
|
@ -1900,7 +1900,7 @@ define <8 x i32> @shuffle_v8i32_1133uu67(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_1133uu67:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = <1,1,3,3,u,u,6,7>
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = <1,1,3,3,u,u,6,7>
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 undef, i32 undef, i32 6, i32 7>
|
||||
|
@ -1921,7 +1921,7 @@ define <8 x i32> @shuffle_v8i32_0uu354uu(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_0uu354uu:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = <0,u,u,3,5,4,u,u>
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = <0,u,u,3,5,4,u,u>
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 0, i32 undef, i32 undef, i32 3, i32 5, i32 4, i32 undef, i32 undef>
|
||||
|
@ -1942,7 +1942,7 @@ define <8 x i32> @shuffle_v8i32_uuu3uu66(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_uuu3uu66:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm1 = <u,u,u,3,u,u,6,6>
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm1 = <u,u,u,3,u,u,6,6>
|
||||
; AVX512VL-NEXT: vpermd %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 undef, i32 undef, i32 undef, i32 3, i32 undef, i32 undef, i32 6, i32 6>
|
||||
|
@ -1969,9 +1969,9 @@ define <8 x i32> @shuffle_v8i32_6caa87e5(<8 x i32> %a, <8 x i32> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: shuffle_v8i32_6caa87e5:
|
||||
; AVX512VL: # BB#0:
|
||||
; AVX512VL-NEXT: vmovdqa32 {{.*#+}} ymm2 = [14,4,2,2,0,15,6,13]
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm2 = [14,4,2,2,0,15,6,13]
|
||||
; AVX512VL-NEXT: vpermi2d %ymm0, %ymm1, %ymm2
|
||||
; AVX512VL-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 6, i32 12, i32 10, i32 10, i32 8, i32 7, i32 14, i32 5>
|
||||
ret <8 x i32> %shuffle
|
||||
|
|
|
@ -22,18 +22,18 @@ define <16 x i16> @combine_vpermt2var_16i16_identity_mask(<16 x i16> %x0, <16 x
|
|||
; X32-LABEL: combine_vpermt2var_16i16_identity_mask:
|
||||
; X32: # BB#0:
|
||||
; X32-NEXT: kmovw {{[0-9]+}}(%esp), %k1
|
||||
; X32-NEXT: vmovdqu16 {{.*#+}} ymm2 = [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]
|
||||
; X32-NEXT: vmovdqu {{.*#+}} ymm2 = [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]
|
||||
; X32-NEXT: vpermi2w %ymm1, %ymm0, %ymm2 {%k1} {z}
|
||||
; X32-NEXT: vmovdqu16 {{.*#+}} ymm0 = [15,30,13,28,11,26,9,24,7,22,5,20,3,18,1,16]
|
||||
; X32-NEXT: vmovdqu {{.*#+}} ymm0 = [15,30,13,28,11,26,9,24,7,22,5,20,3,18,1,16]
|
||||
; X32-NEXT: vpermi2w %ymm2, %ymm2, %ymm0 {%k1} {z}
|
||||
; X32-NEXT: retl
|
||||
;
|
||||
; X64-LABEL: combine_vpermt2var_16i16_identity_mask:
|
||||
; X64: # BB#0:
|
||||
; X64-NEXT: kmovw %edi, %k1
|
||||
; X64-NEXT: vmovdqu16 {{.*#+}} ymm2 = [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]
|
||||
; X64-NEXT: vmovdqu {{.*#+}} ymm2 = [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]
|
||||
; X64-NEXT: vpermi2w %ymm1, %ymm0, %ymm2 {%k1} {z}
|
||||
; X64-NEXT: vmovdqu16 {{.*#+}} ymm0 = [15,30,13,28,11,26,9,24,7,22,5,20,3,18,1,16]
|
||||
; X64-NEXT: vmovdqu {{.*#+}} ymm0 = [15,30,13,28,11,26,9,24,7,22,5,20,3,18,1,16]
|
||||
; X64-NEXT: vpermi2w %ymm2, %ymm2, %ymm0 {%k1} {z}
|
||||
; X64-NEXT: retq
|
||||
%res0 = call <16 x i16> @llvm.x86.avx512.maskz.vpermt2var.hi.256(<16 x i16> <i16 15, i16 14, i16 13, i16 12, i16 11, i16 10, i16 9, i16 8, i16 7, i16 6, i16 5, i16 4, i16 3, i16 2, i16 1, i16 0>, <16 x i16> %x0, <16 x i16> %x1, i16 %m)
|
||||
|
@ -44,13 +44,13 @@ define <16 x i16> @combine_vpermt2var_16i16_identity_mask(<16 x i16> %x0, <16 x
|
|||
define <16 x i16> @combine_vpermi2var_16i16_as_permw(<16 x i16> %x0, <16 x i16> %x1) {
|
||||
; X32-LABEL: combine_vpermi2var_16i16_as_permw:
|
||||
; X32: # BB#0:
|
||||
; X32-NEXT: vmovdqu16 {{.*#+}} ymm1 = [15,0,14,1,13,2,12,3,11,4,10,5,9,6,8,7]
|
||||
; X32-NEXT: vmovdqu {{.*#+}} ymm1 = [15,0,14,1,13,2,12,3,11,4,10,5,9,6,8,7]
|
||||
; X32-NEXT: vpermw %ymm0, %ymm1, %ymm0
|
||||
; X32-NEXT: retl
|
||||
;
|
||||
; X64-LABEL: combine_vpermi2var_16i16_as_permw:
|
||||
; X64: # BB#0:
|
||||
; X64-NEXT: vmovdqu16 {{.*#+}} ymm1 = [15,0,14,1,13,2,12,3,11,4,10,5,9,6,8,7]
|
||||
; X64-NEXT: vmovdqu {{.*#+}} ymm1 = [15,0,14,1,13,2,12,3,11,4,10,5,9,6,8,7]
|
||||
; X64-NEXT: vpermw %ymm0, %ymm1, %ymm0
|
||||
; X64-NEXT: retq
|
||||
%res0 = call <16 x i16> @llvm.x86.avx512.mask.vpermi2var.hi.256(<16 x i16> %x0, <16 x i16> <i16 15, i16 14, i16 13, i16 12, i16 11, i16 10, i16 9, i16 8, i16 7, i16 6, i16 5, i16 4, i16 3, i16 2, i16 1, i16 0>, <16 x i16> %x1, i16 -1)
|
||||
|
@ -61,13 +61,13 @@ define <16 x i16> @combine_vpermi2var_16i16_as_permw(<16 x i16> %x0, <16 x i16>
|
|||
define <16 x i16> @combine_vpermt2var_vpermi2var_16i16_as_vperm2(<16 x i16> %x0, <16 x i16> %x1) {
|
||||
; X32-LABEL: combine_vpermt2var_vpermi2var_16i16_as_vperm2:
|
||||
; X32: # BB#0:
|
||||
; X32-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,31,2,2,4,29,6,27,8,25,10,23,12,21,14,19]
|
||||
; X32-NEXT: vmovdqu {{.*#+}} ymm2 = [0,31,2,2,4,29,6,27,8,25,10,23,12,21,14,19]
|
||||
; X32-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; X32-NEXT: retl
|
||||
;
|
||||
; X64-LABEL: combine_vpermt2var_vpermi2var_16i16_as_vperm2:
|
||||
; X64: # BB#0:
|
||||
; X64-NEXT: vmovdqu16 {{.*#+}} ymm2 = [0,31,2,2,4,29,6,27,8,25,10,23,12,21,14,19]
|
||||
; X64-NEXT: vmovdqu {{.*#+}} ymm2 = [0,31,2,2,4,29,6,27,8,25,10,23,12,21,14,19]
|
||||
; X64-NEXT: vpermt2w %ymm1, %ymm2, %ymm0
|
||||
; X64-NEXT: retq
|
||||
%res0 = call <16 x i16> @llvm.x86.avx512.mask.vpermi2var.hi.256(<16 x i16> %x0, <16 x i16> <i16 0, i16 31, i16 2, i16 29, i16 4, i16 27, i16 6, i16 25, i16 8, i16 23, i16 10, i16 21, i16 12, i16 19, i16 14, i16 17>, <16 x i16> %x1, i16 -1)
|
||||
|
|
|
@ -37,18 +37,18 @@ define <16 x i8> @combine_vpermt2var_16i8_identity_mask(<16 x i8> %x0, <16 x i8>
|
|||
; X32-LABEL: combine_vpermt2var_16i8_identity_mask:
|
||||
; X32: # BB#0:
|
||||
; X32-NEXT: kmovw {{[0-9]+}}(%esp), %k1
|
||||
; X32-NEXT: vmovdqu8 {{.*#+}} xmm2 = [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]
|
||||
; X32-NEXT: vmovdqu {{.*#+}} xmm2 = [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]
|
||||
; X32-NEXT: vpermi2b %xmm1, %xmm0, %xmm2 {%k1} {z}
|
||||
; X32-NEXT: vmovdqu8 {{.*#+}} xmm0 = [15,30,13,28,11,26,9,24,7,22,5,20,3,18,1,16]
|
||||
; X32-NEXT: vmovdqu {{.*#+}} xmm0 = [15,30,13,28,11,26,9,24,7,22,5,20,3,18,1,16]
|
||||
; X32-NEXT: vpermi2b %xmm2, %xmm2, %xmm0 {%k1} {z}
|
||||
; X32-NEXT: retl
|
||||
;
|
||||
; X64-LABEL: combine_vpermt2var_16i8_identity_mask:
|
||||
; X64: # BB#0:
|
||||
; X64-NEXT: kmovw %edi, %k1
|
||||
; X64-NEXT: vmovdqu8 {{.*#+}} xmm2 = [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]
|
||||
; X64-NEXT: vmovdqu {{.*#+}} xmm2 = [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]
|
||||
; X64-NEXT: vpermi2b %xmm1, %xmm0, %xmm2 {%k1} {z}
|
||||
; X64-NEXT: vmovdqu8 {{.*#+}} xmm0 = [15,30,13,28,11,26,9,24,7,22,5,20,3,18,1,16]
|
||||
; X64-NEXT: vmovdqu {{.*#+}} xmm0 = [15,30,13,28,11,26,9,24,7,22,5,20,3,18,1,16]
|
||||
; X64-NEXT: vpermi2b %xmm2, %xmm2, %xmm0 {%k1} {z}
|
||||
; X64-NEXT: retq
|
||||
%res0 = call <16 x i8> @llvm.x86.avx512.maskz.vpermt2var.qi.128(<16 x i8> <i8 15, i8 14, i8 13, i8 12, i8 11, i8 10, i8 9, i8 8, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0>, <16 x i8> %x0, <16 x i8> %x1, i16 %m)
|
||||
|
@ -73,13 +73,13 @@ define <16 x i8> @combine_vpermi2var_16i8_as_vpshufb(<16 x i8> %x0, <16 x i8> %x
|
|||
define <32 x i8> @combine_vpermi2var_32i8_as_vpermb(<32 x i8> %x0, <32 x i8> %x1) {
|
||||
; X32-LABEL: combine_vpermi2var_32i8_as_vpermb:
|
||||
; X32: # BB#0:
|
||||
; X32-NEXT: vmovdqu8 {{.*#+}} ymm1 = [0,0,1,23,2,22,3,21,4,22,5,21,6,20,7,19,0,0,1,23,2,22,3,21,4,22,5,21,6,20,7,19]
|
||||
; X32-NEXT: vmovdqu {{.*#+}} ymm1 = [0,0,1,23,2,22,3,21,4,22,5,21,6,20,7,19,0,0,1,23,2,22,3,21,4,22,5,21,6,20,7,19]
|
||||
; X32-NEXT: vpermb %ymm0, %ymm1, %ymm0
|
||||
; X32-NEXT: retl
|
||||
;
|
||||
; X64-LABEL: combine_vpermi2var_32i8_as_vpermb:
|
||||
; X64: # BB#0:
|
||||
; X64-NEXT: vmovdqu8 {{.*#+}} ymm1 = [0,0,1,23,2,22,3,21,4,22,5,21,6,20,7,19,0,0,1,23,2,22,3,21,4,22,5,21,6,20,7,19]
|
||||
; X64-NEXT: vmovdqu {{.*#+}} ymm1 = [0,0,1,23,2,22,3,21,4,22,5,21,6,20,7,19,0,0,1,23,2,22,3,21,4,22,5,21,6,20,7,19]
|
||||
; X64-NEXT: vpermb %ymm0, %ymm1, %ymm0
|
||||
; X64-NEXT: retq
|
||||
%res0 = shufflevector <32 x i8> %x0, <32 x i8> %x1, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55>
|
||||
|
@ -106,17 +106,17 @@ define <64 x i8> @combine_vpermi2var_64i8_as_vpermb(<64 x i8> %x0, <64 x i8> %x1
|
|||
define <16 x i8> @combine_vpermt2var_vpermi2var_16i8_as_vperm2(<16 x i8> %x0, <16 x i8> %x1) {
|
||||
; X32-LABEL: combine_vpermt2var_vpermi2var_16i8_as_vperm2:
|
||||
; X32: # BB#0:
|
||||
; X32-NEXT: vmovdqu8 {{.*#+}} xmm2 = [0,31,2,29,4,27,6,25,8,23,10,21,12,19,14,17]
|
||||
; X32-NEXT: vmovdqu {{.*#+}} xmm2 = [0,31,2,29,4,27,6,25,8,23,10,21,12,19,14,17]
|
||||
; X32-NEXT: vpermi2b %xmm1, %xmm0, %xmm2
|
||||
; X32-NEXT: vmovdqu8 {{.*#+}} xmm0 = [0,17,2,18,4,19,6,21,8,23,10,25,12,27,14,29]
|
||||
; X32-NEXT: vmovdqu {{.*#+}} xmm0 = [0,17,2,18,4,19,6,21,8,23,10,25,12,27,14,29]
|
||||
; X32-NEXT: vpermi2b %xmm2, %xmm2, %xmm0
|
||||
; X32-NEXT: retl
|
||||
;
|
||||
; X64-LABEL: combine_vpermt2var_vpermi2var_16i8_as_vperm2:
|
||||
; X64: # BB#0:
|
||||
; X64-NEXT: vmovdqu8 {{.*#+}} xmm2 = [0,31,2,29,4,27,6,25,8,23,10,21,12,19,14,17]
|
||||
; X64-NEXT: vmovdqu {{.*#+}} xmm2 = [0,31,2,29,4,27,6,25,8,23,10,21,12,19,14,17]
|
||||
; X64-NEXT: vpermi2b %xmm1, %xmm0, %xmm2
|
||||
; X64-NEXT: vmovdqu8 {{.*#+}} xmm0 = [0,17,2,18,4,19,6,21,8,23,10,25,12,27,14,29]
|
||||
; X64-NEXT: vmovdqu {{.*#+}} xmm0 = [0,17,2,18,4,19,6,21,8,23,10,25,12,27,14,29]
|
||||
; X64-NEXT: vpermi2b %xmm2, %xmm2, %xmm0
|
||||
; X64-NEXT: retq
|
||||
%res0 = call <16 x i8> @llvm.x86.avx512.mask.vpermi2var.qi.128(<16 x i8> %x0, <16 x i8> <i8 0, i8 31, i8 2, i8 29, i8 4, i8 27, i8 6, i8 25, i8 8, i8 23, i8 10, i8 21, i8 12, i8 19, i8 14, i8 17>, <16 x i8> %x1, i16 -1)
|
||||
|
@ -126,13 +126,13 @@ define <16 x i8> @combine_vpermt2var_vpermi2var_16i8_as_vperm2(<16 x i8> %x0, <1
|
|||
define <32 x i8> @combine_vpermi2var_32i8_as_vperm2(<32 x i8> %x0, <32 x i8> %x1) {
|
||||
; X32-LABEL: combine_vpermi2var_32i8_as_vperm2:
|
||||
; X32: # BB#0:
|
||||
; X32-NEXT: vmovdqu8 {{.*#+}} ymm2 = [0,32,1,23,2,22,3,21,4,22,5,21,6,20,7,19,0,32,1,23,2,22,3,21,4,22,5,21,6,20,7,19]
|
||||
; X32-NEXT: vmovdqu {{.*#+}} ymm2 = [0,32,1,23,2,22,3,21,4,22,5,21,6,20,7,19,0,32,1,23,2,22,3,21,4,22,5,21,6,20,7,19]
|
||||
; X32-NEXT: vpermt2b %ymm1, %ymm2, %ymm0
|
||||
; X32-NEXT: retl
|
||||
;
|
||||
; X64-LABEL: combine_vpermi2var_32i8_as_vperm2:
|
||||
; X64: # BB#0:
|
||||
; X64-NEXT: vmovdqu8 {{.*#+}} ymm2 = [0,32,1,23,2,22,3,21,4,22,5,21,6,20,7,19,0,32,1,23,2,22,3,21,4,22,5,21,6,20,7,19]
|
||||
; X64-NEXT: vmovdqu {{.*#+}} ymm2 = [0,32,1,23,2,22,3,21,4,22,5,21,6,20,7,19,0,32,1,23,2,22,3,21,4,22,5,21,6,20,7,19]
|
||||
; X64-NEXT: vpermt2b %ymm1, %ymm2, %ymm0
|
||||
; X64-NEXT: retq
|
||||
%res0 = shufflevector <32 x i8> %x0, <32 x i8> %x1, <32 x i32> <i32 0, i32 32, i32 1, i32 33, i32 2, i32 34, i32 3, i32 35, i32 4, i32 36, i32 5, i32 37, i32 6, i32 38, i32 7, i32 39, i32 16, i32 48, i32 17, i32 49, i32 18, i32 50, i32 19, i32 51, i32 20, i32 52, i32 21, i32 53, i32 22, i32 54, i32 23, i32 55>
|
||||
|
|
|
@ -6,7 +6,7 @@ define <4 x i32> @mask_shuffle_v4i32_1234(<4 x i32> %a, <4 x i32> %b, <4 x i32>
|
|||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1
|
||||
; CHECK-NEXT: valignd {{.*#+}} xmm2 {%k1} = xmm0[1,2,3],xmm1[0]
|
||||
; CHECK-NEXT: vmovdqa64 %xmm2, %xmm0
|
||||
; CHECK-NEXT: vmovdqa %xmm2, %xmm0
|
||||
; CHECK-NEXT: retq
|
||||
%shuffle = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
|
||||
%mask.cast = bitcast i8 %mask to <8 x i1>
|
||||
|
@ -33,7 +33,7 @@ define <4 x i32> @mask_shuffle_v4i32_2345(<4 x i32> %a, <4 x i32> %b, <4 x i32>
|
|||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1
|
||||
; CHECK-NEXT: valignd {{.*#+}} xmm2 {%k1} = xmm0[2,3],xmm1[0,1]
|
||||
; CHECK-NEXT: vmovdqa64 %xmm2, %xmm0
|
||||
; CHECK-NEXT: vmovdqa %xmm2, %xmm0
|
||||
; CHECK-NEXT: retq
|
||||
%shuffle = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 2, i32 3, i32 4, i32 5>
|
||||
%mask.cast = bitcast i8 %mask to <8 x i1>
|
||||
|
@ -60,7 +60,7 @@ define <2 x i64> @mask_shuffle_v2i64_12(<2 x i64> %a, <2 x i64> %b, <2 x i64> %p
|
|||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1
|
||||
; CHECK-NEXT: valignq {{.*#+}} xmm2 {%k1} = xmm0[1],xmm1[0]
|
||||
; CHECK-NEXT: vmovdqa64 %xmm2, %xmm0
|
||||
; CHECK-NEXT: vmovdqa %xmm2, %xmm0
|
||||
; CHECK-NEXT: retq
|
||||
%shuffle = shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 1, i32 2>
|
||||
%mask.cast = bitcast i8 %mask to <8 x i1>
|
||||
|
@ -87,7 +87,7 @@ define <4 x i64> @mask_shuffle_v4i64_1234(<4 x i64> %a, <4 x i64> %b, <4 x i64>
|
|||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1
|
||||
; CHECK-NEXT: valignq {{.*#+}} ymm2 {%k1} = ymm0[1,2,3],ymm1[0]
|
||||
; CHECK-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; CHECK-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; CHECK-NEXT: retq
|
||||
%shuffle = shufflevector <4 x i64> %a, <4 x i64> %b, <4 x i32> <i32 1, i32 2, i32 3, i32 4>
|
||||
%mask.cast = bitcast i8 %mask to <8 x i1>
|
||||
|
@ -114,7 +114,7 @@ define <4 x i64> @mask_shuffle_v4i64_1230(<4 x i64> %a, <4 x i64> %passthru, i8
|
|||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1
|
||||
; CHECK-NEXT: vpermq {{.*#+}} ymm1 {%k1} = ymm0[1,2,3,0]
|
||||
; CHECK-NEXT: vmovdqa64 %ymm1, %ymm0
|
||||
; CHECK-NEXT: vmovdqa %ymm1, %ymm0
|
||||
; CHECK-NEXT: retq
|
||||
%shuffle = shufflevector <4 x i64> %a, <4 x i64> undef, <4 x i32> <i32 1, i32 2, i32 3, i32 0>
|
||||
%mask.cast = bitcast i8 %mask to <8 x i1>
|
||||
|
@ -141,7 +141,7 @@ define <8 x i32> @mask_shuffle_v8i32_12345678(<8 x i32> %a, <8 x i32> %b, <8 x i
|
|||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1
|
||||
; CHECK-NEXT: valignd {{.*#+}} ymm2 {%k1} = ymm0[1,2,3,4,5,6,7],ymm1[0]
|
||||
; CHECK-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; CHECK-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; CHECK-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8>
|
||||
%mask.cast = bitcast i8 %mask to <8 x i1>
|
||||
|
@ -166,7 +166,7 @@ define <8 x i32> @mask_shuffle_v8i32_23456789(<8 x i32> %a, <8 x i32> %b, <8 x i
|
|||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1
|
||||
; CHECK-NEXT: valignd {{.*#+}} ymm2 {%k1} = ymm0[2,3,4,5,6,7],ymm1[0,1]
|
||||
; CHECK-NEXT: vmovdqa64 %ymm2, %ymm0
|
||||
; CHECK-NEXT: vmovdqa %ymm2, %ymm0
|
||||
; CHECK-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> %b, <8 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9>
|
||||
%mask.cast = bitcast i8 %mask to <8 x i1>
|
||||
|
@ -191,7 +191,7 @@ define <8 x i32> @mask_shuffle_v8i32_12345670(<8 x i32> %a, <8 x i32> %passthru,
|
|||
; CHECK: # BB#0:
|
||||
; CHECK-NEXT: kmovb %edi, %k1
|
||||
; CHECK-NEXT: valignd {{.*#+}} ymm1 {%k1} = ymm0[1,2,3,4,5,6,7,0]
|
||||
; CHECK-NEXT: vmovdqa64 %ymm1, %ymm0
|
||||
; CHECK-NEXT: vmovdqa %ymm1, %ymm0
|
||||
; CHECK-NEXT: retq
|
||||
%shuffle = shufflevector <8 x i32> %a, <8 x i32> undef, <8 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 0>
|
||||
%mask.cast = bitcast i8 %mask to <8 x i1>
|
||||
|
|
|
@ -535,7 +535,7 @@ define void @trunc16i16_16i8(<16 x i16> %a) {
|
|||
; AVX512VL: # BB#0: # %entry
|
||||
; AVX512VL-NEXT: vpmovsxwd %ymm0, %zmm0
|
||||
; AVX512VL-NEXT: vpmovdb %zmm0, %xmm0
|
||||
; AVX512VL-NEXT: vmovdqu32 %xmm0, (%rax)
|
||||
; AVX512VL-NEXT: vmovdqu %xmm0, (%rax)
|
||||
; AVX512VL-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: trunc16i16_16i8:
|
||||
|
@ -644,7 +644,7 @@ define void @trunc32i16_32i8(<32 x i16> %a) {
|
|||
; AVX512VL-NEXT: vpmovsxwd %ymm1, %zmm1
|
||||
; AVX512VL-NEXT: vpmovdb %zmm1, %xmm1
|
||||
; AVX512VL-NEXT: vinserti32x4 $1, %xmm1, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: vmovdqu32 %ymm0, (%rax)
|
||||
; AVX512VL-NEXT: vmovdqu %ymm0, (%rax)
|
||||
; AVX512VL-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: trunc32i16_32i8:
|
||||
|
@ -1100,7 +1100,7 @@ define <16 x i8> @trunc2x8i16_16i8(<8 x i16> %a, <8 x i16> %b) {
|
|||
;
|
||||
; AVX512VL-LABEL: trunc2x8i16_16i8:
|
||||
; AVX512VL: # BB#0: # %entry
|
||||
; AVX512VL-NEXT: vmovdqa64 {{.*#+}} xmm2 = <0,2,4,6,8,10,12,14,u,u,u,u,u,u,u,u>
|
||||
; AVX512VL-NEXT: vmovdqa {{.*#+}} xmm2 = <0,2,4,6,8,10,12,14,u,u,u,u,u,u,u,u>
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm1, %xmm1
|
||||
; AVX512VL-NEXT: vpshufb %xmm2, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
|
||||
|
@ -1116,7 +1116,7 @@ define <16 x i8> @trunc2x8i16_16i8(<8 x i16> %a, <8 x i16> %b) {
|
|||
;
|
||||
; AVX512BWVL-LABEL: trunc2x8i16_16i8:
|
||||
; AVX512BWVL: # BB#0: # %entry
|
||||
; AVX512BWVL-NEXT: vmovdqu8 {{.*#+}} xmm2 = <0,2,4,6,8,10,12,14,u,u,u,u,u,u,u,u>
|
||||
; AVX512BWVL-NEXT: vmovdqu {{.*#+}} xmm2 = <0,2,4,6,8,10,12,14,u,u,u,u,u,u,u,u>
|
||||
; AVX512BWVL-NEXT: vpshufb %xmm2, %xmm1, %xmm1
|
||||
; AVX512BWVL-NEXT: vpshufb %xmm2, %xmm0, %xmm0
|
||||
; AVX512BWVL-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
|
||||
|
@ -1202,7 +1202,7 @@ define <16 x i8> @trunc16i64_16i8_const() {
|
|||
;
|
||||
; AVX512VL-LABEL: trunc16i64_16i8_const:
|
||||
; AVX512VL: # BB#0: # %entry
|
||||
; AVX512VL-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX512VL-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: trunc16i64_16i8_const:
|
||||
|
@ -1212,7 +1212,7 @@ define <16 x i8> @trunc16i64_16i8_const() {
|
|||
;
|
||||
; AVX512BWVL-LABEL: trunc16i64_16i8_const:
|
||||
; AVX512BWVL: # BB#0: # %entry
|
||||
; AVX512BWVL-NEXT: vpxord %xmm0, %xmm0, %xmm0
|
||||
; AVX512BWVL-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX512BWVL-NEXT: retq
|
||||
|
||||
entry:
|
||||
|
|
|
@ -136,16 +136,16 @@ define <2 x i64> @testv2i64(<2 x i64> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv2i64:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpsubq %xmm0, %xmm1, %xmm2
|
||||
; AVX512CDVL-NEXT: vpandq %xmm2, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpsubq {{.*}}(%rip), %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpandq %xmm2, %xmm0, %xmm3
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpand %xmm2, %xmm0, %xmm3
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vpshufb %xmm3, %xmm4, %xmm3
|
||||
; AVX512CDVL-NEXT: vpsrlw $4, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpandq %xmm2, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpshufb %xmm0, %xmm4, %xmm0
|
||||
; AVX512CDVL-NEXT: vpaddb %xmm3, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpsadbw %xmm1, %xmm0, %xmm0
|
||||
|
@ -316,11 +316,11 @@ define <2 x i64> @testv2i64u(<2 x i64> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv2i64u:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpsubq %xmm0, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vplzcntq %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm1 = [63,63]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm1 = [63,63]
|
||||
; AVX512CDVL-NEXT: vpsubq %xmm0, %xmm1, %xmm0
|
||||
; AVX512CDVL-NEXT: retq
|
||||
;
|
||||
|
@ -510,16 +510,16 @@ define <4 x i32> @testv4i32(<4 x i32> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv4i32:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpsubd %xmm0, %xmm1, %xmm2
|
||||
; AVX512CDVL-NEXT: vpandd %xmm2, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpsubd {{.*}}(%rip){1to4}, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpandq %xmm2, %xmm0, %xmm3
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpand %xmm2, %xmm0, %xmm3
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vpshufb %xmm3, %xmm4, %xmm3
|
||||
; AVX512CDVL-NEXT: vpsrlw $4, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpandq %xmm2, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpshufb %xmm0, %xmm4, %xmm0
|
||||
; AVX512CDVL-NEXT: vpaddb %xmm3, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpunpckhdq {{.*#+}} xmm2 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
|
||||
|
@ -731,9 +731,9 @@ define <4 x i32> @testv4i32u(<4 x i32> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv4i32u:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpsubd %xmm0, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpandd %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vplzcntd %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpbroadcastd {{.*}}(%rip), %xmm1
|
||||
; AVX512CDVL-NEXT: vpsubd %xmm0, %xmm1, %xmm0
|
||||
|
@ -913,16 +913,16 @@ define <8 x i16> @testv8i16(<8 x i16> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv8i16:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpsubw %xmm0, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpsubw {{.*}}(%rip), %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm2
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm2
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vpshufb %xmm2, %xmm3, %xmm2
|
||||
; AVX512CDVL-NEXT: vpsrlw $4, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpshufb %xmm0, %xmm3, %xmm0
|
||||
; AVX512CDVL-NEXT: vpaddb %xmm2, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpsllw $8, %xmm0, %xmm1
|
||||
|
@ -1111,16 +1111,16 @@ define <8 x i16> @testv8i16u(<8 x i16> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv8i16u:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpsubw %xmm0, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpsubw {{.*}}(%rip), %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm2
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm2
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vpshufb %xmm2, %xmm3, %xmm2
|
||||
; AVX512CDVL-NEXT: vpsrlw $4, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpshufb %xmm0, %xmm3, %xmm0
|
||||
; AVX512CDVL-NEXT: vpaddb %xmm2, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpsllw $8, %xmm0, %xmm1
|
||||
|
@ -1287,16 +1287,16 @@ define <16 x i8> @testv16i8(<16 x i8> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv16i8:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpsubb %xmm0, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpsubb {{.*}}(%rip), %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm2
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm2
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vpshufb %xmm2, %xmm3, %xmm2
|
||||
; AVX512CDVL-NEXT: vpsrlw $4, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpshufb %xmm0, %xmm3, %xmm0
|
||||
; AVX512CDVL-NEXT: vpaddb %xmm2, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: retq
|
||||
|
@ -1453,16 +1453,16 @@ define <16 x i8> @testv16i8u(<16 x i8> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv16i8u:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpxor %xmm1, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpsubb %xmm0, %xmm1, %xmm1
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpsubb {{.*}}(%rip), %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm2
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm2
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} xmm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vpshufb %xmm2, %xmm3, %xmm2
|
||||
; AVX512CDVL-NEXT: vpsrlw $4, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpandq %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: vpshufb %xmm0, %xmm3, %xmm0
|
||||
; AVX512CDVL-NEXT: vpaddb %xmm2, %xmm0, %xmm0
|
||||
; AVX512CDVL-NEXT: retq
|
||||
|
|
|
@ -59,16 +59,16 @@ define <4 x i64> @testv4i64(<4 x i64> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv4i64:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpsubq %ymm0, %ymm1, %ymm2
|
||||
; AVX512CDVL-NEXT: vpandq %ymm2, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm2, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpsubq {{.*}}(%rip){1to4}, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpandq %ymm2, %ymm0, %ymm3
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} ymm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpand %ymm2, %ymm0, %ymm3
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} ymm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vpshufb %ymm3, %ymm4, %ymm3
|
||||
; AVX512CDVL-NEXT: vpsrlw $4, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpandq %ymm2, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm2, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpshufb %ymm0, %ymm4, %ymm0
|
||||
; AVX512CDVL-NEXT: vpaddb %ymm3, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpsadbw %ymm1, %ymm0, %ymm0
|
||||
|
@ -164,9 +164,9 @@ define <4 x i64> @testv4i64u(<4 x i64> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv4i64u:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpsubq %ymm0, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vplzcntq %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpbroadcastq {{.*}}(%rip), %ymm1
|
||||
; AVX512CDVL-NEXT: vpsubq %ymm0, %ymm1, %ymm0
|
||||
|
@ -266,16 +266,16 @@ define <8 x i32> @testv8i32(<8 x i32> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv8i32:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpsubd %ymm0, %ymm1, %ymm2
|
||||
; AVX512CDVL-NEXT: vpandd %ymm2, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm2, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpsubd {{.*}}(%rip){1to8}, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpandq %ymm2, %ymm0, %ymm3
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} ymm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpand %ymm2, %ymm0, %ymm3
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} ymm4 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vpshufb %ymm3, %ymm4, %ymm3
|
||||
; AVX512CDVL-NEXT: vpsrlw $4, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpandq %ymm2, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm2, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpshufb %ymm0, %ymm4, %ymm0
|
||||
; AVX512CDVL-NEXT: vpaddb %ymm3, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
|
||||
|
@ -396,9 +396,9 @@ define <8 x i32> @testv8i32u(<8 x i32> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv8i32u:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpsubd %ymm0, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpandd %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vplzcntd %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpbroadcastd {{.*}}(%rip), %ymm1
|
||||
; AVX512CDVL-NEXT: vpsubd %ymm0, %ymm1, %ymm0
|
||||
|
@ -496,16 +496,16 @@ define <16 x i16> @testv16i16(<16 x i16> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv16i16:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpsubw %ymm0, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpsubw {{.*}}(%rip), %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm2
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm2
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vpshufb %ymm2, %ymm3, %ymm2
|
||||
; AVX512CDVL-NEXT: vpsrlw $4, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpshufb %ymm0, %ymm3, %ymm0
|
||||
; AVX512CDVL-NEXT: vpaddb %ymm2, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpsllw $8, %ymm0, %ymm1
|
||||
|
@ -611,16 +611,16 @@ define <16 x i16> @testv16i16u(<16 x i16> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv16i16u:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpsubw %ymm0, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpsubw {{.*}}(%rip), %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm2
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm2
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vpshufb %ymm2, %ymm3, %ymm2
|
||||
; AVX512CDVL-NEXT: vpsrlw $4, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpshufb %ymm0, %ymm3, %ymm0
|
||||
; AVX512CDVL-NEXT: vpaddb %ymm2, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpsllw $8, %ymm0, %ymm1
|
||||
|
@ -717,16 +717,16 @@ define <32 x i8> @testv32i8(<32 x i8> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv32i8:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpsubb %ymm0, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpsubb {{.*}}(%rip), %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm2
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm2
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vpshufb %ymm2, %ymm3, %ymm2
|
||||
; AVX512CDVL-NEXT: vpsrlw $4, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpshufb %ymm0, %ymm3, %ymm0
|
||||
; AVX512CDVL-NEXT: vpaddb %ymm2, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: retq
|
||||
|
@ -814,16 +814,16 @@ define <32 x i8> @testv32i8u(<32 x i8> %in) nounwind {
|
|||
;
|
||||
; AVX512CDVL-LABEL: testv32i8u:
|
||||
; AVX512CDVL: # BB#0:
|
||||
; AVX512CDVL-NEXT: vpxord %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpxor %ymm1, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpsubb %ymm0, %ymm1, %ymm1
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpsubb {{.*}}(%rip), %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm2
|
||||
; AVX512CDVL-NEXT: vmovdqa64 {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm2
|
||||
; AVX512CDVL-NEXT: vmovdqa {{.*#+}} ymm3 = [0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4]
|
||||
; AVX512CDVL-NEXT: vpshufb %ymm2, %ymm3, %ymm2
|
||||
; AVX512CDVL-NEXT: vpsrlw $4, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpandq %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: vpshufb %ymm0, %ymm3, %ymm0
|
||||
; AVX512CDVL-NEXT: vpaddb %ymm2, %ymm0, %ymm0
|
||||
; AVX512CDVL-NEXT: retq
|
||||
|
|
|
@ -452,7 +452,7 @@ define <2 x i64> @test_abs_ge_v2i64(<2 x i64> %a) nounwind {
|
|||
; AVX512: # BB#0:
|
||||
; AVX512-NEXT: vpsraq $63, %xmm0, %xmm1
|
||||
; AVX512-NEXT: vpaddq %xmm1, %xmm0, %xmm0
|
||||
; AVX512-NEXT: vpxorq %xmm1, %xmm0, %xmm0
|
||||
; AVX512-NEXT: vpxor %xmm1, %xmm0, %xmm0
|
||||
; AVX512-NEXT: retq
|
||||
%tmp1neg = sub <2 x i64> zeroinitializer, %a
|
||||
%b = icmp sge <2 x i64> %a, zeroinitializer
|
||||
|
@ -501,7 +501,7 @@ define <4 x i64> @test_abs_gt_v4i64(<4 x i64> %a) nounwind {
|
|||
; AVX512: # BB#0:
|
||||
; AVX512-NEXT: vpsraq $63, %ymm0, %ymm1
|
||||
; AVX512-NEXT: vpaddq %ymm1, %ymm0, %ymm0
|
||||
; AVX512-NEXT: vpxorq %ymm1, %ymm0, %ymm0
|
||||
; AVX512-NEXT: vpxor %ymm1, %ymm0, %ymm0
|
||||
; AVX512-NEXT: retq
|
||||
%tmp1neg = sub <4 x i64> zeroinitializer, %a
|
||||
%b = icmp sgt <4 x i64> %a, <i64 -1, i64 -1, i64 -1, i64 -1>
|
||||
|
|
Loading…
Reference in New Issue