forked from OSchip/llvm-project
AVX-512: Implemented VFIXUPIMMPD and VFIXUPIMMPS instructions for KNL and SKX
Implemented DAG lowering for all these forms. Added tests for encoding. by Igor Breger (igor.breger@intel.com) llvm-svn: 238728
This commit is contained in:
parent
6548196c6f
commit
42c96d9c0a
|
@ -18221,6 +18221,7 @@ const char *X86TargetLowering::getTargetNodeName(unsigned Opcode) const {
|
|||
case X86ISD::VPERMV3: return "X86ISD::VPERMV3";
|
||||
case X86ISD::VPERMIV3: return "X86ISD::VPERMIV3";
|
||||
case X86ISD::VPERMI: return "X86ISD::VPERMI";
|
||||
case X86ISD::VFIXUPIMM: return "X86ISD::VFIXUPIMM";
|
||||
case X86ISD::PMULUDQ: return "X86ISD::PMULUDQ";
|
||||
case X86ISD::PMULDQ: return "X86ISD::PMULDQ";
|
||||
case X86ISD::PSADBW: return "X86ISD::PSADBW";
|
||||
|
|
|
@ -377,6 +377,8 @@ namespace llvm {
|
|||
VPERMIV3,
|
||||
VPERMI,
|
||||
VPERM2X128,
|
||||
//Fix Up Special Packed Float32/64 values
|
||||
VFIXUPIMM,
|
||||
// Broadcast scalar to vector
|
||||
VBROADCAST,
|
||||
// Broadcast subvector to vector
|
||||
|
|
|
@ -5979,3 +5979,70 @@ defm VEXPANDPS : expand_by_elt_width <0x88, "vexpandps", avx512vl_f32_info>,
|
|||
EVEX;
|
||||
defm VEXPANDPD : expand_by_elt_width <0x88, "vexpandpd", avx512vl_f64_info>,
|
||||
EVEX, VEX_W;
|
||||
|
||||
//handle instruction reg_vec1 = op(reg_vec2,reg_vec3,imm)
|
||||
// op(reg_vec2,mem_vec,imm)
|
||||
// op(reg_vec2,broadcast(eltVt),imm)
|
||||
//all instruction created with FROUND_CURRENT
|
||||
multiclass avx512_fp_packed_imm<bits<8> opc, string OpcodeStr, SDNode OpNode,
|
||||
X86VectorVTInfo _>{
|
||||
defm rri : AVX512_maskable<opc, MRMSrcReg, _, (outs _.RC:$dst),
|
||||
(ins _.RC:$src1, _.RC:$src2, u8imm:$src3),
|
||||
OpcodeStr, "$src3, $src2, $src1", "$src1, $src2, $src3",
|
||||
(OpNode (_.VT _.RC:$src1),
|
||||
(_.VT _.RC:$src2),
|
||||
(i8 imm:$src3),
|
||||
(i32 FROUND_CURRENT))>;
|
||||
let mayLoad = 1 in {
|
||||
defm rmi : AVX512_maskable<opc, MRMSrcMem, _, (outs _.RC:$dst),
|
||||
(ins _.RC:$src1, _.MemOp:$src2, u8imm:$src3),
|
||||
OpcodeStr, "$src3, $src2, $src1", "$src1, $src2, $src3",
|
||||
(OpNode (_.VT _.RC:$src1),
|
||||
(_.VT (bitconvert (_.LdFrag addr:$src2))),
|
||||
(i8 imm:$src3),
|
||||
(i32 FROUND_CURRENT))>;
|
||||
defm rmbi : AVX512_maskable<opc, MRMSrcMem, _, (outs _.RC:$dst),
|
||||
(ins _.RC:$src1, _.ScalarMemOp:$src2, u8imm:$src3),
|
||||
OpcodeStr, "$src3, ${src2}"##_.BroadcastStr##", $src1",
|
||||
"$src1, ${src2}"##_.BroadcastStr##", $src3",
|
||||
(OpNode (_.VT _.RC:$src1),
|
||||
(_.VT (X86VBroadcast(_.ScalarLdFrag addr:$src2))),
|
||||
(i8 imm:$src3),
|
||||
(i32 FROUND_CURRENT))>, EVEX_B;
|
||||
}
|
||||
}
|
||||
|
||||
//handle instruction reg_vec1 = op(reg_vec2,reg_vec3,imm),{sae}
|
||||
multiclass avx512_fp_sae_packed_imm<bits<8> opc, string OpcodeStr,
|
||||
SDNode OpNode, X86VectorVTInfo _>{
|
||||
defm rrib : AVX512_maskable<opc, MRMSrcReg, _, (outs _.RC:$dst),
|
||||
(ins _.RC:$src1, _.RC:$src2, u8imm:$src3),
|
||||
OpcodeStr, "$src3,{sae}, $src2, $src1",
|
||||
"$src1, $src2,{sae}, $src3",
|
||||
(OpNode (_.VT _.RC:$src1),
|
||||
(_.VT _.RC:$src2),
|
||||
(i8 imm:$src3),
|
||||
(i32 FROUND_NO_EXC))>, EVEX_B;
|
||||
}
|
||||
|
||||
multiclass avx512_vfixupimm_float<string OpcodeStr, AVX512VLVectorVTInfo _,
|
||||
bits<8> opc = 0x54, SDNode OpNode = X86VFixupimm>{
|
||||
let Predicates = [HasAVX512] in {
|
||||
defm Z : avx512_fp_packed_imm<opc, OpcodeStr, OpNode, _.info512>,
|
||||
avx512_fp_sae_packed_imm<opc, OpcodeStr, OpNode, _.info512>,
|
||||
EVEX_V512;
|
||||
|
||||
}
|
||||
let Predicates = [HasAVX512, HasVLX] in {
|
||||
defm Z128 : avx512_fp_packed_imm<opc, OpcodeStr, OpNode, _.info128>,
|
||||
EVEX_V128;
|
||||
defm Z256 : avx512_fp_packed_imm<opc, OpcodeStr, OpNode, _.info256>,
|
||||
EVEX_V256;
|
||||
}
|
||||
}
|
||||
|
||||
defm VFIXUPIMMPD : avx512_vfixupimm_float<"vfixupimmpd", avx512vl_f64_info>,
|
||||
AVX512AIi8Base, EVEX_4V, EVEX_CD8<64, CD8VF>, VEX_W;
|
||||
defm VFIXUPIMMPS : avx512_vfixupimm_float<"vfixupimmps", avx512vl_f32_info>,
|
||||
AVX512AIi8Base, EVEX_4V, EVEX_CD8<32, CD8VF>;
|
||||
|
||||
|
|
|
@ -222,6 +222,8 @@ def SDTShuff2OpI : SDTypeProfile<1, 2, [SDTCisVec<0>,
|
|||
SDTCisSameAs<0,1>, SDTCisInt<2>]>;
|
||||
def SDTShuff3OpI : SDTypeProfile<1, 3, [SDTCisVec<0>, SDTCisSameAs<0,1>,
|
||||
SDTCisSameAs<0,2>, SDTCisInt<3>]>;
|
||||
def SDTFPBinOpImmRound: SDTypeProfile<1, 4, [SDTCisVec<0>, SDTCisSameAs<0,1>,
|
||||
SDTCisSameAs<0,2>, SDTCisInt<3>, SDTCisInt<4>]>;
|
||||
|
||||
def SDTVBroadcast : SDTypeProfile<1, 1, [SDTCisVec<0>]>;
|
||||
def SDTVBroadcastm : SDTypeProfile<1, 2, [SDTCisVec<0>, SDTCisVec<1>]>;
|
||||
|
@ -282,6 +284,8 @@ def X86VPermiv3 : SDNode<"X86ISD::VPERMIV3", SDTShuff3Op>;
|
|||
|
||||
def X86VPerm2x128 : SDNode<"X86ISD::VPERM2X128", SDTShuff3OpI>;
|
||||
|
||||
def X86VFixupimm : SDNode<"X86ISD::VFIXUPIMM", SDTFPBinOpImmRound>;
|
||||
|
||||
def X86SubVBroadcast : SDNode<"X86ISD::SUBV_BROADCAST",
|
||||
SDTypeProfile<1, 1, [SDTCisVec<0>, SDTCisVec<1>,
|
||||
SDTCisSubVecOfVec<1, 0>]>, []>;
|
||||
|
|
|
@ -7724,3 +7724,138 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2
|
|||
// CHECK: encoding: [0x62,0xf1,0x95,0x50,0x72,0xa2,0xf8,0xfb,0xff,0xff,0x7b]
|
||||
vpsraq $123, -1032(%rdx){1to8}, %zmm29
|
||||
|
||||
// CHECK: vfixupimmps $171, %zmm2, %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0xfa,0xab]
|
||||
vfixupimmps $0xab, %zmm2, %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $171, %zmm2, %zmm26, %zmm15 {%k4}
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x44,0x54,0xfa,0xab]
|
||||
vfixupimmps $0xab, %zmm2, %zmm26, %zmm15 {%k4}
|
||||
|
||||
// CHECK: vfixupimmps $171, %zmm2, %zmm26, %zmm15 {%k4} {z}
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0xc4,0x54,0xfa,0xab]
|
||||
vfixupimmps $0xab, %zmm2, %zmm26, %zmm15 {%k4} {z}
|
||||
|
||||
// CHECK: vfixupimmps $171,{sae}, %zmm2, %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x10,0x54,0xfa,0xab]
|
||||
vfixupimmps $0xab,{sae}, %zmm2, %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123, %zmm2, %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0xfa,0x7b]
|
||||
vfixupimmps $0x7b, %zmm2, %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123,{sae}, %zmm2, %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x10,0x54,0xfa,0x7b]
|
||||
vfixupimmps $0x7b,{sae}, %zmm2, %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123, (%rcx), %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0x39,0x7b]
|
||||
vfixupimmps $0x7b, (%rcx), %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123, 291(%rax,%r14,8), %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x33,0x2d,0x40,0x54,0xbc,0xf0,0x23,0x01,0x00,0x00,0x7b]
|
||||
vfixupimmps $0x7b, 291(%rax,%r14,8), %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123, (%rcx){1to16}, %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0x39,0x7b]
|
||||
vfixupimmps $0x7b, (%rcx){1to16}, %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123, 8128(%rdx), %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0x7a,0x7f,0x7b]
|
||||
vfixupimmps $0x7b, 8128(%rdx), %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123, 8192(%rdx), %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0xba,0x00,0x20,0x00,0x00,0x7b]
|
||||
vfixupimmps $0x7b, 8192(%rdx), %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123, -8192(%rdx), %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0x7a,0x80,0x7b]
|
||||
vfixupimmps $0x7b, -8192(%rdx), %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123, -8256(%rdx), %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0xba,0xc0,0xdf,0xff,0xff,0x7b]
|
||||
vfixupimmps $0x7b, -8256(%rdx), %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123, 508(%rdx){1to16}, %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0x7a,0x7f,0x7b]
|
||||
vfixupimmps $0x7b, 508(%rdx){1to16}, %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123, 512(%rdx){1to16}, %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0xba,0x00,0x02,0x00,0x00,0x7b]
|
||||
vfixupimmps $0x7b, 512(%rdx){1to16}, %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123, -512(%rdx){1to16}, %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0x7a,0x80,0x7b]
|
||||
vfixupimmps $0x7b, -512(%rdx){1to16}, %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmps $123, -516(%rdx){1to16}, %zmm26, %zmm15
|
||||
// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0xba,0xfc,0xfd,0xff,0xff,0x7b]
|
||||
vfixupimmps $0x7b, -516(%rdx){1to16}, %zmm26, %zmm15
|
||||
|
||||
// CHECK: vfixupimmpd $171, %zmm19, %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x33,0xd5,0x40,0x54,0xcb,0xab]
|
||||
vfixupimmpd $0xab, %zmm19, %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $171, %zmm19, %zmm21, %zmm9 {%k2}
|
||||
// CHECK: encoding: [0x62,0x33,0xd5,0x42,0x54,0xcb,0xab]
|
||||
vfixupimmpd $0xab, %zmm19, %zmm21, %zmm9 {%k2}
|
||||
|
||||
// CHECK: vfixupimmpd $171, %zmm19, %zmm21, %zmm9 {%k2} {z}
|
||||
// CHECK: encoding: [0x62,0x33,0xd5,0xc2,0x54,0xcb,0xab]
|
||||
vfixupimmpd $0xab, %zmm19, %zmm21, %zmm9 {%k2} {z}
|
||||
|
||||
// CHECK: vfixupimmpd $171,{sae}, %zmm19, %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x33,0xd5,0x10,0x54,0xcb,0xab]
|
||||
vfixupimmpd $0xab,{sae}, %zmm19, %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123, %zmm19, %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x33,0xd5,0x40,0x54,0xcb,0x7b]
|
||||
vfixupimmpd $0x7b, %zmm19, %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123,{sae}, %zmm19, %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x33,0xd5,0x10,0x54,0xcb,0x7b]
|
||||
vfixupimmpd $0x7b,{sae}, %zmm19, %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123, (%rcx), %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x09,0x7b]
|
||||
vfixupimmpd $0x7b, (%rcx), %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123, 291(%rax,%r14,8), %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x33,0xd5,0x40,0x54,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b]
|
||||
vfixupimmpd $0x7b, 291(%rax,%r14,8), %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123, (%rcx){1to8}, %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x09,0x7b]
|
||||
vfixupimmpd $0x7b, (%rcx){1to8}, %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123, 8128(%rdx), %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x4a,0x7f,0x7b]
|
||||
vfixupimmpd $0x7b, 8128(%rdx), %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123, 8192(%rdx), %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x8a,0x00,0x20,0x00,0x00,0x7b]
|
||||
vfixupimmpd $0x7b, 8192(%rdx), %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123, -8192(%rdx), %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x4a,0x80,0x7b]
|
||||
vfixupimmpd $0x7b, -8192(%rdx), %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123, -8256(%rdx), %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
|
||||
vfixupimmpd $0x7b, -8256(%rdx), %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123, 1016(%rdx){1to8}, %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x4a,0x7f,0x7b]
|
||||
vfixupimmpd $0x7b, 1016(%rdx){1to8}, %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123, 1024(%rdx){1to8}, %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x8a,0x00,0x04,0x00,0x00,0x7b]
|
||||
vfixupimmpd $0x7b, 1024(%rdx){1to8}, %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123, -1024(%rdx){1to8}, %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x4a,0x80,0x7b]
|
||||
vfixupimmpd $0x7b, -1024(%rdx){1to8}, %zmm21, %zmm9
|
||||
|
||||
// CHECK: vfixupimmpd $123, -1032(%rdx){1to8}, %zmm21, %zmm9
|
||||
// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x8a,0xf8,0xfb,0xff,0xff,0x7b]
|
||||
vfixupimmpd $0x7b, -1032(%rdx){1to8}, %zmm21, %zmm9
|
||||
|
|
|
@ -10188,6 +10188,246 @@ vaddpd {rz-sae}, %zmm2, %zmm1, %zmm1
|
|||
// CHECK: encoding: [0x62,0xe2,0x7d,0x28,0x5a,0x9a,0xf0,0xf7,0xff,0xff]
|
||||
vbroadcasti32x4 -2064(%rdx), %ymm19
|
||||
|
||||
// CHECK: vfixupimmps $171, %xmm17, %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x23,0x75,0x00,0x54,0xc9,0xab]
|
||||
vfixupimmps $0xab, %xmm17, %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $171, %xmm17, %xmm17, %xmm25 {%k3}
|
||||
// CHECK: encoding: [0x62,0x23,0x75,0x03,0x54,0xc9,0xab]
|
||||
vfixupimmps $0xab, %xmm17, %xmm17, %xmm25 {%k3}
|
||||
|
||||
// CHECK: vfixupimmps $171, %xmm17, %xmm17, %xmm25 {%k3} {z}
|
||||
// CHECK: encoding: [0x62,0x23,0x75,0x83,0x54,0xc9,0xab]
|
||||
vfixupimmps $0xab, %xmm17, %xmm17, %xmm25 {%k3} {z}
|
||||
|
||||
// CHECK: vfixupimmps $123, %xmm17, %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x23,0x75,0x00,0x54,0xc9,0x7b]
|
||||
vfixupimmps $0x7b, %xmm17, %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $123, (%rcx), %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x63,0x75,0x00,0x54,0x09,0x7b]
|
||||
vfixupimmps $0x7b, (%rcx), %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $123, 291(%rax,%r14,8), %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x23,0x75,0x00,0x54,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b]
|
||||
vfixupimmps $0x7b, 291(%rax,%r14,8), %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $123, (%rcx){1to4}, %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x63,0x75,0x10,0x54,0x09,0x7b]
|
||||
vfixupimmps $0x7b, (%rcx){1to4}, %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $123, 2032(%rdx), %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x63,0x75,0x00,0x54,0x4a,0x7f,0x7b]
|
||||
vfixupimmps $0x7b, 2032(%rdx), %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $123, 2048(%rdx), %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x63,0x75,0x00,0x54,0x8a,0x00,0x08,0x00,0x00,0x7b]
|
||||
vfixupimmps $0x7b, 2048(%rdx), %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $123, -2048(%rdx), %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x63,0x75,0x00,0x54,0x4a,0x80,0x7b]
|
||||
vfixupimmps $0x7b, -2048(%rdx), %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $123, -2064(%rdx), %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x63,0x75,0x00,0x54,0x8a,0xf0,0xf7,0xff,0xff,0x7b]
|
||||
vfixupimmps $0x7b, -2064(%rdx), %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $123, 508(%rdx){1to4}, %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x63,0x75,0x10,0x54,0x4a,0x7f,0x7b]
|
||||
vfixupimmps $0x7b, 508(%rdx){1to4}, %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $123, 512(%rdx){1to4}, %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x63,0x75,0x10,0x54,0x8a,0x00,0x02,0x00,0x00,0x7b]
|
||||
vfixupimmps $0x7b, 512(%rdx){1to4}, %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $123, -512(%rdx){1to4}, %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x63,0x75,0x10,0x54,0x4a,0x80,0x7b]
|
||||
vfixupimmps $0x7b, -512(%rdx){1to4}, %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $123, -516(%rdx){1to4}, %xmm17, %xmm25
|
||||
// CHECK: encoding: [0x62,0x63,0x75,0x10,0x54,0x8a,0xfc,0xfd,0xff,0xff,0x7b]
|
||||
vfixupimmps $0x7b, -516(%rdx){1to4}, %xmm17, %xmm25
|
||||
|
||||
// CHECK: vfixupimmps $171, %ymm28, %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x03,0x55,0x20,0x54,0xf4,0xab]
|
||||
vfixupimmps $0xab, %ymm28, %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmps $171, %ymm28, %ymm21, %ymm30 {%k4}
|
||||
// CHECK: encoding: [0x62,0x03,0x55,0x24,0x54,0xf4,0xab]
|
||||
vfixupimmps $0xab, %ymm28, %ymm21, %ymm30 {%k4}
|
||||
|
||||
// CHECK: vfixupimmps $171, %ymm28, %ymm21, %ymm30 {%k4} {z}
|
||||
// CHECK: encoding: [0x62,0x03,0x55,0xa4,0x54,0xf4,0xab]
|
||||
vfixupimmps $0xab, %ymm28, %ymm21, %ymm30 {%k4} {z}
|
||||
|
||||
// CHECK: vfixupimmps $123, %ymm28, %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x03,0x55,0x20,0x54,0xf4,0x7b]
|
||||
vfixupimmps $0x7b, %ymm28, %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmps $123, (%rcx), %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x63,0x55,0x20,0x54,0x31,0x7b]
|
||||
vfixupimmps $0x7b, (%rcx), %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmps $123, 291(%rax,%r14,8), %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x23,0x55,0x20,0x54,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b]
|
||||
vfixupimmps $0x7b, 291(%rax,%r14,8), %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmps $123, (%rcx){1to8}, %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x63,0x55,0x30,0x54,0x31,0x7b]
|
||||
vfixupimmps $0x7b, (%rcx){1to8}, %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmps $123, 4064(%rdx), %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x63,0x55,0x20,0x54,0x72,0x7f,0x7b]
|
||||
vfixupimmps $0x7b, 4064(%rdx), %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmps $123, 4096(%rdx), %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x63,0x55,0x20,0x54,0xb2,0x00,0x10,0x00,0x00,0x7b]
|
||||
vfixupimmps $0x7b, 4096(%rdx), %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmps $123, -4096(%rdx), %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x63,0x55,0x20,0x54,0x72,0x80,0x7b]
|
||||
vfixupimmps $0x7b, -4096(%rdx), %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmps $123, -4128(%rdx), %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x63,0x55,0x20,0x54,0xb2,0xe0,0xef,0xff,0xff,0x7b]
|
||||
vfixupimmps $0x7b, -4128(%rdx), %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmps $123, 508(%rdx){1to8}, %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x63,0x55,0x30,0x54,0x72,0x7f,0x7b]
|
||||
vfixupimmps $0x7b, 508(%rdx){1to8}, %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmps $123, 512(%rdx){1to8}, %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x63,0x55,0x30,0x54,0xb2,0x00,0x02,0x00,0x00,0x7b]
|
||||
vfixupimmps $0x7b, 512(%rdx){1to8}, %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmps $123, -512(%rdx){1to8}, %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x63,0x55,0x30,0x54,0x72,0x80,0x7b]
|
||||
vfixupimmps $0x7b, -512(%rdx){1to8}, %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmps $123, -516(%rdx){1to8}, %ymm21, %ymm30
|
||||
// CHECK: encoding: [0x62,0x63,0x55,0x30,0x54,0xb2,0xfc,0xfd,0xff,0xff,0x7b]
|
||||
vfixupimmps $0x7b, -516(%rdx){1to8}, %ymm21, %ymm30
|
||||
|
||||
// CHECK: vfixupimmpd $171, %xmm25, %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x03,0xed,0x00,0x54,0xc1,0xab]
|
||||
vfixupimmpd $0xab, %xmm25, %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $171, %xmm25, %xmm18, %xmm24 {%k3}
|
||||
// CHECK: encoding: [0x62,0x03,0xed,0x03,0x54,0xc1,0xab]
|
||||
vfixupimmpd $0xab, %xmm25, %xmm18, %xmm24 {%k3}
|
||||
|
||||
// CHECK: vfixupimmpd $171, %xmm25, %xmm18, %xmm24 {%k3} {z}
|
||||
// CHECK: encoding: [0x62,0x03,0xed,0x83,0x54,0xc1,0xab]
|
||||
vfixupimmpd $0xab, %xmm25, %xmm18, %xmm24 {%k3} {z}
|
||||
|
||||
// CHECK: vfixupimmpd $123, %xmm25, %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x03,0xed,0x00,0x54,0xc1,0x7b]
|
||||
vfixupimmpd $0x7b, %xmm25, %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $123, (%rcx), %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x63,0xed,0x00,0x54,0x01,0x7b]
|
||||
vfixupimmpd $0x7b, (%rcx), %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $123, 291(%rax,%r14,8), %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x23,0xed,0x00,0x54,0x84,0xf0,0x23,0x01,0x00,0x00,0x7b]
|
||||
vfixupimmpd $0x7b, 291(%rax,%r14,8), %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $123, (%rcx){1to2}, %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x63,0xed,0x10,0x54,0x01,0x7b]
|
||||
vfixupimmpd $0x7b, (%rcx){1to2}, %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $123, 2032(%rdx), %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x63,0xed,0x00,0x54,0x42,0x7f,0x7b]
|
||||
vfixupimmpd $0x7b, 2032(%rdx), %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $123, 2048(%rdx), %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x63,0xed,0x00,0x54,0x82,0x00,0x08,0x00,0x00,0x7b]
|
||||
vfixupimmpd $0x7b, 2048(%rdx), %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $123, -2048(%rdx), %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x63,0xed,0x00,0x54,0x42,0x80,0x7b]
|
||||
vfixupimmpd $0x7b, -2048(%rdx), %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $123, -2064(%rdx), %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x63,0xed,0x00,0x54,0x82,0xf0,0xf7,0xff,0xff,0x7b]
|
||||
vfixupimmpd $0x7b, -2064(%rdx), %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $123, 1016(%rdx){1to2}, %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x63,0xed,0x10,0x54,0x42,0x7f,0x7b]
|
||||
vfixupimmpd $0x7b, 1016(%rdx){1to2}, %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $123, 1024(%rdx){1to2}, %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x63,0xed,0x10,0x54,0x82,0x00,0x04,0x00,0x00,0x7b]
|
||||
vfixupimmpd $0x7b, 1024(%rdx){1to2}, %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $123, -1024(%rdx){1to2}, %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x63,0xed,0x10,0x54,0x42,0x80,0x7b]
|
||||
vfixupimmpd $0x7b, -1024(%rdx){1to2}, %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $123, -1032(%rdx){1to2}, %xmm18, %xmm24
|
||||
// CHECK: encoding: [0x62,0x63,0xed,0x10,0x54,0x82,0xf8,0xfb,0xff,0xff,0x7b]
|
||||
vfixupimmpd $0x7b, -1032(%rdx){1to2}, %xmm18, %xmm24
|
||||
|
||||
// CHECK: vfixupimmpd $171, %ymm28, %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0x83,0xcd,0x20,0x54,0xd4,0xab]
|
||||
vfixupimmpd $0xab, %ymm28, %ymm22, %ymm18
|
||||
|
||||
// CHECK: vfixupimmpd $171, %ymm28, %ymm22, %ymm18 {%k2}
|
||||
// CHECK: encoding: [0x62,0x83,0xcd,0x22,0x54,0xd4,0xab]
|
||||
vfixupimmpd $0xab, %ymm28, %ymm22, %ymm18 {%k2}
|
||||
|
||||
// CHECK: vfixupimmpd $171, %ymm28, %ymm22, %ymm18 {%k2} {z}
|
||||
// CHECK: encoding: [0x62,0x83,0xcd,0xa2,0x54,0xd4,0xab]
|
||||
vfixupimmpd $0xab, %ymm28, %ymm22, %ymm18 {%k2} {z}
|
||||
|
||||
// CHECK: vfixupimmpd $123, %ymm28, %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0x83,0xcd,0x20,0x54,0xd4,0x7b]
|
||||
vfixupimmpd $0x7b, %ymm28, %ymm22, %ymm18
|
||||
|
||||
// CHECK: vfixupimmpd $123, (%rcx), %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0xe3,0xcd,0x20,0x54,0x11,0x7b]
|
||||
vfixupimmpd $0x7b, (%rcx), %ymm22, %ymm18
|
||||
|
||||
// CHECK: vfixupimmpd $123, 291(%rax,%r14,8), %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0xa3,0xcd,0x20,0x54,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b]
|
||||
vfixupimmpd $0x7b, 291(%rax,%r14,8), %ymm22, %ymm18
|
||||
|
||||
// CHECK: vfixupimmpd $123, (%rcx){1to4}, %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0xe3,0xcd,0x30,0x54,0x11,0x7b]
|
||||
vfixupimmpd $0x7b, (%rcx){1to4}, %ymm22, %ymm18
|
||||
|
||||
// CHECK: vfixupimmpd $123, 4064(%rdx), %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0xe3,0xcd,0x20,0x54,0x52,0x7f,0x7b]
|
||||
vfixupimmpd $0x7b, 4064(%rdx), %ymm22, %ymm18
|
||||
|
||||
// CHECK: vfixupimmpd $123, 4096(%rdx), %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0xe3,0xcd,0x20,0x54,0x92,0x00,0x10,0x00,0x00,0x7b]
|
||||
vfixupimmpd $0x7b, 4096(%rdx), %ymm22, %ymm18
|
||||
|
||||
// CHECK: vfixupimmpd $123, -4096(%rdx), %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0xe3,0xcd,0x20,0x54,0x52,0x80,0x7b]
|
||||
vfixupimmpd $0x7b, -4096(%rdx), %ymm22, %ymm18
|
||||
|
||||
// CHECK: vfixupimmpd $123, -4128(%rdx), %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0xe3,0xcd,0x20,0x54,0x92,0xe0,0xef,0xff,0xff,0x7b]
|
||||
vfixupimmpd $0x7b, -4128(%rdx), %ymm22, %ymm18
|
||||
|
||||
// CHECK: vfixupimmpd $123, 1016(%rdx){1to4}, %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0xe3,0xcd,0x30,0x54,0x52,0x7f,0x7b]
|
||||
vfixupimmpd $0x7b, 1016(%rdx){1to4}, %ymm22, %ymm18
|
||||
|
||||
// CHECK: vfixupimmpd $123, 1024(%rdx){1to4}, %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0xe3,0xcd,0x30,0x54,0x92,0x00,0x04,0x00,0x00,0x7b]
|
||||
vfixupimmpd $0x7b, 1024(%rdx){1to4}, %ymm22, %ymm18
|
||||
|
||||
// CHECK: vfixupimmpd $123, -1024(%rdx){1to4}, %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0xe3,0xcd,0x30,0x54,0x52,0x80,0x7b]
|
||||
vfixupimmpd $0x7b, -1024(%rdx){1to4}, %ymm22, %ymm18
|
||||
|
||||
// CHECK: vfixupimmpd $123, -1032(%rdx){1to4}, %ymm22, %ymm18
|
||||
// CHECK: encoding: [0x62,0xe3,0xcd,0x30,0x54,0x92,0xf8,0xfb,0xff,0xff,0x7b]
|
||||
vfixupimmpd $0x7b, -1032(%rdx){1to4}, %ymm22, %ymm18
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue