From 6ff00b5e12e7256738d9a4dac66e5a7745b771ea Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Tue, 31 Jul 2018 10:55:17 +0200 Subject: x86/Intel: correct permitted operand sizes for AVX512 scatter/gather AVX gather insns correctly allow the element size to be specified rather than the full vector size. Make AVX512 ones match. --- gas/ChangeLog | 11 ++ gas/testsuite/gas/i386/avx512f.s | 140 +++++++++--------- gas/testsuite/gas/i386/avx512f_vl.s | 192 ++++++++++++------------- gas/testsuite/gas/i386/avx512pf.s | 158 ++++++++++---------- gas/testsuite/gas/i386/i386.exp | 1 + gas/testsuite/gas/i386/sg.l | 25 ++++ gas/testsuite/gas/i386/sg.s | 66 +++++++++ gas/testsuite/gas/i386/x86-64-avx512f.s | 142 +++++++++--------- gas/testsuite/gas/i386/x86-64-avx512f_vl.s | 224 ++++++++++++++--------------- gas/testsuite/gas/i386/x86-64-avx512pf.s | 158 ++++++++++---------- 10 files changed, 610 insertions(+), 507 deletions(-) create mode 100644 gas/testsuite/gas/i386/sg.l create mode 100644 gas/testsuite/gas/i386/sg.s (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index 568a47f..8c2bc57 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,16 @@ 2018-07-31 Jan Beulich + * testsuite/gas/i386/sg.s, testsuite/gas/i386/sg.l: New. + * testsuite/gas/i386/i386.exp: Run new test. + * testsuite/gas/i386/avx512f.s, testsuite/gas/i386/avx512f_vl.s, + testsuite/gas/i386/avx512pf.s, + testsuite/gas/i386/x86-64-avx512f.s, + testsuite/gas/i386/x86-64-avx512f_vl.s, + testsuite/gas/i386/x86-64-avx512pf.s: Drop unnessecary operand + size specifiers from scatter/gather insns in Intel mode. + +2018-07-31 Jan Beulich + * config/tc-i386.c (is_any_vex_encoding): New. (process_immext, process_suffix): Use it. (md_assemble): Likewise. Reject DATA_PREFIX with VEX/XOP/EVEX diff --git a/gas/testsuite/gas/i386/avx512f.s b/gas/testsuite/gas/i386/avx512f.s index 199c786..693c810 100644 --- a/gas/testsuite/gas/i386/avx512f.s +++ b/gas/testsuite/gas/i386/avx512f.s @@ -11108,25 +11108,25 @@ _start: vfnmsub231ss xmm6{k7}, xmm5, DWORD PTR [edx-512] # AVX512F Disp8 vfnmsub231ss xmm6{k7}, xmm5, DWORD PTR [edx-516] # AVX512F - vgatherdpd zmm6{k1}, ZMMWORD PTR [ebp+ymm7*8-123] # AVX512F - vgatherdpd zmm6{k1}, ZMMWORD PTR [ebp+ymm7*8-123] # AVX512F - vgatherdpd zmm6{k1}, ZMMWORD PTR [eax+ymm7+256] # AVX512F - vgatherdpd zmm6{k1}, ZMMWORD PTR [ecx+ymm7*4+1024] # AVX512F - - vgatherdps zmm6{k1}, ZMMWORD PTR [ebp+zmm7*8-123] # AVX512F - vgatherdps zmm6{k1}, ZMMWORD PTR [ebp+zmm7*8-123] # AVX512F - vgatherdps zmm6{k1}, ZMMWORD PTR [eax+zmm7+256] # AVX512F - vgatherdps zmm6{k1}, ZMMWORD PTR [ecx+zmm7*4+1024] # AVX512F - - vgatherqpd zmm6{k1}, ZMMWORD PTR [ebp+zmm7*8-123] # AVX512F - vgatherqpd zmm6{k1}, ZMMWORD PTR [ebp+zmm7*8-123] # AVX512F - vgatherqpd zmm6{k1}, ZMMWORD PTR [eax+zmm7+256] # AVX512F - vgatherqpd zmm6{k1}, ZMMWORD PTR [ecx+zmm7*4+1024] # AVX512F - - vgatherqps ymm6{k1}, YMMWORD PTR [ebp+zmm7*8-123] # AVX512F - vgatherqps ymm6{k1}, YMMWORD PTR [ebp+zmm7*8-123] # AVX512F - vgatherqps ymm6{k1}, YMMWORD PTR [eax+zmm7+256] # AVX512F - vgatherqps ymm6{k1}, YMMWORD PTR [ecx+zmm7*4+1024] # AVX512F + vgatherdpd zmm6{k1}, [ebp+ymm7*8-123] # AVX512F + vgatherdpd zmm6{k1}, [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}, [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}, [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}, [eax+zmm7+256] # AVX512F + vgatherqps ymm6{k1}, [ecx+zmm7*4+1024] # AVX512F vgetexppd zmm6, zmm5 # AVX512F vgetexppd zmm6{k7}, zmm5 # AVX512F @@ -12400,25 +12400,25 @@ _start: vpexpandq zmm6{k7}, zmm5 # AVX512F vpexpandq zmm6{k7}{z}, zmm5 # AVX512F - vpgatherdd zmm6{k1}, ZMMWORD PTR [ebp+zmm7*8-123] # AVX512F - vpgatherdd zmm6{k1}, ZMMWORD PTR [ebp+zmm7*8-123] # AVX512F - vpgatherdd zmm6{k1}, ZMMWORD PTR [eax+zmm7+256] # AVX512F - vpgatherdd zmm6{k1}, ZMMWORD PTR [ecx+zmm7*4+1024] # AVX512F + vpgatherdd zmm6{k1}, [ebp+zmm7*8-123] # AVX512F + vpgatherdd zmm6{k1}, [ebp+zmm7*8-123] # AVX512F + vpgatherdd zmm6{k1}, [eax+zmm7+256] # AVX512F + vpgatherdd zmm6{k1}, [ecx+zmm7*4+1024] # AVX512F - vpgatherdq zmm6{k1}, ZMMWORD PTR [ebp+ymm7*8-123] # AVX512F - vpgatherdq zmm6{k1}, ZMMWORD PTR [ebp+ymm7*8-123] # AVX512F - vpgatherdq zmm6{k1}, ZMMWORD PTR [eax+ymm7+256] # AVX512F - vpgatherdq zmm6{k1}, ZMMWORD PTR [ecx+ymm7*4+1024] # AVX512F + vpgatherdq zmm6{k1}, [ebp+ymm7*8-123] # AVX512F + vpgatherdq zmm6{k1}, [ebp+ymm7*8-123] # AVX512F + vpgatherdq zmm6{k1}, [eax+ymm7+256] # AVX512F + vpgatherdq zmm6{k1}, [ecx+ymm7*4+1024] # AVX512F - vpgatherqd ymm6{k1}, YMMWORD PTR [ebp+zmm7*8-123] # AVX512F - vpgatherqd ymm6{k1}, YMMWORD PTR [ebp+zmm7*8-123] # AVX512F - vpgatherqd ymm6{k1}, YMMWORD PTR [eax+zmm7+256] # AVX512F - vpgatherqd ymm6{k1}, YMMWORD PTR [ecx+zmm7*4+1024] # AVX512F + vpgatherqd ymm6{k1}, [ebp+zmm7*8-123] # AVX512F + vpgatherqd ymm6{k1}, [ebp+zmm7*8-123] # AVX512F + vpgatherqd ymm6{k1}, [eax+zmm7+256] # AVX512F + vpgatherqd ymm6{k1}, [ecx+zmm7*4+1024] # AVX512F - vpgatherqq zmm6{k1}, ZMMWORD PTR [ebp+zmm7*8-123] # AVX512F - vpgatherqq zmm6{k1}, ZMMWORD PTR [ebp+zmm7*8-123] # AVX512F - vpgatherqq zmm6{k1}, ZMMWORD PTR [eax+zmm7+256] # AVX512F - vpgatherqq zmm6{k1}, ZMMWORD PTR [ecx+zmm7*4+1024] # AVX512F + vpgatherqq zmm6{k1}, [ebp+zmm7*8-123] # AVX512F + vpgatherqq zmm6{k1}, [ebp+zmm7*8-123] # AVX512F + vpgatherqq zmm6{k1}, [eax+zmm7+256] # AVX512F + vpgatherqq zmm6{k1}, [ecx+zmm7*4+1024] # AVX512F vpmaxsd zmm6, zmm5, zmm4 # AVX512F vpmaxsd zmm6{k7}, zmm5, zmm4 # AVX512F @@ -12705,25 +12705,25 @@ _start: vporq zmm6, zmm5, [edx-1024]{1to8} # AVX512F Disp8 vporq zmm6, zmm5, [edx-1032]{1to8} # AVX512F - vpscatterdd ZMMWORD PTR [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F - vpscatterdd ZMMWORD PTR [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F - vpscatterdd ZMMWORD PTR [eax+zmm7+256]{k1}, zmm6 # AVX512F - vpscatterdd ZMMWORD PTR [ecx+zmm7*4+1024]{k1}, zmm6 # AVX512F + vpscatterdd [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F + vpscatterdd [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F + vpscatterdd [eax+zmm7+256]{k1}, zmm6 # AVX512F + vpscatterdd [ecx+zmm7*4+1024]{k1}, zmm6 # AVX512F - vpscatterdq ZMMWORD PTR [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F - vpscatterdq ZMMWORD PTR [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F - vpscatterdq ZMMWORD PTR [eax+ymm7+256]{k1}, zmm6 # AVX512F - vpscatterdq ZMMWORD PTR [ecx+ymm7*4+1024]{k1}, zmm6 # AVX512F + vpscatterdq [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F + vpscatterdq [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F + vpscatterdq [eax+ymm7+256]{k1}, zmm6 # AVX512F + vpscatterdq [ecx+ymm7*4+1024]{k1}, zmm6 # AVX512F - vpscatterqd YMMWORD PTR [ebp+zmm7*8-123]{k1}, ymm6 # AVX512F - vpscatterqd YMMWORD PTR [ebp+zmm7*8-123]{k1}, ymm6 # AVX512F - vpscatterqd YMMWORD PTR [eax+zmm7+256]{k1}, ymm6 # AVX512F - vpscatterqd YMMWORD PTR [ecx+zmm7*4+1024]{k1}, ymm6 # AVX512F + vpscatterqd [ebp+zmm7*8-123]{k1}, ymm6 # AVX512F + vpscatterqd [ebp+zmm7*8-123]{k1}, ymm6 # AVX512F + vpscatterqd [eax+zmm7+256]{k1}, ymm6 # AVX512F + vpscatterqd [ecx+zmm7*4+1024]{k1}, ymm6 # AVX512F - vpscatterqq ZMMWORD PTR [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F - vpscatterqq ZMMWORD PTR [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F - vpscatterqq ZMMWORD PTR [eax+zmm7+256]{k1}, zmm6 # AVX512F - vpscatterqq ZMMWORD PTR [ecx+zmm7*4+1024]{k1}, zmm6 # AVX512F + vpscatterqq [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F + vpscatterqq [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F + vpscatterqq [eax+zmm7+256]{k1}, zmm6 # AVX512F + vpscatterqq [ecx+zmm7*4+1024]{k1}, zmm6 # AVX512F vpshufd zmm6, zmm5, 0xab # AVX512F vpshufd zmm6{k7}, zmm5, 0xab # AVX512F @@ -13161,25 +13161,25 @@ _start: vrsqrt14ss xmm6{k7}, xmm5, DWORD PTR [edx-512] # AVX512F Disp8 vrsqrt14ss xmm6{k7}, xmm5, DWORD PTR [edx-516] # AVX512F - vscatterdpd ZMMWORD PTR [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F - vscatterdpd ZMMWORD PTR [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F - vscatterdpd ZMMWORD PTR [eax+ymm7+256]{k1}, zmm6 # AVX512F - vscatterdpd ZMMWORD PTR [ecx+ymm7*4+1024]{k1}, zmm6 # AVX512F - - vscatterdps ZMMWORD PTR [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F - vscatterdps ZMMWORD PTR [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F - vscatterdps ZMMWORD PTR [eax+zmm7+256]{k1}, zmm6 # AVX512F - vscatterdps ZMMWORD PTR [ecx+zmm7*4+1024]{k1}, zmm6 # AVX512F - - vscatterqpd ZMMWORD PTR [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F - vscatterqpd ZMMWORD PTR [ebp+zmm7*8-123]{k1}, zmm6 # AVX512F - vscatterqpd ZMMWORD PTR [eax+zmm7+256]{k1}, zmm6 # AVX512F - vscatterqpd ZMMWORD PTR [ecx+zmm7*4+1024]{k1}, zmm6 # AVX512F - - vscatterqps YMMWORD PTR [ebp+zmm7*8-123]{k1}, ymm6 # AVX512F - vscatterqps YMMWORD PTR [ebp+zmm7*8-123]{k1}, ymm6 # AVX512F - vscatterqps YMMWORD PTR [eax+zmm7+256]{k1}, ymm6 # AVX512F - vscatterqps YMMWORD PTR [ecx+zmm7*4+1024]{k1}, ymm6 # AVX512F + vscatterdpd [ebp+ymm7*8-123]{k1}, zmm6 # AVX512F + vscatterdpd [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 [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 [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 [eax+zmm7+256]{k1}, ymm6 # AVX512F + vscatterqps [ecx+zmm7*4+1024]{k1}, ymm6 # AVX512F vshufpd zmm6, zmm5, zmm4, 0xab # AVX512F vshufpd zmm6{k7}, zmm5, zmm4, 0xab # AVX512F diff --git a/gas/testsuite/gas/i386/avx512f_vl.s b/gas/testsuite/gas/i386/avx512f_vl.s index 1dab857..3520143 100644 --- a/gas/testsuite/gas/i386/avx512f_vl.s +++ b/gas/testsuite/gas/i386/avx512f_vl.s @@ -7321,30 +7321,30 @@ _start: vfnmsub231ps ymm6{k7}, ymm5, [edx+512]{1to8} # AVX512{F,VL} vfnmsub231ps ymm6{k7}, ymm5, [edx-512]{1to8} # AVX512{F,VL} Disp8 vfnmsub231ps ymm6{k7}, ymm5, [edx-516]{1to8} # AVX512{F,VL} - vgatherdpd xmm6{k1}, XMMWORD PTR [ebp+xmm7*8-123] # AVX512{F,VL} - vgatherdpd xmm6{k1}, XMMWORD PTR [eax+xmm7+256] # AVX512{F,VL} - vgatherdpd xmm6{k1}, XMMWORD PTR [ecx+xmm7*4+1024] # AVX512{F,VL} - vgatherdpd ymm6{k1}, YMMWORD PTR [ebp+xmm7*8-123] # AVX512{F,VL} - vgatherdpd ymm6{k1}, YMMWORD PTR [eax+xmm7+256] # AVX512{F,VL} - vgatherdpd ymm6{k1}, YMMWORD PTR [ecx+xmm7*4+1024] # AVX512{F,VL} - vgatherdps xmm6{k1}, XMMWORD PTR [ebp+xmm7*8-123] # AVX512{F,VL} - vgatherdps xmm6{k1}, XMMWORD PTR [eax+xmm7+256] # AVX512{F,VL} - vgatherdps xmm6{k1}, XMMWORD PTR [ecx+xmm7*4+1024] # AVX512{F,VL} - vgatherdps ymm6{k1}, YMMWORD PTR [ebp+ymm7*8-123] # AVX512{F,VL} - vgatherdps ymm6{k1}, YMMWORD PTR [eax+ymm7+256] # AVX512{F,VL} - vgatherdps ymm6{k1}, YMMWORD PTR [ecx+ymm7*4+1024] # AVX512{F,VL} - vgatherqpd xmm6{k1}, XMMWORD PTR [ebp+xmm7*8-123] # AVX512{F,VL} - vgatherqpd xmm6{k1}, XMMWORD PTR [eax+xmm7+256] # AVX512{F,VL} - vgatherqpd xmm6{k1}, XMMWORD PTR [ecx+xmm7*4+1024] # AVX512{F,VL} - vgatherqpd ymm6{k1}, YMMWORD PTR [ebp+ymm7*8-123] # AVX512{F,VL} - vgatherqpd ymm6{k1}, YMMWORD PTR [eax+ymm7+256] # AVX512{F,VL} - vgatherqpd ymm6{k1}, YMMWORD PTR [ecx+ymm7*4+1024] # AVX512{F,VL} - vgatherqps xmm6{k1}, QWORD PTR [ebp+xmm7*8-123] # AVX512{F,VL} - vgatherqps xmm6{k1}, QWORD PTR [eax+xmm7+256] # AVX512{F,VL} - vgatherqps xmm6{k1}, QWORD PTR [ecx+xmm7*4+1024] # AVX512{F,VL} - vgatherqps xmm6{k1}, XMMWORD PTR [ebp+ymm7*8-123] # AVX512{F,VL} - vgatherqps xmm6{k1}, XMMWORD PTR [eax+ymm7+256] # AVX512{F,VL} - vgatherqps xmm6{k1}, XMMWORD PTR [ecx+ymm7*4+1024] # AVX512{F,VL} + vgatherdpd xmm6{k1}, [ebp+xmm7*8-123] # AVX512{F,VL} + vgatherdpd xmm6{k1}, [eax+xmm7+256] # AVX512{F,VL} + vgatherdpd xmm6{k1}, [ecx+xmm7*4+1024] # AVX512{F,VL} + vgatherdpd ymm6{k1}, [ebp+xmm7*8-123] # AVX512{F,VL} + vgatherdpd ymm6{k1}, [eax+xmm7+256] # AVX512{F,VL} + vgatherdpd ymm6{k1}, [ecx+xmm7*4+1024] # AVX512{F,VL} + vgatherdps xmm6{k1}, [ebp+xmm7*8-123] # AVX512{F,VL} + vgatherdps xmm6{k1}, [eax+xmm7+256] # AVX512{F,VL} + vgatherdps xmm6{k1}, [ecx+xmm7*4+1024] # AVX512{F,VL} + vgatherdps ymm6{k1}, [ebp+ymm7*8-123] # AVX512{F,VL} + vgatherdps ymm6{k1}, [eax+ymm7+256] # AVX512{F,VL} + vgatherdps ymm6{k1}, [ecx+ymm7*4+1024] # AVX512{F,VL} + vgatherqpd xmm6{k1}, [ebp+xmm7*8-123] # AVX512{F,VL} + vgatherqpd xmm6{k1}, [eax+xmm7+256] # AVX512{F,VL} + vgatherqpd xmm6{k1}, [ecx+xmm7*4+1024] # AVX512{F,VL} + vgatherqpd ymm6{k1}, [ebp+ymm7*8-123] # AVX512{F,VL} + vgatherqpd ymm6{k1}, [eax+ymm7+256] # AVX512{F,VL} + vgatherqpd ymm6{k1}, [ecx+ymm7*4+1024] # AVX512{F,VL} + vgatherqps xmm6{k1}, [ebp+xmm7*8-123] # AVX512{F,VL} + vgatherqps xmm6{k1}, [eax+xmm7+256] # AVX512{F,VL} + vgatherqps xmm6{k1}, [ecx+xmm7*4+1024] # AVX512{F,VL} + vgatherqps xmm6{k1}, [ebp+ymm7*8-123] # AVX512{F,VL} + vgatherqps xmm6{k1}, [eax+ymm7+256] # AVX512{F,VL} + vgatherqps xmm6{k1}, [ecx+ymm7*4+1024] # AVX512{F,VL} vgetexppd xmm6{k7}, xmm5 # AVX512{F,VL} vgetexppd xmm6{k7}{z}, xmm5 # AVX512{F,VL} vgetexppd xmm6{k7}, XMMWORD PTR [ecx] # AVX512{F,VL} @@ -8519,30 +8519,30 @@ _start: vpexpandq xmm6{k7}{z}, xmm5 # AVX512{F,VL} vpexpandq ymm6{k7}, ymm5 # AVX512{F,VL} vpexpandq ymm6{k7}{z}, ymm5 # AVX512{F,VL} - vpgatherdd xmm6{k1}, XMMWORD PTR [ebp+xmm7*8-123] # AVX512{F,VL} - vpgatherdd xmm6{k1}, XMMWORD PTR [eax+xmm7+256] # AVX512{F,VL} - vpgatherdd xmm6{k1}, XMMWORD PTR [ecx+xmm7*4+1024] # AVX512{F,VL} - vpgatherdd ymm6{k1}, YMMWORD PTR [ebp+ymm7*8-123] # AVX512{F,VL} - vpgatherdd ymm6{k1}, YMMWORD PTR [eax+ymm7+256] # AVX512{F,VL} - vpgatherdd ymm6{k1}, YMMWORD PTR [ecx+ymm7*4+1024] # AVX512{F,VL} - vpgatherdq xmm6{k1}, XMMWORD PTR [ebp+xmm7*8-123] # AVX512{F,VL} - vpgatherdq xmm6{k1}, XMMWORD PTR [eax+xmm7+256] # AVX512{F,VL} - vpgatherdq xmm6{k1}, XMMWORD PTR [ecx+xmm7*4+1024] # AVX512{F,VL} - vpgatherdq ymm6{k1}, YMMWORD PTR [ebp+xmm7*8-123] # AVX512{F,VL} - vpgatherdq ymm6{k1}, YMMWORD PTR [eax+xmm7+256] # AVX512{F,VL} - vpgatherdq ymm6{k1}, YMMWORD PTR [ecx+xmm7*4+1024] # AVX512{F,VL} - vpgatherqd xmm6{k1}, QWORD PTR [ebp+xmm7*8-123] # AVX512{F,VL} - vpgatherqd xmm6{k1}, QWORD PTR [eax+xmm7+256] # AVX512{F,VL} - vpgatherqd xmm6{k1}, QWORD PTR [ecx+xmm7*4+1024] # AVX512{F,VL} - vpgatherqd xmm6{k1}, XMMWORD PTR [ebp+ymm7*8-123] # AVX512{F,VL} - vpgatherqd xmm6{k1}, XMMWORD PTR [eax+ymm7+256] # AVX512{F,VL} - vpgatherqd xmm6{k1}, XMMWORD PTR [ecx+ymm7*4+1024] # AVX512{F,VL} - vpgatherqq xmm6{k1}, XMMWORD PTR [ebp+xmm7*8-123] # AVX512{F,VL} - vpgatherqq xmm6{k1}, XMMWORD PTR [eax+xmm7+256] # AVX512{F,VL} - vpgatherqq xmm6{k1}, XMMWORD PTR [ecx+xmm7*4+1024] # AVX512{F,VL} - vpgatherqq ymm6{k1}, YMMWORD PTR [ebp+ymm7*8-123] # AVX512{F,VL} - vpgatherqq ymm6{k1}, YMMWORD PTR [eax+ymm7+256] # AVX512{F,VL} - vpgatherqq ymm6{k1}, YMMWORD PTR [ecx+ymm7*4+1024] # AVX512{F,VL} + vpgatherdd xmm6{k1}, [ebp+xmm7*8-123] # AVX512{F,VL} + vpgatherdd xmm6{k1}, [eax+xmm7+256] # AVX512{F,VL} + vpgatherdd xmm6{k1}, [ecx+xmm7*4+1024] # AVX512{F,VL} + vpgatherdd ymm6{k1}, [ebp+ymm7*8-123] # AVX512{F,VL} + vpgatherdd ymm6{k1}, [eax+ymm7+256] # AVX512{F,VL} + vpgatherdd ymm6{k1}, [ecx+ymm7*4+1024] # AVX512{F,VL} + vpgatherdq xmm6{k1}, [ebp+xmm7*8-123] # AVX512{F,VL} + vpgatherdq xmm6{k1}, [eax+xmm7+256] # AVX512{F,VL} + vpgatherdq xmm6{k1}, [ecx+xmm7*4+1024] # AVX512{F,VL} + vpgatherdq ymm6{k1}, [ebp+xmm7*8-123] # AVX512{F,VL} + vpgatherdq ymm6{k1}, [eax+xmm7+256] # AVX512{F,VL} + vpgatherdq ymm6{k1}, [ecx+xmm7*4+1024] # AVX512{F,VL} + vpgatherqd xmm6{k1}, [ebp+xmm7*8-123] # AVX512{F,VL} + vpgatherqd xmm6{k1}, [eax+xmm7+256] # AVX512{F,VL} + vpgatherqd xmm6{k1}, [ecx+xmm7*4+1024] # AVX512{F,VL} + vpgatherqd xmm6{k1}, [ebp+ymm7*8-123] # AVX512{F,VL} + vpgatherqd xmm6{k1}, [eax+ymm7+256] # AVX512{F,VL} + vpgatherqd xmm6{k1}, [ecx+ymm7*4+1024] # AVX512{F,VL} + vpgatherqq xmm6{k1}, [ebp+xmm7*8-123] # AVX512{F,VL} + vpgatherqq xmm6{k1}, [eax+xmm7+256] # AVX512{F,VL} + vpgatherqq xmm6{k1}, [ecx+xmm7*4+1024] # AVX512{F,VL} + vpgatherqq ymm6{k1}, [ebp+ymm7*8-123] # AVX512{F,VL} + vpgatherqq ymm6{k1}, [eax+ymm7+256] # AVX512{F,VL} + vpgatherqq ymm6{k1}, [ecx+ymm7*4+1024] # AVX512{F,VL} vpmaxsd xmm6{k7}, xmm5, xmm4 # AVX512{F,VL} vpmaxsd xmm6{k7}{z}, xmm5, xmm4 # AVX512{F,VL} vpmaxsd xmm6{k7}, xmm5, XMMWORD PTR [ecx] # AVX512{F,VL} @@ -9041,30 +9041,30 @@ _start: vporq ymm6{k7}, ymm5, [edx+1024]{1to4} # AVX512{F,VL} vporq ymm6{k7}, ymm5, [edx-1024]{1to4} # AVX512{F,VL} Disp8 vporq ymm6{k7}, ymm5, [edx-1032]{1to4} # AVX512{F,VL} - vpscatterdd XMMWORD PTR [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} - vpscatterdd XMMWORD PTR [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} - vpscatterdd XMMWORD PTR [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} - vpscatterdd YMMWORD PTR [ebp+ymm7*8-123]{k1}, ymm6 # AVX512{F,VL} - vpscatterdd YMMWORD PTR [eax+ymm7+256]{k1}, ymm6 # AVX512{F,VL} - vpscatterdd YMMWORD PTR [ecx+ymm7*4+1024]{k1}, ymm6 # AVX512{F,VL} - vpscatterdq XMMWORD PTR [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} - vpscatterdq XMMWORD PTR [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} - vpscatterdq XMMWORD PTR [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} - vpscatterdq YMMWORD PTR [ebp+xmm7*8-123]{k1}, ymm6 # AVX512{F,VL} - vpscatterdq YMMWORD PTR [eax+xmm7+256]{k1}, ymm6 # AVX512{F,VL} - vpscatterdq YMMWORD PTR [ecx+xmm7*4+1024]{k1}, ymm6 # AVX512{F,VL} - vpscatterqd QWORD PTR [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} - vpscatterqd QWORD PTR [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} - vpscatterqd QWORD PTR [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} - vpscatterqd XMMWORD PTR [ebp+ymm7*8-123]{k1}, xmm6 # AVX512{F,VL} - vpscatterqd XMMWORD PTR [eax+ymm7+256]{k1}, xmm6 # AVX512{F,VL} - vpscatterqd XMMWORD PTR [ecx+ymm7*4+1024]{k1}, xmm6 # AVX512{F,VL} - vpscatterqq XMMWORD PTR [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} - vpscatterqq XMMWORD PTR [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} - vpscatterqq XMMWORD PTR [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} - vpscatterqq YMMWORD PTR [ebp+ymm7*8-123]{k1}, ymm6 # AVX512{F,VL} - vpscatterqq YMMWORD PTR [eax+ymm7+256]{k1}, ymm6 # AVX512{F,VL} - vpscatterqq YMMWORD PTR [ecx+ymm7*4+1024]{k1}, ymm6 # AVX512{F,VL} + vpscatterdd [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} + vpscatterdd [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} + vpscatterdd [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} + vpscatterdd [ebp+ymm7*8-123]{k1}, ymm6 # AVX512{F,VL} + vpscatterdd [eax+ymm7+256]{k1}, ymm6 # AVX512{F,VL} + vpscatterdd [ecx+ymm7*4+1024]{k1}, ymm6 # AVX512{F,VL} + vpscatterdq [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} + vpscatterdq [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} + vpscatterdq [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} + vpscatterdq [ebp+xmm7*8-123]{k1}, ymm6 # AVX512{F,VL} + vpscatterdq [eax+xmm7+256]{k1}, ymm6 # AVX512{F,VL} + vpscatterdq [ecx+xmm7*4+1024]{k1}, ymm6 # AVX512{F,VL} + vpscatterqd [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} + vpscatterqd [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} + vpscatterqd [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} + vpscatterqd [ebp+ymm7*8-123]{k1}, xmm6 # AVX512{F,VL} + vpscatterqd [eax+ymm7+256]{k1}, xmm6 # AVX512{F,VL} + vpscatterqd [ecx+ymm7*4+1024]{k1}, xmm6 # AVX512{F,VL} + vpscatterqq [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} + vpscatterqq [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} + vpscatterqq [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} + vpscatterqq [ebp+ymm7*8-123]{k1}, ymm6 # AVX512{F,VL} + vpscatterqq [eax+ymm7+256]{k1}, ymm6 # AVX512{F,VL} + vpscatterqq [ecx+ymm7*4+1024]{k1}, ymm6 # AVX512{F,VL} vpshufd xmm6{k7}, xmm5, 0xab # AVX512{F,VL} vpshufd xmm6{k7}{z}, xmm5, 0xab # AVX512{F,VL} vpshufd xmm6{k7}, xmm5, 123 # AVX512{F,VL} @@ -9761,30 +9761,30 @@ _start: vrsqrt14ps ymm6{k7}, [edx+512]{1to8} # AVX512{F,VL} vrsqrt14ps ymm6{k7}, [edx-512]{1to8} # AVX512{F,VL} Disp8 vrsqrt14ps ymm6{k7}, [edx-516]{1to8} # AVX512{F,VL} - vscatterdpd XMMWORD PTR [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} - vscatterdpd XMMWORD PTR [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} - vscatterdpd XMMWORD PTR [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} - vscatterdpd YMMWORD PTR [ebp+xmm7*8-123]{k1}, ymm6 # AVX512{F,VL} - vscatterdpd YMMWORD PTR [eax+xmm7+256]{k1}, ymm6 # AVX512{F,VL} - vscatterdpd YMMWORD PTR [ecx+xmm7*4+1024]{k1}, ymm6 # AVX512{F,VL} - vscatterdps XMMWORD PTR [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} - vscatterdps XMMWORD PTR [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} - vscatterdps XMMWORD PTR [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} - vscatterdps YMMWORD PTR [ebp+ymm7*8-123]{k1}, ymm6 # AVX512{F,VL} - vscatterdps YMMWORD PTR [eax+ymm7+256]{k1}, ymm6 # AVX512{F,VL} - vscatterdps YMMWORD PTR [ecx+ymm7*4+1024]{k1}, ymm6 # AVX512{F,VL} - vscatterqpd XMMWORD PTR [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} - vscatterqpd XMMWORD PTR [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} - vscatterqpd XMMWORD PTR [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} - vscatterqpd YMMWORD PTR [ebp+ymm7*8-123]{k1}, ymm6 # AVX512{F,VL} - vscatterqpd YMMWORD PTR [eax+ymm7+256]{k1}, ymm6 # AVX512{F,VL} - vscatterqpd YMMWORD PTR [ecx+ymm7*4+1024]{k1}, ymm6 # AVX512{F,VL} - vscatterqps QWORD PTR [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} - vscatterqps QWORD PTR [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} - vscatterqps QWORD PTR [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} - vscatterqps XMMWORD PTR [ebp+ymm7*8-123]{k1}, xmm6 # AVX512{F,VL} - vscatterqps XMMWORD PTR [eax+ymm7+256]{k1}, xmm6 # AVX512{F,VL} - vscatterqps XMMWORD PTR [ecx+ymm7*4+1024]{k1}, xmm6 # AVX512{F,VL} + vscatterdpd [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} + vscatterdpd [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} + vscatterdpd [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} + vscatterdpd [ebp+xmm7*8-123]{k1}, ymm6 # AVX512{F,VL} + vscatterdpd [eax+xmm7+256]{k1}, ymm6 # AVX512{F,VL} + vscatterdpd [ecx+xmm7*4+1024]{k1}, ymm6 # AVX512{F,VL} + vscatterdps [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} + vscatterdps [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} + vscatterdps [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} + vscatterdps [ebp+ymm7*8-123]{k1}, ymm6 # AVX512{F,VL} + vscatterdps [eax+ymm7+256]{k1}, ymm6 # AVX512{F,VL} + vscatterdps [ecx+ymm7*4+1024]{k1}, ymm6 # AVX512{F,VL} + vscatterqpd [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} + vscatterqpd [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} + vscatterqpd [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} + vscatterqpd [ebp+ymm7*8-123]{k1}, ymm6 # AVX512{F,VL} + vscatterqpd [eax+ymm7+256]{k1}, ymm6 # AVX512{F,VL} + vscatterqpd [ecx+ymm7*4+1024]{k1}, ymm6 # AVX512{F,VL} + vscatterqps [ebp+xmm7*8-123]{k1}, xmm6 # AVX512{F,VL} + vscatterqps [eax+xmm7+256]{k1}, xmm6 # AVX512{F,VL} + vscatterqps [ecx+xmm7*4+1024]{k1}, xmm6 # AVX512{F,VL} + vscatterqps [ebp+ymm7*8-123]{k1}, xmm6 # AVX512{F,VL} + vscatterqps [eax+ymm7+256]{k1}, xmm6 # AVX512{F,VL} + vscatterqps [ecx+ymm7*4+1024]{k1}, xmm6 # AVX512{F,VL} vshufpd xmm6{k7}, xmm5, xmm4, 0xab # AVX512{F,VL} vshufpd xmm6{k7}{z}, xmm5, xmm4, 0xab # AVX512{F,VL} vshufpd xmm6{k7}, xmm5, xmm4, 123 # AVX512{F,VL} diff --git a/gas/testsuite/gas/i386/avx512pf.s b/gas/testsuite/gas/i386/avx512pf.s index 3476660..bfb7a61 100644 --- a/gas/testsuite/gas/i386/avx512pf.s +++ b/gas/testsuite/gas/i386/avx512pf.s @@ -85,83 +85,83 @@ _start: vscatterpf1qps 1024(%ecx,%zmm7,4){%k1} # AVX512PF .intel_syntax noprefix - vgatherpf0dpd ZMMWORD PTR [ebp+ymm7*8-123]{k1} # AVX512PF - vgatherpf0dpd ZMMWORD PTR [ebp+ymm7*8-123]{k1} # AVX512PF - vgatherpf0dpd ZMMWORD PTR [eax+ymm7+256]{k1} # AVX512PF - vgatherpf0dpd ZMMWORD PTR [ecx+ymm7*4+1024]{k1} # AVX512PF - - vgatherpf0dps ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vgatherpf0dps ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vgatherpf0dps ZMMWORD PTR [eax+zmm7+256]{k1} # AVX512PF - vgatherpf0dps ZMMWORD PTR [ecx+zmm7*4+1024]{k1} # AVX512PF - - vgatherpf0qpd ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vgatherpf0qpd ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vgatherpf0qpd ZMMWORD PTR [eax+zmm7+256]{k1} # AVX512PF - vgatherpf0qpd ZMMWORD PTR [ecx+zmm7*4+1024]{k1} # AVX512PF - - vgatherpf0qps YMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vgatherpf0qps YMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vgatherpf0qps YMMWORD PTR [eax+zmm7+256]{k1} # AVX512PF - vgatherpf0qps YMMWORD PTR [ecx+zmm7*4+1024]{k1} # AVX512PF - - vgatherpf1dpd ZMMWORD PTR [ebp+ymm7*8-123]{k1} # AVX512PF - vgatherpf1dpd ZMMWORD PTR [ebp+ymm7*8-123]{k1} # AVX512PF - vgatherpf1dpd ZMMWORD PTR [eax+ymm7+256]{k1} # AVX512PF - vgatherpf1dpd ZMMWORD PTR [ecx+ymm7*4+1024]{k1} # AVX512PF - - vgatherpf1dps ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vgatherpf1dps ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vgatherpf1dps ZMMWORD PTR [eax+zmm7+256]{k1} # AVX512PF - vgatherpf1dps ZMMWORD PTR [ecx+zmm7*4+1024]{k1} # AVX512PF - - vgatherpf1qpd ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vgatherpf1qpd ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vgatherpf1qpd ZMMWORD PTR [eax+zmm7+256]{k1} # AVX512PF - vgatherpf1qpd ZMMWORD PTR [ecx+zmm7*4+1024]{k1} # AVX512PF - - vgatherpf1qps YMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vgatherpf1qps YMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vgatherpf1qps YMMWORD PTR [eax+zmm7+256]{k1} # AVX512PF - vgatherpf1qps YMMWORD PTR [ecx+zmm7*4+1024]{k1} # AVX512PF - - vscatterpf0dpd ZMMWORD PTR [ebp+ymm7*8-123]{k1} # AVX512PF - vscatterpf0dpd ZMMWORD PTR [ebp+ymm7*8-123]{k1} # AVX512PF - vscatterpf0dpd ZMMWORD PTR [eax+ymm7+256]{k1} # AVX512PF - vscatterpf0dpd ZMMWORD PTR [ecx+ymm7*4+1024]{k1} # AVX512PF - - vscatterpf0dps ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vscatterpf0dps ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vscatterpf0dps ZMMWORD PTR [eax+zmm7+256]{k1} # AVX512PF - vscatterpf0dps ZMMWORD PTR [ecx+zmm7*4+1024]{k1} # AVX512PF - - vscatterpf0qpd ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vscatterpf0qpd ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vscatterpf0qpd ZMMWORD PTR [eax+zmm7+256]{k1} # AVX512PF - vscatterpf0qpd ZMMWORD PTR [ecx+zmm7*4+1024]{k1} # AVX512PF - - vscatterpf0qps YMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vscatterpf0qps YMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vscatterpf0qps YMMWORD PTR [eax+zmm7+256]{k1} # AVX512PF - vscatterpf0qps YMMWORD PTR [ecx+zmm7*4+1024]{k1} # AVX512PF - - vscatterpf1dpd ZMMWORD PTR [ebp+ymm7*8-123]{k1} # AVX512PF - vscatterpf1dpd ZMMWORD PTR [ebp+ymm7*8-123]{k1} # AVX512PF - vscatterpf1dpd ZMMWORD PTR [eax+ymm7+256]{k1} # AVX512PF - vscatterpf1dpd ZMMWORD PTR [ecx+ymm7*4+1024]{k1} # AVX512PF - - vscatterpf1dps ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vscatterpf1dps ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vscatterpf1dps ZMMWORD PTR [eax+zmm7+256]{k1} # AVX512PF - vscatterpf1dps ZMMWORD PTR [ecx+zmm7*4+1024]{k1} # AVX512PF - - vscatterpf1qpd ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vscatterpf1qpd ZMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vscatterpf1qpd ZMMWORD PTR [eax+zmm7+256]{k1} # AVX512PF - vscatterpf1qpd ZMMWORD PTR [ecx+zmm7*4+1024]{k1} # AVX512PF - - vscatterpf1qps YMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vscatterpf1qps YMMWORD PTR [ebp+zmm7*8-123]{k1} # AVX512PF - vscatterpf1qps YMMWORD PTR [eax+zmm7+256]{k1} # AVX512PF - vscatterpf1qps YMMWORD PTR [ecx+zmm7*4+1024]{k1} # AVX512PF + vgatherpf0dpd [ebp+ymm7*8-123]{k1} # AVX512PF + vgatherpf0dpd [ebp+ymm7*8-123]{k1} # AVX512PF + vgatherpf0dpd [eax+ymm7+256]{k1} # AVX512PF + vgatherpf0dpd [ecx+ymm7*4+1024]{k1} # AVX512PF + + vgatherpf0dps [ebp+zmm7*8-123]{k1} # AVX512PF + vgatherpf0dps [ebp+zmm7*8-123]{k1} # AVX512PF + vgatherpf0dps [eax+zmm7+256]{k1} # AVX512PF + vgatherpf0dps [ecx+zmm7*4+1024]{k1} # AVX512PF + + vgatherpf0qpd [ebp+zmm7*8-123]{k1} # AVX512PF + vgatherpf0qpd [ebp+zmm7*8-123]{k1} # AVX512PF + vgatherpf0qpd [eax+zmm7+256]{k1} # AVX512PF + vgatherpf0qpd [ecx+zmm7*4+1024]{k1} # AVX512PF + + vgatherpf0qps [ebp+zmm7*8-123]{k1} # AVX512PF + vgatherpf0qps [ebp+zmm7*8-123]{k1} # AVX512PF + vgatherpf0qps [eax+zmm7+256]{k1} # AVX512PF + vgatherpf0qps [ecx+zmm7*4+1024]{k1} # AVX512PF + + vgatherpf1dpd [ebp+ymm7*8-123]{k1} # AVX512PF + vgatherpf1dpd [ebp+ymm7*8-123]{k1} # AVX512PF + vgatherpf1dpd [eax+ymm7+256]{k1} # AVX512PF + vgatherpf1dpd [ecx+ymm7*4+1024]{k1} # AVX512PF + + vgatherpf1dps [ebp+zmm7*8-123]{k1} # AVX512PF + vgatherpf1dps [ebp+zmm7*8-123]{k1} # AVX512PF + vgatherpf1dps [eax+zmm7+256]{k1} # AVX512PF + vgatherpf1dps [ecx+zmm7*4+1024]{k1} # AVX512PF + + vgatherpf1qpd [ebp+zmm7*8-123]{k1} # AVX512PF + vgatherpf1qpd [ebp+zmm7*8-123]{k1} # AVX512PF + vgatherpf1qpd [eax+zmm7+256]{k1} # AVX512PF + vgatherpf1qpd [ecx+zmm7*4+1024]{k1} # AVX512PF + + vgatherpf1qps [ebp+zmm7*8-123]{k1} # AVX512PF + vgatherpf1qps [ebp+zmm7*8-123]{k1} # AVX512PF + vgatherpf1qps [eax+zmm7+256]{k1} # AVX512PF + vgatherpf1qps [ecx+zmm7*4+1024]{k1} # AVX512PF + + vscatterpf0dpd [ebp+ymm7*8-123]{k1} # AVX512PF + vscatterpf0dpd [ebp+ymm7*8-123]{k1} # AVX512PF + vscatterpf0dpd [eax+ymm7+256]{k1} # AVX512PF + vscatterpf0dpd [ecx+ymm7*4+1024]{k1} # AVX512PF + + vscatterpf0dps [ebp+zmm7*8-123]{k1} # AVX512PF + vscatterpf0dps [ebp+zmm7*8-123]{k1} # AVX512PF + vscatterpf0dps [eax+zmm7+256]{k1} # AVX512PF + vscatterpf0dps [ecx+zmm7*4+1024]{k1} # AVX512PF + + vscatterpf0qpd [ebp+zmm7*8-123]{k1} # AVX512PF + vscatterpf0qpd [ebp+zmm7*8-123]{k1} # AVX512PF + vscatterpf0qpd [eax+zmm7+256]{k1} # AVX512PF + vscatterpf0qpd [ecx+zmm7*4+1024]{k1} # AVX512PF + + vscatterpf0qps [ebp+zmm7*8-123]{k1} # AVX512PF + vscatterpf0qps [ebp+zmm7*8-123]{k1} # AVX512PF + vscatterpf0qps [eax+zmm7+256]{k1} # AVX512PF + vscatterpf0qps [ecx+zmm7*4+1024]{k1} # AVX512PF + + vscatterpf1dpd [ebp+ymm7*8-123]{k1} # AVX512PF + vscatterpf1dpd [ebp+ymm7*8-123]{k1} # AVX512PF + vscatterpf1dpd [eax+ymm7+256]{k1} # AVX512PF + vscatterpf1dpd [ecx+ymm7*4+1024]{k1} # AVX512PF + + vscatterpf1dps [ebp+zmm7*8-123]{k1} # AVX512PF + vscatterpf1dps [ebp+zmm7*8-123]{k1} # AVX512PF + vscatterpf1dps [eax+zmm7+256]{k1} # AVX512PF + vscatterpf1dps [ecx+zmm7*4+1024]{k1} # AVX512PF + + vscatterpf1qpd [ebp+zmm7*8-123]{k1} # AVX512PF + vscatterpf1qpd [ebp+zmm7*8-123]{k1} # AVX512PF + vscatterpf1qpd [eax+zmm7+256]{k1} # AVX512PF + vscatterpf1qpd [ecx+zmm7*4+1024]{k1} # AVX512PF + + vscatterpf1qps [ebp+zmm7*8-123]{k1} # AVX512PF + vscatterpf1qps [ebp+zmm7*8-123]{k1} # AVX512PF + vscatterpf1qps [eax+zmm7+256]{k1} # AVX512PF + vscatterpf1qps [ecx+zmm7*4+1024]{k1} # AVX512PF diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index babeb94..3cf1aa3 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -411,6 +411,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "avx512bitalg-intel" run_dump_test "avx512bitalg_vl" run_dump_test "avx512bitalg_vl-intel" + run_list_test "sg" run_dump_test "clzero" run_dump_test "disassem" run_dump_test "mwaitx-bdver4" diff --git a/gas/testsuite/gas/i386/sg.l b/gas/testsuite/gas/i386/sg.l new file mode 100644 index 0000000..f51c37e --- /dev/null +++ b/gas/testsuite/gas/i386/sg.l @@ -0,0 +1,25 @@ +.*: Assembler messages: +.*:8: Error: operand size .* `vgatherdpd' +.*:9: Error: operand size .* `vgatherdpd' +.*:10: Error: operand size .* `vscatterdpd' +.*:16: Error: operand size .* `vgatherdps' +.*:17: Error: operand size .* `vgatherdps' +.*:18: Error: operand size .* `vscatterdps' +.*:24: Error: operand size .* `vgatherqpd' +.*:25: Error: operand size .* `vgatherqpd' +.*:26: Error: operand size .* `vscatterqpd' +.*:32: Error: operand size .* `vgatherqps' +.*:33: Error: operand size .* `vgatherqps' +.*:34: Error: operand size .* `vscatterqps' +.*:40: Error: operand size .* `vpgatherdd' +.*:41: Error: operand size .* `vpgatherdd' +.*:42: Error: operand size .* `vpscatterdd' +.*:48: Error: operand size .* `vpgatherdq' +.*:49: Error: operand size .* `vpgatherdq' +.*:50: Error: operand size .* `vpscatterdq' +.*:56: Error: operand size .* `vpgatherqd' +.*:57: Error: operand size .* `vpgatherqd' +.*:58: Error: operand size .* `vpscatterqd' +.*:64: Error: operand size .* `vpgatherqq' +.*:65: Error: operand size .* `vpgatherqq' +.*:66: Error: operand size .* `vpscatterqq' diff --git a/gas/testsuite/gas/i386/sg.s b/gas/testsuite/gas/i386/sg.s new file mode 100644 index 0000000..bee4b86 --- /dev/null +++ b/gas/testsuite/gas/i386/sg.s @@ -0,0 +1,66 @@ + .text + .intel_syntax noprefix +sg: + vgatherdpd xmm2, qword ptr [eax+xmm1], xmm0 + vgatherdpd xmm2{k7}, qword ptr [eax+xmm1] + vscatterdpd qword ptr [eax+xmm1]{k7}, xmm0 + + vgatherdpd xmm2, xmmword ptr [eax+xmm1], xmm0 + vgatherdpd xmm2{k7}, xmmword ptr [eax+xmm1] + vscatterdpd xmmword ptr [eax+xmm1]{k7}, xmm0 + + vgatherdps xmm2, dword ptr [eax+xmm1], xmm0 + vgatherdps xmm2{k7}, dword ptr [eax+xmm1] + vscatterdps dword ptr [eax+xmm1]{k7}, xmm0 + + vgatherdps xmm2, xmmword ptr [eax+xmm1], xmm0 + vgatherdps xmm2{k7}, xmmword ptr [eax+xmm1] + vscatterdps xmmword ptr [eax+xmm1]{k7}, xmm0 + + vgatherqpd xmm2, qword ptr [eax+xmm1], xmm0 + vgatherqpd xmm2{k7}, qword ptr [eax+xmm1] + vscatterqpd qword ptr [eax+xmm1]{k7}, xmm0 + + vgatherqpd xmm2, xmmword ptr [eax+xmm1], xmm0 + vgatherqpd xmm2{k7}, xmmword ptr [eax+xmm1] + vscatterqpd xmmword ptr [eax+xmm1]{k7}, xmm0 + + vgatherqps xmm2, dword ptr [eax+xmm1], xmm0 + vgatherqps xmm2{k7}, dword ptr [eax+xmm1] + vscatterqps dword ptr [eax+xmm1]{k7}, xmm0 + + vgatherqps xmm2, xmmword ptr [eax+xmm1], xmm0 + vgatherqps xmm2{k7}, xmmword ptr [eax+xmm1] + vscatterqps xmmword ptr [eax+xmm1]{k7}, xmm0 + + vpgatherdd xmm2, dword ptr [eax+xmm1], xmm0 + vpgatherdd xmm2{k7}, dword ptr [eax+xmm1] + vpscatterdd dword ptr [eax+xmm1]{k7}, xmm0 + + vpgatherdd xmm2, xmmword ptr [eax+xmm1], xmm0 + vpgatherdd xmm2{k7}, xmmword ptr [eax+xmm1] + vpscatterdd xmmword ptr [eax+xmm1]{k7}, xmm0 + + vpgatherdq xmm2, qword ptr [eax+xmm1], xmm0 + vpgatherdq xmm2{k7}, qword ptr [eax+xmm1] + vpscatterdq qword ptr [eax+xmm1]{k7}, xmm0 + + vpgatherdq xmm2, xmmword ptr [eax+xmm1], xmm0 + vpgatherdq xmm2{k7}, xmmword ptr [eax+xmm1] + vpscatterdq xmmword ptr [eax+xmm1]{k7}, xmm0 + + vpgatherqd xmm2, dword ptr [eax+xmm1], xmm0 + vpgatherqd xmm2{k7}, dword ptr [eax+xmm1] + vpscatterqd dword ptr [eax+xmm1]{k7}, xmm0 + + vpgatherqd xmm2, xmmword ptr [eax+xmm1], xmm0 + vpgatherqd xmm2{k7}, xmmword ptr [eax+xmm1] + vpscatterqd xmmword ptr [eax+xmm1]{k7}, xmm0 + + vpgatherqq xmm2, qword ptr [eax+xmm1], xmm0 + vpgatherqq xmm2{k7}, qword ptr [eax+xmm1] + vpscatterqq qword ptr [eax+xmm1]{k7}, xmm0 + + vpgatherqq xmm2, xmmword ptr [eax+xmm1], xmm0 + vpgatherqq xmm2{k7}, xmmword ptr [eax+xmm1] + vpscatterqq xmmword ptr [eax+xmm1]{k7}, xmm0 diff --git a/gas/testsuite/gas/i386/x86-64-avx512f.s b/gas/testsuite/gas/i386/x86-64-avx512f.s index e2cbb12..31a0090 100644 --- a/gas/testsuite/gas/i386/x86-64-avx512f.s +++ b/gas/testsuite/gas/i386/x86-64-avx512f.s @@ -11617,26 +11617,26 @@ _start: vfnmsub231ss xmm30{k7}, xmm29, DWORD PTR [rdx-512] # AVX512F Disp8 vfnmsub231ss xmm30{k7}, xmm29, DWORD PTR [rdx-516] # AVX512F - vgatherdpd zmm30{k1}, ZMMWORD PTR [r14+ymm31*8-123] # AVX512F - vgatherdpd zmm30{k1}, ZMMWORD PTR [r14+ymm31*8-123] # AVX512F - vgatherdpd zmm30{k1}, ZMMWORD PTR [r9+ymm31+256] # AVX512F - vgatherdpd zmm30{k1}, ZMMWORD PTR [rcx+ymm31*4+1024] # AVX512F - - vgatherdps zmm30{k1}, ZMMWORD PTR [r14+zmm31*8-123] # AVX512F - vgatherdps zmm30{k1}, ZMMWORD PTR [r14+zmm31*8-123] # AVX512F - vgatherdps zmm30{k1}, ZMMWORD PTR [r9+zmm31+256] # AVX512F - vgatherdps zmm30{k1}, ZMMWORD PTR [rcx+zmm31*4+1024] # AVX512F - - vgatherqpd zmm30{k1}, ZMMWORD PTR [r14+zmm31*8-123] # AVX512F - vgatherqpd zmm30{k1}, ZMMWORD PTR [r14+zmm31*8-123] # AVX512F - vgatherqpd zmm30{k1}, ZMMWORD PTR [r9+zmm31+256] # AVX512F - vgatherqpd zmm30{k1}, ZMMWORD PTR [rcx+zmm31*4+1024] # AVX512F - vgatherqpd zmm3{k1}, ZMMWORD PTR [r14+zmm19*8+123] # AVX512F - - vgatherqps ymm30{k1}, YMMWORD PTR [r14+zmm31*8-123] # AVX512F - vgatherqps ymm30{k1}, YMMWORD PTR [r14+zmm31*8-123] # AVX512F - vgatherqps ymm30{k1}, YMMWORD PTR [r9+zmm31+256] # AVX512F - vgatherqps ymm30{k1}, YMMWORD PTR [rcx+zmm31*4+1024] # AVX512F + vgatherdpd zmm30{k1}, [r14+ymm31*8-123] # AVX512F + vgatherdpd zmm30{k1}, [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}, [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}, [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}, [r9+zmm31+256] # AVX512F + vgatherqps ymm30{k1}, [rcx+zmm31*4+1024] # AVX512F vgetexppd zmm30, zmm29 # AVX512F vgetexppd zmm30{k7}, zmm29 # AVX512F @@ -13020,25 +13020,25 @@ _start: vpexpandq zmm30{k7}, zmm29 # AVX512F vpexpandq zmm30{k7}{z}, zmm29 # AVX512F - vpgatherdd zmm30{k1}, ZMMWORD PTR [r14+zmm31*8-123] # AVX512F - vpgatherdd zmm30{k1}, ZMMWORD PTR [r14+zmm31*8-123] # AVX512F - vpgatherdd zmm30{k1}, ZMMWORD PTR [r9+zmm31+256] # AVX512F - vpgatherdd zmm30{k1}, ZMMWORD PTR [rcx+zmm31*4+1024] # AVX512F + vpgatherdd zmm30{k1}, [r14+zmm31*8-123] # AVX512F + vpgatherdd zmm30{k1}, [r14+zmm31*8-123] # AVX512F + vpgatherdd zmm30{k1}, [r9+zmm31+256] # AVX512F + vpgatherdd zmm30{k1}, [rcx+zmm31*4+1024] # AVX512F - vpgatherdq zmm30{k1}, ZMMWORD PTR [r14+ymm31*8-123] # AVX512F - vpgatherdq zmm30{k1}, ZMMWORD PTR [r14+ymm31*8-123] # AVX512F - vpgatherdq zmm30{k1}, ZMMWORD PTR [r9+ymm31+256] # AVX512F - vpgatherdq zmm30{k1}, ZMMWORD PTR [rcx+ymm31*4+1024] # AVX512F + vpgatherdq zmm30{k1}, [r14+ymm31*8-123] # AVX512F + vpgatherdq zmm30{k1}, [r14+ymm31*8-123] # AVX512F + vpgatherdq zmm30{k1}, [r9+ymm31+256] # AVX512F + vpgatherdq zmm30{k1}, [rcx+ymm31*4+1024] # AVX512F - vpgatherqd ymm30{k1}, YMMWORD PTR [r14+zmm31*8-123] # AVX512F - vpgatherqd ymm30{k1}, YMMWORD PTR [r14+zmm31*8-123] # AVX512F - vpgatherqd ymm30{k1}, YMMWORD PTR [r9+zmm31+256] # AVX512F - vpgatherqd ymm30{k1}, YMMWORD PTR [rcx+zmm31*4+1024] # AVX512F + vpgatherqd ymm30{k1}, [r14+zmm31*8-123] # AVX512F + vpgatherqd ymm30{k1}, [r14+zmm31*8-123] # AVX512F + vpgatherqd ymm30{k1}, [r9+zmm31+256] # AVX512F + vpgatherqd ymm30{k1}, [rcx+zmm31*4+1024] # AVX512F - vpgatherqq zmm30{k1}, ZMMWORD PTR [r14+zmm31*8-123] # AVX512F - vpgatherqq zmm30{k1}, ZMMWORD PTR [r14+zmm31*8-123] # AVX512F - vpgatherqq zmm30{k1}, ZMMWORD PTR [r9+zmm31+256] # AVX512F - vpgatherqq zmm30{k1}, ZMMWORD PTR [rcx+zmm31*4+1024] # AVX512F + vpgatherqq zmm30{k1}, [r14+zmm31*8-123] # AVX512F + vpgatherqq zmm30{k1}, [r14+zmm31*8-123] # AVX512F + vpgatherqq zmm30{k1}, [r9+zmm31+256] # AVX512F + vpgatherqq zmm30{k1}, [rcx+zmm31*4+1024] # AVX512F vpmaxsd zmm30, zmm29, zmm28 # AVX512F vpmaxsd zmm30{k7}, zmm29, zmm28 # AVX512F @@ -13325,25 +13325,25 @@ _start: vporq zmm30, zmm29, [rdx-1024]{1to8} # AVX512F Disp8 vporq zmm30, zmm29, [rdx-1032]{1to8} # AVX512F - vpscatterdd ZMMWORD PTR [r14+zmm31*8-123]{k1}, zmm30 # AVX512F - vpscatterdd ZMMWORD PTR [r14+zmm31*8-123]{k1}, zmm30 # AVX512F - vpscatterdd ZMMWORD PTR [r9+zmm31+256]{k1}, zmm30 # AVX512F - vpscatterdd ZMMWORD PTR [rcx+zmm31*4+1024]{k1}, zmm30 # AVX512F + vpscatterdd [r14+zmm31*8-123]{k1}, zmm30 # AVX512F + vpscatterdd [r14+zmm31*8-123]{k1}, zmm30 # AVX512F + vpscatterdd [r9+zmm31+256]{k1}, zmm30 # AVX512F + vpscatterdd [rcx+zmm31*4+1024]{k1}, zmm30 # AVX512F - vpscatterdq ZMMWORD PTR [r14+ymm31*8-123]{k1}, zmm30 # AVX512F - vpscatterdq ZMMWORD PTR [r14+ymm31*8-123]{k1}, zmm30 # AVX512F - vpscatterdq ZMMWORD PTR [r9+ymm31+256]{k1}, zmm30 # AVX512F - vpscatterdq ZMMWORD PTR [rcx+ymm31*4+1024]{k1}, zmm30 # AVX512F + vpscatterdq [r14+ymm31*8-123]{k1}, zmm30 # AVX512F + vpscatterdq [r14+ymm31*8-123]{k1}, zmm30 # AVX512F + vpscatterdq [r9+ymm31+256]{k1}, zmm30 # AVX512F + vpscatterdq [rcx+ymm31*4+1024]{k1}, zmm30 # AVX512F - vpscatterqd YMMWORD PTR [r14+zmm31*8-123]{k1}, ymm30 # AVX512F - vpscatterqd YMMWORD PTR [r14+zmm31*8-123]{k1}, ymm30 # AVX512F - vpscatterqd YMMWORD PTR [r9+zmm31+256]{k1}, ymm30 # AVX512F - vpscatterqd YMMWORD PTR [rcx+zmm31*4+1024]{k1}, ymm30 # AVX512F + vpscatterqd [r14+zmm31*8-123]{k1}, ymm30 # AVX512F + vpscatterqd [r14+zmm31*8-123]{k1}, ymm30 # AVX512F + vpscatterqd [r9+zmm31+256]{k1}, ymm30 # AVX512F + vpscatterqd [rcx+zmm31*4+1024]{k1}, ymm30 # AVX512F - vpscatterqq ZMMWORD PTR [r14+zmm31*8-123]{k1}, zmm30 # AVX512F - vpscatterqq ZMMWORD PTR [r14+zmm31*8-123]{k1}, zmm30 # AVX512F - vpscatterqq ZMMWORD PTR [r9+zmm31+256]{k1}, zmm30 # AVX512F - vpscatterqq ZMMWORD PTR [rcx+zmm31*4+1024]{k1}, zmm30 # AVX512F + vpscatterqq [r14+zmm31*8-123]{k1}, zmm30 # AVX512F + vpscatterqq [r14+zmm31*8-123]{k1}, zmm30 # AVX512F + vpscatterqq [r9+zmm31+256]{k1}, zmm30 # AVX512F + vpscatterqq [rcx+zmm31*4+1024]{k1}, zmm30 # AVX512F vpshufd zmm30, zmm29, 0xab # AVX512F vpshufd zmm30{k7}, zmm29, 0xab # AVX512F @@ -13781,25 +13781,25 @@ _start: vrsqrt14ss xmm30{k7}, xmm29, DWORD PTR [rdx-512] # AVX512F Disp8 vrsqrt14ss xmm30{k7}, xmm29, DWORD PTR [rdx-516] # AVX512F - vscatterdpd ZMMWORD PTR [r14+ymm31*8-123]{k1}, zmm30 # AVX512F - vscatterdpd ZMMWORD PTR [r14+ymm31*8-123]{k1}, zmm30 # AVX512F - vscatterdpd ZMMWORD PTR [r9+ymm31+256]{k1}, zmm30 # AVX512F - vscatterdpd ZMMWORD PTR [rcx+ymm31*4+1024]{k1}, zmm30 # AVX512F - - vscatterdps ZMMWORD PTR [r14+zmm31*8-123]{k1}, zmm30 # AVX512F - vscatterdps ZMMWORD PTR [r14+zmm31*8-123]{k1}, zmm30 # AVX512F - vscatterdps ZMMWORD PTR [r9+zmm31+256]{k1}, zmm30 # AVX512F - vscatterdps ZMMWORD PTR [rcx+zmm31*4+1024]{k1}, zmm30 # AVX512F - - vscatterqpd ZMMWORD PTR [r14+zmm31*8-123]{k1}, zmm30 # AVX512F - vscatterqpd ZMMWORD PTR [r14+zmm31*8-123]{k1}, zmm30 # AVX512F - vscatterqpd ZMMWORD PTR [r9+zmm31+256]{k1}, zmm30 # AVX512F - vscatterqpd ZMMWORD PTR [rcx+zmm31*4+1024]{k1}, zmm30 # AVX512F - - vscatterqps YMMWORD PTR [r14+zmm31*8-123]{k1}, ymm30 # AVX512F - vscatterqps YMMWORD PTR [r14+zmm31*8-123]{k1}, ymm30 # AVX512F - vscatterqps YMMWORD PTR [r9+zmm31+256]{k1}, ymm30 # AVX512F - vscatterqps YMMWORD PTR [rcx+zmm31*4+1024]{k1}, ymm30 # AVX512F + vscatterdpd [r14+ymm31*8-123]{k1}, zmm30 # AVX512F + vscatterdpd [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 [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 [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 [r9+zmm31+256]{k1}, ymm30 # AVX512F + vscatterqps [rcx+zmm31*4+1024]{k1}, ymm30 # AVX512F vshufpd zmm30, zmm29, zmm28, 0xab # AVX512F vshufpd zmm30{k7}, zmm29, zmm28, 0xab # AVX512F diff --git a/gas/testsuite/gas/i386/x86-64-avx512f_vl.s b/gas/testsuite/gas/i386/x86-64-avx512f_vl.s index 9891f0cd..38cfcf5 100644 --- a/gas/testsuite/gas/i386/x86-64-avx512f_vl.s +++ b/gas/testsuite/gas/i386/x86-64-avx512f_vl.s @@ -8077,30 +8077,30 @@ _start: vfnmsub231ps ymm30, ymm29, [rdx+512]{1to8} # AVX512{F,VL} vfnmsub231ps ymm30, ymm29, [rdx-512]{1to8} # AVX512{F,VL} Disp8 vfnmsub231ps ymm30, ymm29, [rdx-516]{1to8} # AVX512{F,VL} - vgatherdpd xmm30{k1}, XMMWORD PTR [r14+xmm31*8-123] # AVX512{F,VL} - vgatherdpd xmm30{k1}, XMMWORD PTR [r9+xmm31+256] # AVX512{F,VL} - vgatherdpd xmm30{k1}, XMMWORD PTR [rcx+xmm31*4+1024] # AVX512{F,VL} - vgatherdpd ymm30{k1}, YMMWORD PTR [r14+xmm31*8-123] # AVX512{F,VL} - vgatherdpd ymm30{k1}, YMMWORD PTR [r9+xmm31+256] # AVX512{F,VL} - vgatherdpd ymm30{k1}, YMMWORD PTR [rcx+xmm31*4+1024] # AVX512{F,VL} - vgatherdps xmm30{k1}, XMMWORD PTR [r14+xmm31*8-123] # AVX512{F,VL} - vgatherdps xmm30{k1}, XMMWORD PTR [r9+xmm31+256] # AVX512{F,VL} - vgatherdps xmm30{k1}, XMMWORD PTR [rcx+xmm31*4+1024] # AVX512{F,VL} - vgatherdps ymm30{k1}, YMMWORD PTR [r14+ymm31*8-123] # AVX512{F,VL} - vgatherdps ymm30{k1}, YMMWORD PTR [r9+ymm31+256] # AVX512{F,VL} - vgatherdps ymm30{k1}, YMMWORD PTR [rcx+ymm31*4+1024] # AVX512{F,VL} - vgatherqpd xmm30{k1}, XMMWORD PTR [r14+xmm31*8-123] # AVX512{F,VL} - vgatherqpd xmm30{k1}, XMMWORD PTR [r9+xmm31+256] # AVX512{F,VL} - vgatherqpd xmm30{k1}, XMMWORD PTR [rcx+xmm31*4+1024] # AVX512{F,VL} - vgatherqpd ymm30{k1}, YMMWORD PTR [r14+ymm31*8-123] # AVX512{F,VL} - vgatherqpd ymm30{k1}, YMMWORD PTR [r9+ymm31+256] # AVX512{F,VL} - vgatherqpd ymm30{k1}, YMMWORD PTR [rcx+ymm31*4+1024] # AVX512{F,VL} - vgatherqps xmm30{k1}, QWORD PTR [r14+xmm31*8-123] # AVX512{F,VL} - vgatherqps xmm30{k1}, QWORD PTR [r9+xmm31+256] # AVX512{F,VL} - vgatherqps xmm30{k1}, QWORD PTR [rcx+xmm31*4+1024] # AVX512{F,VL} - vgatherqps xmm30{k1}, XMMWORD PTR [r14+ymm31*8-123] # AVX512{F,VL} - vgatherqps xmm30{k1}, XMMWORD PTR [r9+ymm31+256] # AVX512{F,VL} - vgatherqps xmm30{k1}, XMMWORD PTR [rcx+ymm31*4+1024] # AVX512{F,VL} + vgatherdpd xmm30{k1}, [r14+xmm31*8-123] # AVX512{F,VL} + vgatherdpd xmm30{k1}, [r9+xmm31+256] # AVX512{F,VL} + vgatherdpd xmm30{k1}, [rcx+xmm31*4+1024] # AVX512{F,VL} + vgatherdpd ymm30{k1}, [r14+xmm31*8-123] # AVX512{F,VL} + vgatherdpd ymm30{k1}, [r9+xmm31+256] # AVX512{F,VL} + vgatherdpd ymm30{k1}, [rcx+xmm31*4+1024] # AVX512{F,VL} + vgatherdps xmm30{k1}, [r14+xmm31*8-123] # AVX512{F,VL} + vgatherdps xmm30{k1}, [r9+xmm31+256] # AVX512{F,VL} + vgatherdps xmm30{k1}, [rcx+xmm31*4+1024] # AVX512{F,VL} + vgatherdps ymm30{k1}, [r14+ymm31*8-123] # AVX512{F,VL} + vgatherdps ymm30{k1}, [r9+ymm31+256] # AVX512{F,VL} + vgatherdps ymm30{k1}, [rcx+ymm31*4+1024] # AVX512{F,VL} + vgatherqpd xmm30{k1}, [r14+xmm31*8-123] # AVX512{F,VL} + vgatherqpd xmm30{k1}, [r9+xmm31+256] # AVX512{F,VL} + vgatherqpd xmm30{k1}, [rcx+xmm31*4+1024] # AVX512{F,VL} + vgatherqpd ymm30{k1}, [r14+ymm31*8-123] # AVX512{F,VL} + vgatherqpd ymm30{k1}, [r9+ymm31+256] # AVX512{F,VL} + vgatherqpd ymm30{k1}, [rcx+ymm31*4+1024] # AVX512{F,VL} + vgatherqps xmm30{k1}, [r14+xmm31*8-123] # AVX512{F,VL} + vgatherqps xmm30{k1}, [r9+xmm31+256] # AVX512{F,VL} + vgatherqps xmm30{k1}, [rcx+xmm31*4+1024] # AVX512{F,VL} + vgatherqps xmm30{k1}, [r14+ymm31*8-123] # AVX512{F,VL} + vgatherqps xmm30{k1}, [r9+ymm31+256] # AVX512{F,VL} + vgatherqps xmm30{k1}, [rcx+ymm31*4+1024] # AVX512{F,VL} vgetexppd xmm30, xmm29 # AVX512{F,VL} vgetexppd xmm30{k7}, xmm29 # AVX512{F,VL} vgetexppd xmm30{k7}{z}, xmm29 # AVX512{F,VL} @@ -9447,30 +9447,30 @@ _start: vpexpandq ymm30, ymm29 # AVX512{F,VL} vpexpandq ymm30{k7}, ymm29 # AVX512{F,VL} vpexpandq ymm30{k7}{z}, ymm29 # AVX512{F,VL} - vpgatherdd xmm30{k1}, XMMWORD PTR [r14+xmm31*8-123] # AVX512{F,VL} - vpgatherdd xmm30{k1}, XMMWORD PTR [r9+xmm31+256] # AVX512{F,VL} - vpgatherdd xmm30{k1}, XMMWORD PTR [rcx+xmm31*4+1024] # AVX512{F,VL} - vpgatherdd ymm30{k1}, YMMWORD PTR [r14+ymm31*8-123] # AVX512{F,VL} - vpgatherdd ymm30{k1}, YMMWORD PTR [r9+ymm31+256] # AVX512{F,VL} - vpgatherdd ymm30{k1}, YMMWORD PTR [rcx+ymm31*4+1024] # AVX512{F,VL} - vpgatherdq xmm30{k1}, XMMWORD PTR [r14+xmm31*8-123] # AVX512{F,VL} - vpgatherdq xmm30{k1}, XMMWORD PTR [r9+xmm31+256] # AVX512{F,VL} - vpgatherdq xmm30{k1}, XMMWORD PTR [rcx+xmm31*4+1024] # AVX512{F,VL} - vpgatherdq ymm30{k1}, YMMWORD PTR [r14+xmm31*8-123] # AVX512{F,VL} - vpgatherdq ymm30{k1}, YMMWORD PTR [r9+xmm31+256] # AVX512{F,VL} - vpgatherdq ymm30{k1}, YMMWORD PTR [rcx+xmm31*4+1024] # AVX512{F,VL} - vpgatherqd xmm30{k1}, QWORD PTR [r14+xmm31*8-123] # AVX512{F,VL} - vpgatherqd xmm30{k1}, QWORD PTR [r9+xmm31+256] # AVX512{F,VL} - vpgatherqd xmm30{k1}, QWORD PTR [rcx+xmm31*4+1024] # AVX512{F,VL} - vpgatherqd xmm30{k1}, XMMWORD PTR [r14+ymm31*8-123] # AVX512{F,VL} - vpgatherqd xmm30{k1}, XMMWORD PTR [r9+ymm31+256] # AVX512{F,VL} - vpgatherqd xmm30{k1}, XMMWORD PTR [rcx+ymm31*4+1024] # AVX512{F,VL} - vpgatherqq xmm30{k1}, XMMWORD PTR [r14+xmm31*8-123] # AVX512{F,VL} - vpgatherqq xmm30{k1}, XMMWORD PTR [r9+xmm31+256] # AVX512{F,VL} - vpgatherqq xmm30{k1}, XMMWORD PTR [rcx+xmm31*4+1024] # AVX512{F,VL} - vpgatherqq ymm30{k1}, YMMWORD PTR [r14+ymm31*8-123] # AVX512{F,VL} - vpgatherqq ymm30{k1}, YMMWORD PTR [r9+ymm31+256] # AVX512{F,VL} - vpgatherqq ymm30{k1}, YMMWORD PTR [rcx+ymm31*4+1024] # AVX512{F,VL} + vpgatherdd xmm30{k1}, [r14+xmm31*8-123] # AVX512{F,VL} + vpgatherdd xmm30{k1}, [r9+xmm31+256] # AVX512{F,VL} + vpgatherdd xmm30{k1}, [rcx+xmm31*4+1024] # AVX512{F,VL} + vpgatherdd ymm30{k1}, [r14+ymm31*8-123] # AVX512{F,VL} + vpgatherdd ymm30{k1}, [r9+ymm31+256] # AVX512{F,VL} + vpgatherdd ymm30{k1}, [rcx+ymm31*4+1024] # AVX512{F,VL} + vpgatherdq xmm30{k1}, [r14+xmm31*8-123] # AVX512{F,VL} + vpgatherdq xmm30{k1}, [r9+xmm31+256] # AVX512{F,VL} + vpgatherdq xmm30{k1}, [rcx+xmm31*4+1024] # AVX512{F,VL} + vpgatherdq ymm30{k1}, [r14+xmm31*8-123] # AVX512{F,VL} + vpgatherdq ymm30{k1}, [r9+xmm31+256] # AVX512{F,VL} + vpgatherdq ymm30{k1}, [rcx+xmm31*4+1024] # AVX512{F,VL} + vpgatherqd xmm30{k1}, [r14+xmm31*8-123] # AVX512{F,VL} + vpgatherqd xmm30{k1}, [r9+xmm31+256] # AVX512{F,VL} + vpgatherqd xmm30{k1}, [rcx+xmm31*4+1024] # AVX512{F,VL} + vpgatherqd xmm30{k1}, [r14+ymm31*8-123] # AVX512{F,VL} + vpgatherqd xmm30{k1}, [r9+ymm31+256] # AVX512{F,VL} + vpgatherqd xmm30{k1}, [rcx+ymm31*4+1024] # AVX512{F,VL} + vpgatherqq xmm30{k1}, [r14+xmm31*8-123] # AVX512{F,VL} + vpgatherqq xmm30{k1}, [r9+xmm31+256] # AVX512{F,VL} + vpgatherqq xmm30{k1}, [rcx+xmm31*4+1024] # AVX512{F,VL} + vpgatherqq ymm30{k1}, [r14+ymm31*8-123] # AVX512{F,VL} + vpgatherqq ymm30{k1}, [r9+ymm31+256] # AVX512{F,VL} + vpgatherqq ymm30{k1}, [rcx+ymm31*4+1024] # AVX512{F,VL} vpmaxsd xmm30, xmm29, xmm28 # AVX512{F,VL} vpmaxsd xmm30{k7}, xmm29, xmm28 # AVX512{F,VL} vpmaxsd xmm30{k7}{z}, xmm29, xmm28 # AVX512{F,VL} @@ -10015,38 +10015,38 @@ _start: vporq ymm30, ymm29, [rdx+1024]{1to4} # AVX512{F,VL} vporq ymm30, ymm29, [rdx-1024]{1to4} # AVX512{F,VL} Disp8 vporq ymm30, ymm29, [rdx-1032]{1to4} # AVX512{F,VL} - vpscatterdd XMMWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vpscatterdd XMMWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vpscatterdd XMMWORD PTR [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} - vpscatterdd XMMWORD PTR [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} - vpscatterdd YMMWORD PTR [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} - vpscatterdd YMMWORD PTR [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} - vpscatterdd YMMWORD PTR [r9+ymm31+256]{k1}, ymm30 # AVX512{F,VL} - vpscatterdd YMMWORD PTR [rcx+ymm31*4+1024]{k1}, ymm30 # AVX512{F,VL} - vpscatterdq XMMWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vpscatterdq XMMWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vpscatterdq XMMWORD PTR [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} - vpscatterdq XMMWORD PTR [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} - vpscatterdq YMMWORD PTR [r14+xmm31*8-123]{k1}, ymm30 # AVX512{F,VL} - vpscatterdq YMMWORD PTR [r14+xmm31*8-123]{k1}, ymm30 # AVX512{F,VL} - vpscatterdq YMMWORD PTR [r9+xmm31+256]{k1}, ymm30 # AVX512{F,VL} - vpscatterdq YMMWORD PTR [rcx+xmm31*4+1024]{k1}, ymm30 # AVX512{F,VL} - vpscatterqd QWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vpscatterqd QWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vpscatterqd QWORD PTR [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} - vpscatterqd QWORD PTR [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} - vpscatterqd XMMWORD PTR [r14+ymm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vpscatterqd XMMWORD PTR [r14+ymm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vpscatterqd XMMWORD PTR [r9+ymm31+256]{k1}, xmm30 # AVX512{F,VL} - vpscatterqd XMMWORD PTR [rcx+ymm31*4+1024]{k1}, xmm30 # AVX512{F,VL} - vpscatterqq XMMWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vpscatterqq XMMWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vpscatterqq XMMWORD PTR [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} - vpscatterqq XMMWORD PTR [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} - vpscatterqq YMMWORD PTR [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} - vpscatterqq YMMWORD PTR [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} - vpscatterqq YMMWORD PTR [r9+ymm31+256]{k1}, ymm30 # AVX512{F,VL} - vpscatterqq YMMWORD PTR [rcx+ymm31*4+1024]{k1}, ymm30 # AVX512{F,VL} + vpscatterdd [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vpscatterdd [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vpscatterdd [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} + vpscatterdd [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} + vpscatterdd [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} + vpscatterdd [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} + vpscatterdd [r9+ymm31+256]{k1}, ymm30 # AVX512{F,VL} + vpscatterdd [rcx+ymm31*4+1024]{k1}, ymm30 # AVX512{F,VL} + vpscatterdq [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vpscatterdq [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vpscatterdq [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} + vpscatterdq [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} + vpscatterdq [r14+xmm31*8-123]{k1}, ymm30 # AVX512{F,VL} + vpscatterdq [r14+xmm31*8-123]{k1}, ymm30 # AVX512{F,VL} + vpscatterdq [r9+xmm31+256]{k1}, ymm30 # AVX512{F,VL} + vpscatterdq [rcx+xmm31*4+1024]{k1}, ymm30 # AVX512{F,VL} + vpscatterqd [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vpscatterqd [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vpscatterqd [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} + vpscatterqd [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} + vpscatterqd [r14+ymm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vpscatterqd [r14+ymm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vpscatterqd [r9+ymm31+256]{k1}, xmm30 # AVX512{F,VL} + vpscatterqd [rcx+ymm31*4+1024]{k1}, xmm30 # AVX512{F,VL} + vpscatterqq [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vpscatterqq [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vpscatterqq [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} + vpscatterqq [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} + vpscatterqq [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} + vpscatterqq [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} + vpscatterqq [r9+ymm31+256]{k1}, ymm30 # AVX512{F,VL} + vpscatterqq [rcx+ymm31*4+1024]{k1}, ymm30 # AVX512{F,VL} vpshufd xmm30, xmm29, 0xab # AVX512{F,VL} vpshufd xmm30{k7}, xmm29, 0xab # AVX512{F,VL} vpshufd xmm30{k7}{z}, xmm29, 0xab # AVX512{F,VL} @@ -10801,38 +10801,38 @@ _start: vrsqrt14ps ymm30, [rdx+512]{1to8} # AVX512{F,VL} vrsqrt14ps ymm30, [rdx-512]{1to8} # AVX512{F,VL} Disp8 vrsqrt14ps ymm30, [rdx-516]{1to8} # AVX512{F,VL} - vscatterdpd XMMWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vscatterdpd XMMWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vscatterdpd XMMWORD PTR [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} - vscatterdpd XMMWORD PTR [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} - vscatterdpd YMMWORD PTR [r14+xmm31*8-123]{k1}, ymm30 # AVX512{F,VL} - vscatterdpd YMMWORD PTR [r14+xmm31*8-123]{k1}, ymm30 # AVX512{F,VL} - vscatterdpd YMMWORD PTR [r9+xmm31+256]{k1}, ymm30 # AVX512{F,VL} - vscatterdpd YMMWORD PTR [rcx+xmm31*4+1024]{k1}, ymm30 # AVX512{F,VL} - vscatterdps XMMWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vscatterdps XMMWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vscatterdps XMMWORD PTR [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} - vscatterdps XMMWORD PTR [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} - vscatterdps YMMWORD PTR [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} - vscatterdps YMMWORD PTR [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} - vscatterdps YMMWORD PTR [r9+ymm31+256]{k1}, ymm30 # AVX512{F,VL} - vscatterdps YMMWORD PTR [rcx+ymm31*4+1024]{k1}, ymm30 # AVX512{F,VL} - vscatterqpd XMMWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vscatterqpd XMMWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vscatterqpd XMMWORD PTR [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} - vscatterqpd XMMWORD PTR [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} - vscatterqpd YMMWORD PTR [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} - vscatterqpd YMMWORD PTR [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} - vscatterqpd YMMWORD PTR [r9+ymm31+256]{k1}, ymm30 # AVX512{F,VL} - vscatterqpd YMMWORD PTR [rcx+ymm31*4+1024]{k1}, ymm30 # AVX512{F,VL} - vscatterqps QWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vscatterqps QWORD PTR [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vscatterqps QWORD PTR [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} - vscatterqps QWORD PTR [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} - vscatterqps XMMWORD PTR [r14+ymm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vscatterqps XMMWORD PTR [r14+ymm31*8-123]{k1}, xmm30 # AVX512{F,VL} - vscatterqps XMMWORD PTR [r9+ymm31+256]{k1}, xmm30 # AVX512{F,VL} - vscatterqps XMMWORD PTR [rcx+ymm31*4+1024]{k1}, xmm30 # AVX512{F,VL} + vscatterdpd [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vscatterdpd [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vscatterdpd [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} + vscatterdpd [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} + vscatterdpd [r14+xmm31*8-123]{k1}, ymm30 # AVX512{F,VL} + vscatterdpd [r14+xmm31*8-123]{k1}, ymm30 # AVX512{F,VL} + vscatterdpd [r9+xmm31+256]{k1}, ymm30 # AVX512{F,VL} + vscatterdpd [rcx+xmm31*4+1024]{k1}, ymm30 # AVX512{F,VL} + vscatterdps [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vscatterdps [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vscatterdps [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} + vscatterdps [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} + vscatterdps [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} + vscatterdps [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} + vscatterdps [r9+ymm31+256]{k1}, ymm30 # AVX512{F,VL} + vscatterdps [rcx+ymm31*4+1024]{k1}, ymm30 # AVX512{F,VL} + vscatterqpd [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vscatterqpd [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vscatterqpd [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} + vscatterqpd [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} + vscatterqpd [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} + vscatterqpd [r14+ymm31*8-123]{k1}, ymm30 # AVX512{F,VL} + vscatterqpd [r9+ymm31+256]{k1}, ymm30 # AVX512{F,VL} + vscatterqpd [rcx+ymm31*4+1024]{k1}, ymm30 # AVX512{F,VL} + vscatterqps [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vscatterqps [r14+xmm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vscatterqps [r9+xmm31+256]{k1}, xmm30 # AVX512{F,VL} + vscatterqps [rcx+xmm31*4+1024]{k1}, xmm30 # AVX512{F,VL} + vscatterqps [r14+ymm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vscatterqps [r14+ymm31*8-123]{k1}, xmm30 # AVX512{F,VL} + vscatterqps [r9+ymm31+256]{k1}, xmm30 # AVX512{F,VL} + vscatterqps [rcx+ymm31*4+1024]{k1}, xmm30 # AVX512{F,VL} vshufpd xmm30, xmm29, xmm28, 0xab # AVX512{F,VL} vshufpd xmm30{k7}, xmm29, xmm28, 0xab # AVX512{F,VL} vshufpd xmm30{k7}{z}, xmm29, xmm28, 0xab # AVX512{F,VL} diff --git a/gas/testsuite/gas/i386/x86-64-avx512pf.s b/gas/testsuite/gas/i386/x86-64-avx512pf.s index bceae73..b53f803 100644 --- a/gas/testsuite/gas/i386/x86-64-avx512pf.s +++ b/gas/testsuite/gas/i386/x86-64-avx512pf.s @@ -85,83 +85,83 @@ _start: vscatterpf1qps 1024(%rcx,%zmm31,4){%k1} # AVX512PF .intel_syntax noprefix - vgatherpf0dpd ZMMWORD PTR [r14+ymm31*8-123]{k1} # AVX512PF - vgatherpf0dpd ZMMWORD PTR [r14+ymm31*8-123]{k1} # AVX512PF - vgatherpf0dpd ZMMWORD PTR [r9+ymm31+256]{k1} # AVX512PF - vgatherpf0dpd ZMMWORD PTR [rcx+ymm31*4+1024]{k1} # AVX512PF - - vgatherpf0dps ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vgatherpf0dps ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vgatherpf0dps ZMMWORD PTR [r9+zmm31+256]{k1} # AVX512PF - vgatherpf0dps ZMMWORD PTR [rcx+zmm31*4+1024]{k1} # AVX512PF - - vgatherpf0qpd ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vgatherpf0qpd ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vgatherpf0qpd ZMMWORD PTR [r9+zmm31+256]{k1} # AVX512PF - vgatherpf0qpd ZMMWORD PTR [rcx+zmm31*4+1024]{k1} # AVX512PF - - vgatherpf0qps YMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vgatherpf0qps YMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vgatherpf0qps YMMWORD PTR [r9+zmm31+256]{k1} # AVX512PF - vgatherpf0qps YMMWORD PTR [rcx+zmm31*4+1024]{k1} # AVX512PF - - vgatherpf1dpd ZMMWORD PTR [r14+ymm31*8-123]{k1} # AVX512PF - vgatherpf1dpd ZMMWORD PTR [r14+ymm31*8-123]{k1} # AVX512PF - vgatherpf1dpd ZMMWORD PTR [r9+ymm31+256]{k1} # AVX512PF - vgatherpf1dpd ZMMWORD PTR [rcx+ymm31*4+1024]{k1} # AVX512PF - - vgatherpf1dps ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vgatherpf1dps ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vgatherpf1dps ZMMWORD PTR [r9+zmm31+256]{k1} # AVX512PF - vgatherpf1dps ZMMWORD PTR [rcx+zmm31*4+1024]{k1} # AVX512PF - - vgatherpf1qpd ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vgatherpf1qpd ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vgatherpf1qpd ZMMWORD PTR [r9+zmm31+256]{k1} # AVX512PF - vgatherpf1qpd ZMMWORD PTR [rcx+zmm31*4+1024]{k1} # AVX512PF - - vgatherpf1qps YMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vgatherpf1qps YMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vgatherpf1qps YMMWORD PTR [r9+zmm31+256]{k1} # AVX512PF - vgatherpf1qps YMMWORD PTR [rcx+zmm31*4+1024]{k1} # AVX512PF - - vscatterpf0dpd ZMMWORD PTR [r14+ymm31*8-123]{k1} # AVX512PF - vscatterpf0dpd ZMMWORD PTR [r14+ymm31*8-123]{k1} # AVX512PF - vscatterpf0dpd ZMMWORD PTR [r9+ymm31+256]{k1} # AVX512PF - vscatterpf0dpd ZMMWORD PTR [rcx+ymm31*4+1024]{k1} # AVX512PF - - vscatterpf0dps ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vscatterpf0dps ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vscatterpf0dps ZMMWORD PTR [r9+zmm31+256]{k1} # AVX512PF - vscatterpf0dps ZMMWORD PTR [rcx+zmm31*4+1024]{k1} # AVX512PF - - vscatterpf0qpd ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vscatterpf0qpd ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vscatterpf0qpd ZMMWORD PTR [r9+zmm31+256]{k1} # AVX512PF - vscatterpf0qpd ZMMWORD PTR [rcx+zmm31*4+1024]{k1} # AVX512PF - - vscatterpf0qps YMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vscatterpf0qps YMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vscatterpf0qps YMMWORD PTR [r9+zmm31+256]{k1} # AVX512PF - vscatterpf0qps YMMWORD PTR [rcx+zmm31*4+1024]{k1} # AVX512PF - - vscatterpf1dpd ZMMWORD PTR [r14+ymm31*8-123]{k1} # AVX512PF - vscatterpf1dpd ZMMWORD PTR [r14+ymm31*8-123]{k1} # AVX512PF - vscatterpf1dpd ZMMWORD PTR [r9+ymm31+256]{k1} # AVX512PF - vscatterpf1dpd ZMMWORD PTR [rcx+ymm31*4+1024]{k1} # AVX512PF - - vscatterpf1dps ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vscatterpf1dps ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vscatterpf1dps ZMMWORD PTR [r9+zmm31+256]{k1} # AVX512PF - vscatterpf1dps ZMMWORD PTR [rcx+zmm31*4+1024]{k1} # AVX512PF - - vscatterpf1qpd ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vscatterpf1qpd ZMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vscatterpf1qpd ZMMWORD PTR [r9+zmm31+256]{k1} # AVX512PF - vscatterpf1qpd ZMMWORD PTR [rcx+zmm31*4+1024]{k1} # AVX512PF - - vscatterpf1qps YMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vscatterpf1qps YMMWORD PTR [r14+zmm31*8-123]{k1} # AVX512PF - vscatterpf1qps YMMWORD PTR [r9+zmm31+256]{k1} # AVX512PF - vscatterpf1qps YMMWORD PTR [rcx+zmm31*4+1024]{k1} # AVX512PF + vgatherpf0dpd [r14+ymm31*8-123]{k1} # AVX512PF + vgatherpf0dpd [r14+ymm31*8-123]{k1} # AVX512PF + vgatherpf0dpd [r9+ymm31+256]{k1} # AVX512PF + vgatherpf0dpd [rcx+ymm31*4+1024]{k1} # AVX512PF + + vgatherpf0dps [r14+zmm31*8-123]{k1} # AVX512PF + vgatherpf0dps [r14+zmm31*8-123]{k1} # AVX512PF + vgatherpf0dps [r9+zmm31+256]{k1} # AVX512PF + vgatherpf0dps [rcx+zmm31*4+1024]{k1} # AVX512PF + + vgatherpf0qpd [r14+zmm31*8-123]{k1} # AVX512PF + vgatherpf0qpd [r14+zmm31*8-123]{k1} # AVX512PF + vgatherpf0qpd [r9+zmm31+256]{k1} # AVX512PF + vgatherpf0qpd [rcx+zmm31*4+1024]{k1} # AVX512PF + + vgatherpf0qps [r14+zmm31*8-123]{k1} # AVX512PF + vgatherpf0qps [r14+zmm31*8-123]{k1} # AVX512PF + vgatherpf0qps [r9+zmm31+256]{k1} # AVX512PF + vgatherpf0qps [rcx+zmm31*4+1024]{k1} # AVX512PF + + vgatherpf1dpd [r14+ymm31*8-123]{k1} # AVX512PF + vgatherpf1dpd [r14+ymm31*8-123]{k1} # AVX512PF + vgatherpf1dpd [r9+ymm31+256]{k1} # AVX512PF + vgatherpf1dpd [rcx+ymm31*4+1024]{k1} # AVX512PF + + vgatherpf1dps [r14+zmm31*8-123]{k1} # AVX512PF + vgatherpf1dps [r14+zmm31*8-123]{k1} # AVX512PF + vgatherpf1dps [r9+zmm31+256]{k1} # AVX512PF + vgatherpf1dps [rcx+zmm31*4+1024]{k1} # AVX512PF + + vgatherpf1qpd [r14+zmm31*8-123]{k1} # AVX512PF + vgatherpf1qpd [r14+zmm31*8-123]{k1} # AVX512PF + vgatherpf1qpd [r9+zmm31+256]{k1} # AVX512PF + vgatherpf1qpd [rcx+zmm31*4+1024]{k1} # AVX512PF + + vgatherpf1qps [r14+zmm31*8-123]{k1} # AVX512PF + vgatherpf1qps [r14+zmm31*8-123]{k1} # AVX512PF + vgatherpf1qps [r9+zmm31+256]{k1} # AVX512PF + vgatherpf1qps [rcx+zmm31*4+1024]{k1} # AVX512PF + + vscatterpf0dpd [r14+ymm31*8-123]{k1} # AVX512PF + vscatterpf0dpd [r14+ymm31*8-123]{k1} # AVX512PF + vscatterpf0dpd [r9+ymm31+256]{k1} # AVX512PF + vscatterpf0dpd [rcx+ymm31*4+1024]{k1} # AVX512PF + + vscatterpf0dps [r14+zmm31*8-123]{k1} # AVX512PF + vscatterpf0dps [r14+zmm31*8-123]{k1} # AVX512PF + vscatterpf0dps [r9+zmm31+256]{k1} # AVX512PF + vscatterpf0dps [rcx+zmm31*4+1024]{k1} # AVX512PF + + vscatterpf0qpd [r14+zmm31*8-123]{k1} # AVX512PF + vscatterpf0qpd [r14+zmm31*8-123]{k1} # AVX512PF + vscatterpf0qpd [r9+zmm31+256]{k1} # AVX512PF + vscatterpf0qpd [rcx+zmm31*4+1024]{k1} # AVX512PF + + vscatterpf0qps [r14+zmm31*8-123]{k1} # AVX512PF + vscatterpf0qps [r14+zmm31*8-123]{k1} # AVX512PF + vscatterpf0qps [r9+zmm31+256]{k1} # AVX512PF + vscatterpf0qps [rcx+zmm31*4+1024]{k1} # AVX512PF + + vscatterpf1dpd [r14+ymm31*8-123]{k1} # AVX512PF + vscatterpf1dpd [r14+ymm31*8-123]{k1} # AVX512PF + vscatterpf1dpd [r9+ymm31+256]{k1} # AVX512PF + vscatterpf1dpd [rcx+ymm31*4+1024]{k1} # AVX512PF + + vscatterpf1dps [r14+zmm31*8-123]{k1} # AVX512PF + vscatterpf1dps [r14+zmm31*8-123]{k1} # AVX512PF + vscatterpf1dps [r9+zmm31+256]{k1} # AVX512PF + vscatterpf1dps [rcx+zmm31*4+1024]{k1} # AVX512PF + + vscatterpf1qpd [r14+zmm31*8-123]{k1} # AVX512PF + vscatterpf1qpd [r14+zmm31*8-123]{k1} # AVX512PF + vscatterpf1qpd [r9+zmm31+256]{k1} # AVX512PF + vscatterpf1qpd [rcx+zmm31*4+1024]{k1} # AVX512PF + + vscatterpf1qps [r14+zmm31*8-123]{k1} # AVX512PF + vscatterpf1qps [r14+zmm31*8-123]{k1} # AVX512PF + vscatterpf1qps [r9+zmm31+256]{k1} # AVX512PF + vscatterpf1qps [rcx+zmm31*4+1024]{k1} # AVX512PF -- cgit v1.1