mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-27 21:50:40 +00:00
[X86][AVX2] Passing the appropriate memory operand class to VPMADDWD instruction.
Replacing the memory operand in the ymm version of VPMADDWD from i128mem to i256mem. Differential Revision: https://reviews.llvm.org/D28024 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@290333 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4bc31e9601
commit
64a0af2928
@ -3952,7 +3952,7 @@ defm VPMADDWD : PDI_binop_rm2<0xF5, "vpmaddwd", X86vpmaddwd, v4i32, v8i16, VR128
|
||||
|
||||
let Predicates = [HasAVX2, NoVLX_Or_NoBWI] in
|
||||
defm VPMADDWDY : PDI_binop_rm2<0xF5, "vpmaddwd", X86vpmaddwd, v8i32, v16i16,
|
||||
VR256, loadv4i64, i128mem, SSE_PMADD,
|
||||
VR256, loadv4i64, i256mem, SSE_PMADD,
|
||||
0>, VEX_4V, VEX_L;
|
||||
let Constraints = "$src1 = $dst" in
|
||||
defm PMADDWD : PDI_binop_rm2<0xF5, "pmaddwd", X86vpmaddwd, v4i32, v8i16, VR128,
|
||||
|
@ -159,3 +159,59 @@
|
||||
// CHECK: vcvttpd2dq xmm0, ymmword ptr [rax]
|
||||
// CHECK: encoding: [0xc5,0xfd,0xe6,0x00]
|
||||
vcvttpd2dqy xmm0, ymmword ptr [rax]
|
||||
|
||||
// CHECK: vpmaddwd xmm1, xmm2, xmm3
|
||||
// CHECK: encoding: [0xc5,0xe9,0xf5,0xcb]
|
||||
vpmaddwd xmm1, xmm2, xmm3
|
||||
|
||||
// CHECK: vpmaddwd xmm1, xmm2, xmmword ptr [rcx]
|
||||
// CHECK: encoding: [0xc5,0xe9,0xf5,0x09]
|
||||
vpmaddwd xmm1, xmm2, xmmword ptr [rcx]
|
||||
|
||||
// CHECK: vpmaddwd xmm1, xmm2, xmmword ptr [rsp - 4]
|
||||
// CHECK: encoding: [0xc5,0xe9,0xf5,0x4c,0x24,0xfc]
|
||||
vpmaddwd xmm1, xmm2, xmmword ptr [rsp - 4]
|
||||
|
||||
// CHECK: vpmaddwd xmm1, xmm2, xmmword ptr [rsp + 4]
|
||||
// CHECK: encoding: [0xc5,0xe9,0xf5,0x4c,0x24,0x04]
|
||||
vpmaddwd xmm1, xmm2, xmmword ptr [rsp + 4]
|
||||
|
||||
// CHECK: vpmaddwd xmm1, xmm2, xmmword ptr [rcx + 8*r14 + 268435456]
|
||||
// CHECK: encoding: [0xc4,0xa1,0x69,0xf5,0x8c,0xf1,0x00,0x00,0x00,0x10]
|
||||
vpmaddwd xmm1, xmm2, xmmword ptr [rcx + 8*r14 + 268435456]
|
||||
|
||||
// CHECK: vpmaddwd xmm1, xmm2, xmmword ptr [rcx + 8*r14 - 536870912]
|
||||
// CHECK: encoding: [0xc4,0xa1,0x69,0xf5,0x8c,0xf1,0x00,0x00,0x00,0xe0]
|
||||
vpmaddwd xmm1, xmm2, xmmword ptr [rcx + 8*r14 - 536870912]
|
||||
|
||||
// CHECK: vpmaddwd xmm1, xmm2, xmmword ptr [rcx + 8*r14 - 536870910]
|
||||
// CHECK: encoding: [0xc4,0xa1,0x69,0xf5,0x8c,0xf1,0x02,0x00,0x00,0xe0]
|
||||
vpmaddwd xmm1, xmm2, xmmword ptr [rcx + 8*r14 - 536870910]
|
||||
|
||||
// CHECK: vpmaddwd ymm1, ymm2, ymm3
|
||||
// CHECK: encoding: [0xc5,0xed,0xf5,0xcb]
|
||||
vpmaddwd ymm1, ymm2, ymm3
|
||||
|
||||
// CHECK: vpmaddwd ymm1, ymm2, ymmword ptr [rcx]
|
||||
// CHECK: encoding: [0xc5,0xed,0xf5,0x09]
|
||||
vpmaddwd ymm1, ymm2, ymmword ptr [rcx]
|
||||
|
||||
// CHECK: vpmaddwd ymm1, ymm2, ymmword ptr [rsp - 4]
|
||||
// CHECK: encoding: [0xc5,0xed,0xf5,0x4c,0x24,0xfc]
|
||||
vpmaddwd ymm1, ymm2, ymmword ptr [rsp - 4]
|
||||
|
||||
// CHECK: vpmaddwd ymm1, ymm2, ymmword ptr [rsp + 4]
|
||||
// CHECK: encoding: [0xc5,0xed,0xf5,0x4c,0x24,0x04]
|
||||
vpmaddwd ymm1, ymm2, ymmword ptr [rsp + 4]
|
||||
|
||||
// CHECK: vpmaddwd ymm1, ymm2, ymmword ptr [rcx + 8*r14 + 268435456]
|
||||
// CHECK: encoding: [0xc4,0xa1,0x6d,0xf5,0x8c,0xf1,0x00,0x00,0x00,0x10]
|
||||
vpmaddwd ymm1, ymm2, ymmword ptr [rcx + 8*r14 + 268435456]
|
||||
|
||||
// CHECK: vpmaddwd ymm1, ymm2, ymmword ptr [rcx + 8*r14 - 536870912]
|
||||
// CHECK: encoding: [0xc4,0xa1,0x6d,0xf5,0x8c,0xf1,0x00,0x00,0x00,0xe0]
|
||||
vpmaddwd ymm1, ymm2, ymmword ptr [rcx + 8*r14 - 536870912]
|
||||
|
||||
// CHECK: vpmaddwd ymm1, ymm2, ymmword ptr [rcx + 8*r14 - 536870910]
|
||||
// CHECK: encoding: [0xc4,0xa1,0x6d,0xf5,0x8c,0xf1,0x02,0x00,0x00,0xe0]
|
||||
vpmaddwd ymm1, ymm2, ymmword ptr [rcx + 8*r14 - 536870910]
|
||||
|
@ -4245,3 +4245,61 @@ _foo2:
|
||||
// CHECK: vmovsd %xmm8, %xmm0, %xmm0
|
||||
// CHECK: encoding: [0xc5,0x7b,0x11,0xc0]
|
||||
vmovsd %xmm8, %xmm0, %xmm0
|
||||
|
||||
// CHECK: vpmaddwd %xmm3, %xmm2, %xmm1
|
||||
// CHECK: encoding: [0xc5,0xe9,0xf5,0xcb]
|
||||
vpmaddwd %xmm3, %xmm2, %xmm1
|
||||
|
||||
// CHECK: vpmaddwd (%rcx), %xmm2, %xmm1
|
||||
// CHECK: encoding: [0xc5,0xe9,0xf5,0x09]
|
||||
vpmaddwd (%rcx), %xmm2, %xmm1
|
||||
|
||||
// CHECK: vpmaddwd -4(%rsp), %xmm2, %xmm1
|
||||
// CHECK: encoding: [0xc5,0xe9,0xf5,0x4c,0x24,0xfc]
|
||||
vpmaddwd -4(%rsp), %xmm2, %xmm1
|
||||
|
||||
// CHECK: vpmaddwd 4(%rsp), %xmm2, %xmm1
|
||||
// CHECK: encoding: [0xc5,0xe9,0xf5,0x4c,0x24,0x04]
|
||||
vpmaddwd 4(%rsp), %xmm2, %xmm1
|
||||
|
||||
// CHECK: vpmaddwd 268435456(%rcx,%r14,8), %xmm2, %xmm1
|
||||
// CHECK: encoding: [0xc4,0xa1,0x69,0xf5,0x8c,0xf1,0x00,0x00,0x00,0x10]
|
||||
vpmaddwd 268435456(%rcx,%r14,8), %xmm2, %xmm1
|
||||
|
||||
// CHECK: vpmaddwd -536870912(%rcx,%r14,8), %xmm2, %xmm1
|
||||
// CHECK: encoding: [0xc4,0xa1,0x69,0xf5,0x8c,0xf1,0x00,0x00,0x00,0xe0]
|
||||
vpmaddwd -536870912(%rcx,%r14,8), %xmm2, %xmm1
|
||||
|
||||
// CHECK: vpmaddwd -536870910(%rcx,%r14,8), %xmm2, %xmm1
|
||||
// CHECK: encoding: [0xc4,0xa1,0x69,0xf5,0x8c,0xf1,0x02,0x00,0x00,0xe0]
|
||||
vpmaddwd -536870910(%rcx,%r14,8), %xmm2, %xmm1
|
||||
|
||||
// CHECK: vpmaddwd %ymm3, %ymm2, %ymm1
|
||||
// CHECK: encoding: [0xc5,0xed,0xf5,0xcb]
|
||||
vpmaddwd %ymm3, %ymm2, %ymm1
|
||||
|
||||
// CHECK: vpmaddwd (%rcx), %ymm2, %ymm1
|
||||
// CHECK: encoding: [0xc5,0xed,0xf5,0x09]
|
||||
vpmaddwd (%rcx), %ymm2, %ymm1
|
||||
|
||||
// CHECK: vpmaddwd -4(%rsp), %ymm2, %ymm1
|
||||
// CHECK: encoding: [0xc5,0xed,0xf5,0x4c,0x24,0xfc]
|
||||
vpmaddwd -4(%rsp), %ymm2, %ymm1
|
||||
|
||||
// CHECK: vpmaddwd 4(%rsp), %ymm2, %ymm1
|
||||
// CHECK: encoding: [0xc5,0xed,0xf5,0x4c,0x24,0x04]
|
||||
vpmaddwd 4(%rsp), %ymm2, %ymm1
|
||||
|
||||
// CHECK: vpmaddwd 268435456(%rcx,%r14,8), %ymm2, %ymm1
|
||||
// CHECK: encoding: [0xc4,0xa1,0x6d,0xf5,0x8c,0xf1,0x00,0x00,0x00,0x10]
|
||||
vpmaddwd 268435456(%rcx,%r14,8), %ymm2, %ymm1
|
||||
|
||||
// CHECK: vpmaddwd -536870912(%rcx,%r14,8), %ymm2, %ymm1
|
||||
// CHECK: encoding: [0xc4,0xa1,0x6d,0xf5,0x8c,0xf1,0x00,0x00,0x00,0xe0]
|
||||
vpmaddwd -536870912(%rcx,%r14,8), %ymm2, %ymm1
|
||||
|
||||
// CHECK: vpmaddwd -536870910(%rcx,%r14,8), %ymm2, %ymm1
|
||||
// CHECK: encoding: [0xc4,0xa1,0x6d,0xf5,0x8c,0xf1,0x02,0x00,0x00,0xe0]
|
||||
vpmaddwd -536870910(%rcx,%r14,8), %ymm2, %ymm1
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user