mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
6411ac4a0d
The 128/256 bit version of these instructions require an 'x' or 'y' suffix to disambiguate the memory form in att syntax. We were allowing the same suffix in intel syntax, but it appears gas does not do that. gas does allow the 'x' and 'y' suffix on register and broadcast forms even though its not needed. We were allowing it on unmasked register form, but not on masked versions or on masked or unmasked broadcast form. While there fix some test coverage holes so they can be extended with the 'x' and 'y' suffix tests. llvm-svn: 359418
170 lines
6.8 KiB
ArmAsm
170 lines
6.8 KiB
ArmAsm
// RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s
|
|
|
|
// CHECK: vgatherdpd xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
|
|
// CHECK: encoding: [0xc4,0xe2,0xf9,0x92,0x14,0x4f]
|
|
vgatherdpd xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
|
|
|
|
// CHECK: vgatherqpd xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
|
|
// CHECK: encoding: [0xc4,0xe2,0xf9,0x93,0x14,0x4f]
|
|
vgatherqpd xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
|
|
|
|
// CHECK: vgatherdpd ymm2, ymmword ptr [rdi + 2*xmm1], ymm0
|
|
// CHECK: encoding: [0xc4,0xe2,0xfd,0x92,0x14,0x4f]
|
|
vgatherdpd ymm2, ymmword ptr [rdi + 2*xmm1], ymm0
|
|
|
|
// CHECK: vgatherqpd ymm2, ymmword ptr [rdi + 2*ymm1], ymm0
|
|
// CHECK: encoding: [0xc4,0xe2,0xfd,0x93,0x14,0x4f]
|
|
vgatherqpd ymm2, ymmword ptr [rdi + 2*ymm1], ymm0
|
|
|
|
// CHECK: vgatherdps xmm10, xmmword ptr [r15 + 2*xmm9], xmm8
|
|
// CHECK: encoding: [0xc4,0x02,0x39,0x92,0x14,0x4f]
|
|
vgatherdps xmm10, xmmword ptr [r15 + 2*xmm9], xmm8
|
|
|
|
// CHECK: vgatherqps xmm10, qword ptr [r15 + 2*xmm9], xmm8
|
|
// CHECK: encoding: [0xc4,0x02,0x39,0x93,0x14,0x4f]
|
|
vgatherqps xmm10, qword ptr [r15 + 2*xmm9], xmm8
|
|
|
|
// CHECK: vgatherdps ymm10, ymmword ptr [r15 + 2*ymm9], ymm8
|
|
// CHECK: encoding: [0xc4,0x02,0x3d,0x92,0x14,0x4f]
|
|
vgatherdps ymm10, ymmword ptr [r15 + 2*ymm9], ymm8
|
|
|
|
// CHECK: vgatherqps xmm10, xmmword ptr [r15 + 2*ymm9], xmm8
|
|
// CHECK: encoding: [0xc4,0x02,0x3d,0x93,0x14,0x4f]
|
|
vgatherqps xmm10, xmmword ptr [r15 + 2*ymm9], xmm8
|
|
|
|
// CHECK: vpgatherdq xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
|
|
// CHECK: encoding: [0xc4,0xe2,0xf9,0x90,0x14,0x4f]
|
|
vpgatherdq xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
|
|
|
|
// CHECK: vpgatherqq xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
|
|
// CHECK: encoding: [0xc4,0xe2,0xf9,0x91,0x14,0x4f]
|
|
vpgatherqq xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
|
|
|
|
// CHECK: vpgatherdq ymm2, ymmword ptr [rdi + 2*xmm1], ymm0
|
|
// CHECK: encoding: [0xc4,0xe2,0xfd,0x90,0x14,0x4f]
|
|
vpgatherdq ymm2, ymmword ptr [rdi + 2*xmm1], ymm0
|
|
|
|
// CHECK: vpgatherqq ymm2, ymmword ptr [rdi + 2*ymm1], ymm0
|
|
// CHECK: encoding: [0xc4,0xe2,0xfd,0x91,0x14,0x4f]
|
|
vpgatherqq ymm2, ymmword ptr [rdi + 2*ymm1], ymm0
|
|
|
|
// CHECK: vpgatherdd xmm10, xmmword ptr [r15 + 2*xmm9], xmm8
|
|
// CHECK: encoding: [0xc4,0x02,0x39,0x90,0x14,0x4f]
|
|
vpgatherdd xmm10, xmmword ptr [r15 + 2*xmm9], xmm8
|
|
|
|
// CHECK: vpgatherqd xmm10, qword ptr [r15 + 2*xmm9], xmm8
|
|
// CHECK: encoding: [0xc4,0x02,0x39,0x91,0x14,0x4f]
|
|
vpgatherqd xmm10, qword ptr [r15 + 2*xmm9], xmm8
|
|
|
|
// CHECK: vpgatherdd ymm10, ymmword ptr [r15 + 2*ymm9], ymm8
|
|
// CHECK: encoding: [0xc4,0x02,0x3d,0x90,0x14,0x4f]
|
|
vpgatherdd ymm10, ymmword ptr [r15 + 2*ymm9], ymm8
|
|
|
|
// CHECK: vpgatherqd xmm10, xmmword ptr [r15 + 2*ymm9], xmm8
|
|
// CHECK: encoding: [0xc4,0x02,0x3d,0x91,0x14,0x4f]
|
|
vpgatherqd xmm10, xmmword ptr [r15 + 2*ymm9], xmm8
|
|
|
|
// CHECK: vcvtpd2ps xmm0, xmm15
|
|
// CHECK: encoding: [0xc4,0xc1,0x79,0x5a,0xc7]
|
|
vcvtpd2ps xmm0, xmm15
|
|
|
|
// CHECK: vcvtpd2ps xmm0, xmmword ptr [rax]
|
|
// CHECK: encoding: [0xc5,0xf9,0x5a,0x00]
|
|
vcvtpd2ps xmm0, xmmword ptr [rax]
|
|
|
|
// CHECK: vcvtpd2ps xmm0, ymm15
|
|
// CHECK: encoding: [0xc4,0xc1,0x7d,0x5a,0xc7]
|
|
vcvtpd2ps xmm0, ymm15
|
|
|
|
// CHECK: vcvtpd2ps xmm0, ymmword ptr [rax]
|
|
// CHECK: encoding: [0xc5,0xfd,0x5a,0x00]
|
|
vcvtpd2ps xmm0, ymmword ptr [rax]
|
|
|
|
// CHECK: vcvtpd2dq xmm0, xmm15
|
|
// CHECK: encoding: [0xc4,0xc1,0x7b,0xe6,0xc7]
|
|
vcvtpd2dq xmm0, xmm15
|
|
|
|
// CHECK: vcvtpd2dq xmm0, xmmword ptr [rax]
|
|
// CHECK: encoding: [0xc5,0xfb,0xe6,0x00]
|
|
vcvtpd2dq xmm0, xmmword ptr [rax]
|
|
|
|
// CHECK: vcvtpd2dq xmm0, ymm15
|
|
// CHECK: encoding: [0xc4,0xc1,0x7f,0xe6,0xc7]
|
|
vcvtpd2dq xmm0, ymm15
|
|
|
|
// CHECK: vcvtpd2dq xmm0, ymmword ptr [rax]
|
|
// CHECK: encoding: [0xc5,0xff,0xe6,0x00]
|
|
vcvtpd2dq xmm0, ymmword ptr [rax]
|
|
|
|
// CHECK: vcvttpd2dq xmm0, xmm15
|
|
// CHECK: encoding: [0xc4,0xc1,0x79,0xe6,0xc7]
|
|
vcvttpd2dq xmm0, xmm15
|
|
|
|
// CHECK: vcvttpd2dq xmm0, xmmword ptr [rax]
|
|
// CHECK: encoding: [0xc5,0xf9,0xe6,0x00]
|
|
vcvttpd2dq xmm0, xmmword ptr [rax]
|
|
|
|
// CHECK: vcvttpd2dq xmm0, ymm15
|
|
// CHECK: encoding: [0xc4,0xc1,0x7d,0xe6,0xc7]
|
|
vcvttpd2dq xmm0, ymm15
|
|
|
|
// CHECK: vcvttpd2dq xmm0, ymmword ptr [rax]
|
|
// CHECK: encoding: [0xc5,0xfd,0xe6,0x00]
|
|
vcvttpd2dq 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]
|