x86/Intel: correct AVX512F scatter insn element sizes

I clearly screwed up in 6ff00b5e12 ("x86/Intel: correct permitted
operand sizes for AVX512 scatter/gather") giving all AVX512F scatter
insns Dword element size. Update testcases (also their gather parts),
utilizing that there previously were two identical lines each (for no
apparent reason).
This commit is contained in:
Jan Beulich
2022-07-21 12:32:04 +02:00
parent e4e340a3ff
commit 987e8a90fa
4 changed files with 40 additions and 40 deletions
+16 -16
View File
@@ -11109,22 +11109,22 @@ _start:
vfnmsub231ss xmm6{k7}, xmm5, DWORD PTR [edx-516] # AVX512F
vgatherdpd zmm6{k1}, [ebp+ymm7*8-123] # AVX512F
vgatherdpd zmm6{k1}, [ebp+ymm7*8-123] # AVX512F
vgatherdpd zmm6{k1}, qword ptr [ebp+ymm7*8-123] # AVX512F
vgatherdpd zmm6{k1}, [eax+ymm7+256] # AVX512F
vgatherdpd zmm6{k1}, [ecx+ymm7*4+1024] # AVX512F
vgatherdps zmm6{k1}, [ebp+zmm7*8-123] # AVX512F
vgatherdps zmm6{k1}, [ebp+zmm7*8-123] # AVX512F
vgatherdps zmm6{k1}, dword ptr [ebp+zmm7*8-123] # AVX512F
vgatherdps zmm6{k1}, [eax+zmm7+256] # AVX512F
vgatherdps zmm6{k1}, [ecx+zmm7*4+1024] # AVX512F
vgatherqpd zmm6{k1}, [ebp+zmm7*8-123] # AVX512F
vgatherqpd zmm6{k1}, [ebp+zmm7*8-123] # AVX512F
vgatherqpd zmm6{k1}, qword ptr [ebp+zmm7*8-123] # AVX512F
vgatherqpd zmm6{k1}, [eax+zmm7+256] # AVX512F
vgatherqpd zmm6{k1}, [ecx+zmm7*4+1024] # AVX512F
vgatherqps ymm6{k1}, [ebp+zmm7*8-123] # AVX512F
vgatherqps ymm6{k1}, [ebp+zmm7*8-123] # AVX512F
vgatherqps ymm6{k1}, dword ptr [ebp+zmm7*8-123] # AVX512F
vgatherqps ymm6{k1}, [eax+zmm7+256] # AVX512F
vgatherqps ymm6{k1}, [ecx+zmm7*4+1024] # AVX512F
@@ -12401,22 +12401,22 @@ _start:
vpexpandq zmm6{k7}{z}, zmm5 # AVX512F
vpgatherdd zmm6{k1}, [ebp+zmm7*8-123] # AVX512F
vpgatherdd zmm6{k1}, [ebp+zmm7*8-123] # AVX512F
vpgatherdd zmm6{k1}, dword ptr [ebp+zmm7*8-123] # AVX512F
vpgatherdd zmm6{k1}, [eax+zmm7+256] # AVX512F
vpgatherdd zmm6{k1}, [ecx+zmm7*4+1024] # AVX512F
vpgatherdq zmm6{k1}, [ebp+ymm7*8-123] # AVX512F
vpgatherdq zmm6{k1}, [ebp+ymm7*8-123] # AVX512F
vpgatherdq zmm6{k1}, qword ptr [ebp+ymm7*8-123] # AVX512F
vpgatherdq zmm6{k1}, [eax+ymm7+256] # AVX512F
vpgatherdq zmm6{k1}, [ecx+ymm7*4+1024] # AVX512F
vpgatherqd ymm6{k1}, [ebp+zmm7*8-123] # AVX512F
vpgatherqd ymm6{k1}, [ebp+zmm7*8-123] # AVX512F
vpgatherqd ymm6{k1}, dword ptr [ebp+zmm7*8-123] # AVX512F
vpgatherqd ymm6{k1}, [eax+zmm7+256] # AVX512F
vpgatherqd ymm6{k1}, [ecx+zmm7*4+1024] # AVX512F
vpgatherqq zmm6{k1}, [ebp+zmm7*8-123] # AVX512F
vpgatherqq zmm6{k1}, [ebp+zmm7*8-123] # AVX512F
vpgatherqq zmm6{k1}, qword ptr [ebp+zmm7*8-123] # AVX512F
vpgatherqq zmm6{k1}, [eax+zmm7+256] # AVX512F
vpgatherqq zmm6{k1}, [ecx+zmm7*4+1024] # AVX512F
@@ -12706,22 +12706,22 @@ _start:
vporq zmm6, zmm5, qword bcst [edx-1032] # AVX512F
vpscatterdd [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F
vpscatterdd [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F
vpscatterdd dword ptr [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F
vpscatterdd [eax+zmm7+256]{k1}, zmm6 # AVX512F
vpscatterdd [ecx+zmm7*4+1024]{k1}, zmm6 # AVX512F
vpscatterdq [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F
vpscatterdq [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F
vpscatterdq qword ptr [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F
vpscatterdq [eax+ymm7+256]{k1}, zmm6 # AVX512F
vpscatterdq [ecx+ymm7*4+1024]{k1}, zmm6 # AVX512F
vpscatterqd [ebp+zmm7*8-123]{k1}, ymm6 # AVX512F
vpscatterqd [ebp+zmm7*8-123]{k1}, ymm6 # AVX512F
vpscatterqd dword ptr [ebp+zmm7*8-123]{k1}, ymm6 # AVX512F
vpscatterqd [eax+zmm7+256]{k1}, ymm6 # AVX512F
vpscatterqd [ecx+zmm7*4+1024]{k1}, ymm6 # AVX512F
vpscatterqq [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F
vpscatterqq [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F
vpscatterqq qword ptr [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F
vpscatterqq [eax+zmm7+256]{k1}, zmm6 # AVX512F
vpscatterqq [ecx+zmm7*4+1024]{k1}, zmm6 # AVX512F
@@ -13162,22 +13162,22 @@ _start:
vrsqrt14ss xmm6{k7}, xmm5, DWORD PTR [edx-516] # AVX512F
vscatterdpd [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F
vscatterdpd [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F
vscatterdpd qword ptr [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F
vscatterdpd [eax+ymm7+256]{k1}, zmm6 # AVX512F
vscatterdpd [ecx+ymm7*4+1024]{k1}, zmm6 # AVX512F
vscatterdps [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F
vscatterdps [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F
vscatterdps dword ptr [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F
vscatterdps [eax+zmm7+256]{k1}, zmm6 # AVX512F
vscatterdps [ecx+zmm7*4+1024]{k1}, zmm6 # AVX512F
vscatterqpd [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F
vscatterqpd [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F
vscatterqpd qword ptr [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F
vscatterqpd [eax+zmm7+256]{k1}, zmm6 # AVX512F
vscatterqpd [ecx+zmm7*4+1024]{k1}, zmm6 # AVX512F
vscatterqps [ebp+zmm7*8-123]{k1}, ymm6 # AVX512F
vscatterqps [ebp+zmm7*8-123]{k1}, ymm6 # AVX512F
vscatterqps dword ptr [ebp+zmm7*8-123]{k1}, ymm6 # AVX512F
vscatterqps [eax+zmm7+256]{k1}, ymm6 # AVX512F
vscatterqps [ecx+zmm7*4+1024]{k1}, ymm6 # AVX512F
+16 -16
View File
@@ -11618,23 +11618,23 @@ _start:
vfnmsub231ss xmm30{k7}, xmm29, DWORD PTR [rdx-516] # AVX512F
vgatherdpd zmm30{k1}, [r14+ymm31*8-123] # AVX512F
vgatherdpd zmm30{k1}, [r14+ymm31*8-123] # AVX512F
vgatherdpd zmm30{k1}, qword ptr [r14+ymm31*8-123] # AVX512F
vgatherdpd zmm30{k1}, [r9+ymm31+256] # AVX512F
vgatherdpd zmm30{k1}, [rcx+ymm31*4+1024] # AVX512F
vgatherdps zmm30{k1}, [r14+zmm31*8-123] # AVX512F
vgatherdps zmm30{k1}, [r14+zmm31*8-123] # AVX512F
vgatherdps zmm30{k1}, dword ptr [r14+zmm31*8-123] # AVX512F
vgatherdps zmm30{k1}, [r9+zmm31+256] # AVX512F
vgatherdps zmm30{k1}, [rcx+zmm31*4+1024] # AVX512F
vgatherqpd zmm30{k1}, [r14+zmm31*8-123] # AVX512F
vgatherqpd zmm30{k1}, [r14+zmm31*8-123] # AVX512F
vgatherqpd zmm30{k1}, qword ptr [r14+zmm31*8-123] # AVX512F
vgatherqpd zmm30{k1}, [r9+zmm31+256] # AVX512F
vgatherqpd zmm30{k1}, [rcx+zmm31*4+1024] # AVX512F
vgatherqpd zmm3{k1}, [r14+zmm19*8+123] # AVX512F
vgatherqps ymm30{k1}, [r14+zmm31*8-123] # AVX512F
vgatherqps ymm30{k1}, [r14+zmm31*8-123] # AVX512F
vgatherqps ymm30{k1}, dword ptr [r14+zmm31*8-123] # AVX512F
vgatherqps ymm30{k1}, [r9+zmm31+256] # AVX512F
vgatherqps ymm30{k1}, [rcx+zmm31*4+1024] # AVX512F
@@ -13021,22 +13021,22 @@ _start:
vpexpandq zmm30{k7}{z}, zmm29 # AVX512F
vpgatherdd zmm30{k1}, [r14+zmm31*8-123] # AVX512F
vpgatherdd zmm30{k1}, [r14+zmm31*8-123] # AVX512F
vpgatherdd zmm30{k1}, dword ptr [r14+zmm31*8-123] # AVX512F
vpgatherdd zmm30{k1}, [r9+zmm31+256] # AVX512F
vpgatherdd zmm30{k1}, [rcx+zmm31*4+1024] # AVX512F
vpgatherdq zmm30{k1}, [r14+ymm31*8-123] # AVX512F
vpgatherdq zmm30{k1}, [r14+ymm31*8-123] # AVX512F
vpgatherdq zmm30{k1}, qword ptr [r14+ymm31*8-123] # AVX512F
vpgatherdq zmm30{k1}, [r9+ymm31+256] # AVX512F
vpgatherdq zmm30{k1}, [rcx+ymm31*4+1024] # AVX512F
vpgatherqd ymm30{k1}, [r14+zmm31*8-123] # AVX512F
vpgatherqd ymm30{k1}, [r14+zmm31*8-123] # AVX512F
vpgatherqd ymm30{k1}, dword ptr [r14+zmm31*8-123] # AVX512F
vpgatherqd ymm30{k1}, [r9+zmm31+256] # AVX512F
vpgatherqd ymm30{k1}, [rcx+zmm31*4+1024] # AVX512F
vpgatherqq zmm30{k1}, [r14+zmm31*8-123] # AVX512F
vpgatherqq zmm30{k1}, [r14+zmm31*8-123] # AVX512F
vpgatherqq zmm30{k1}, qword ptr [r14+zmm31*8-123] # AVX512F
vpgatherqq zmm30{k1}, [r9+zmm31+256] # AVX512F
vpgatherqq zmm30{k1}, [rcx+zmm31*4+1024] # AVX512F
@@ -13326,22 +13326,22 @@ _start:
vporq zmm30, zmm29, qword bcst [rdx-1032] # AVX512F
vpscatterdd [r14+zmm31*8-123]{k1}, zmm30 # AVX512F
vpscatterdd [r14+zmm31*8-123]{k1}, zmm30 # AVX512F
vpscatterdd dword ptr [r14+zmm31*8-123]{k1}, zmm30 # AVX512F
vpscatterdd [r9+zmm31+256]{k1}, zmm30 # AVX512F
vpscatterdd [rcx+zmm31*4+1024]{k1}, zmm30 # AVX512F
vpscatterdq [r14+ymm31*8-123]{k1}, zmm30 # AVX512F
vpscatterdq [r14+ymm31*8-123]{k1}, zmm30 # AVX512F
vpscatterdq qword ptr [r14+ymm31*8-123]{k1}, zmm30 # AVX512F
vpscatterdq [r9+ymm31+256]{k1}, zmm30 # AVX512F
vpscatterdq [rcx+ymm31*4+1024]{k1}, zmm30 # AVX512F
vpscatterqd [r14+zmm31*8-123]{k1}, ymm30 # AVX512F
vpscatterqd [r14+zmm31*8-123]{k1}, ymm30 # AVX512F
vpscatterqd dword ptr [r14+zmm31*8-123]{k1}, ymm30 # AVX512F
vpscatterqd [r9+zmm31+256]{k1}, ymm30 # AVX512F
vpscatterqd [rcx+zmm31*4+1024]{k1}, ymm30 # AVX512F
vpscatterqq [r14+zmm31*8-123]{k1}, zmm30 # AVX512F
vpscatterqq [r14+zmm31*8-123]{k1}, zmm30 # AVX512F
vpscatterqq qword ptr [r14+zmm31*8-123]{k1}, zmm30 # AVX512F
vpscatterqq [r9+zmm31+256]{k1}, zmm30 # AVX512F
vpscatterqq [rcx+zmm31*4+1024]{k1}, zmm30 # AVX512F
@@ -13782,22 +13782,22 @@ _start:
vrsqrt14ss xmm30{k7}, xmm29, DWORD PTR [rdx-516] # AVX512F
vscatterdpd [r14+ymm31*8-123]{k1}, zmm30 # AVX512F
vscatterdpd [r14+ymm31*8-123]{k1}, zmm30 # AVX512F
vscatterdpd qword ptr [r14+ymm31*8-123]{k1}, zmm30 # AVX512F
vscatterdpd [r9+ymm31+256]{k1}, zmm30 # AVX512F
vscatterdpd [rcx+ymm31*4+1024]{k1}, zmm30 # AVX512F
vscatterdps [r14+zmm31*8-123]{k1}, zmm30 # AVX512F
vscatterdps [r14+zmm31*8-123]{k1}, zmm30 # AVX512F
vscatterdps dword ptr [r14+zmm31*8-123]{k1}, zmm30 # AVX512F
vscatterdps [r9+zmm31+256]{k1}, zmm30 # AVX512F
vscatterdps [rcx+zmm31*4+1024]{k1}, zmm30 # AVX512F
vscatterqpd [r14+zmm31*8-123]{k1}, zmm30 # AVX512F
vscatterqpd [r14+zmm31*8-123]{k1}, zmm30 # AVX512F
vscatterqpd qword ptr [r14+zmm31*8-123]{k1}, zmm30 # AVX512F
vscatterqpd [r9+zmm31+256]{k1}, zmm30 # AVX512F
vscatterqpd [rcx+zmm31*4+1024]{k1}, zmm30 # AVX512F
vscatterqps [r14+zmm31*8-123]{k1}, ymm30 # AVX512F
vscatterqps [r14+zmm31*8-123]{k1}, ymm30 # AVX512F
vscatterqps dword ptr [r14+zmm31*8-123]{k1}, ymm30 # AVX512F
vscatterqps [r9+zmm31+256]{k1}, ymm30 # AVX512F
vscatterqps [rcx+zmm31*4+1024]{k1}, ymm30 # AVX512F
+4 -4
View File
@@ -2278,10 +2278,10 @@ vcompressps, 0x668A, None, CpuAVX512F, Modrm|MaskingMorZ|Space0F38|VexW=1|Disp8M
vpcompressq, 0x668B, None, CpuAVX512F, Modrm|MaskingMorZ|Space0F38|VexW=2|Disp8MemShift=3|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM|Unspecified|BaseIndex }
vpcompressd, 0x668B, None, CpuAVX512F, Modrm|MaskingMorZ|Space0F38|VexW=1|Disp8MemShift=2|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM|RegZMM, RegXMM|RegYMM|RegZMM|Unspecified|BaseIndex }
vpscatterdq, 0x66A0, None, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|Space0F38|VexW1|Disp8MemShift=3|VecSIB256|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Dword|Unspecified|BaseIndex }
vpscatterqq, 0x66A1, None, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|Space0F38|VexW1|Disp8MemShift=3|VecSIB512|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Dword|Unspecified|BaseIndex }
vscatterdpd, 0x66A2, None, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|Space0F38|VexW1|Disp8MemShift=3|VecSIB256|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Dword|Unspecified|BaseIndex }
vscatterqpd, 0x66A3, None, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|Space0F38|VexW1|Disp8MemShift=3|VecSIB512|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Dword|Unspecified|BaseIndex }
vpscatterdq, 0x66A0, None, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|Space0F38|VexW1|Disp8MemShift=3|VecSIB256|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Qword|Unspecified|BaseIndex }
vpscatterqq, 0x66A1, None, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|Space0F38|VexW1|Disp8MemShift=3|VecSIB512|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Qword|Unspecified|BaseIndex }
vscatterdpd, 0x66A2, None, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|Space0F38|VexW1|Disp8MemShift=3|VecSIB256|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Qword|Unspecified|BaseIndex }
vscatterqpd, 0x66A3, None, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|Space0F38|VexW1|Disp8MemShift=3|VecSIB512|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Qword|Unspecified|BaseIndex }
vpscatterdd, 0x66A0, None, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|Space0F38|VexW0|Disp8MemShift=2|VecSIB512|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Dword|Unspecified|BaseIndex }
vscatterdps, 0x66A2, None, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|Space0F38|VexW0|Disp8MemShift=2|VecSIB512|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Dword|Unspecified|BaseIndex }
+4 -4
View File
@@ -46476,7 +46476,7 @@ const insn_template i386_optab[] =
0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
{ "vpscatterdq", 0xa0, 2, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
@@ -46506,7 +46506,7 @@ const insn_template i386_optab[] =
0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
{ "vpscatterqq", 0xa1, 2, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
@@ -46551,7 +46551,7 @@ const insn_template i386_optab[] =
0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
{ "vscatterdpd", 0xa2, 2, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
@@ -46581,7 +46581,7 @@ const insn_template i386_optab[] =
0, 0, 0, 0, 0 } },
{ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
{ "vscatterqpd", 0xa3, 2, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,