diff --git a/gas/testsuite/gas/i386/inval-avx512f.l b/gas/testsuite/gas/i386/inval-avx512f.l index 6c525f0..0f170d8 100644 --- a/gas/testsuite/gas/i386/inval-avx512f.l +++ b/gas/testsuite/gas/i386/inval-avx512f.l @@ -1,77 +1,86 @@ .*: Assembler messages: -.*:4: Error: .* .*:5: Error: .* .*:6: Error: .* .*:7: Error: .* .*:8: Error: .* .*:9: Error: .* -.*:11: Error: .* +.*:10: Error: .* .*:12: Error: .* -.*:14: Error: .* +.*:13: Error: .* .*:15: Error: .* -.*:17: Error: .* +.*:16: Error: .* +.*:18: Error: .* +.*:19: Error: .* .*:20: Error: .* -.*:21: Error: .* -.*:22: Error: .* .*:23: Error: .* -.*:23: Error: .* -.*:24: Error: .* .*:24: Error: .* .*:25: Error: .* -.*:25: Error: .* +.*:26: Error: .* +.*:26: Error: .* .*:27: Error: .* +.*:27: Error: .* +.*:28: Error: .* .*:28: Error: .* .*:30: Error: .* .*:31: Error: .* .*:33: Error: .* -.*:35: Error: .* +.*:34: Error: .* .*:36: Error: .* .*:37: Error: .* .*:38: Error: .* -.*:39: Error: .* .*:40: Error: .* .*:41: Error: .* +.*:42: Error: .* +.*:43: Error: .* +.*:44: Error: .* +.*:45: Error: .* +.*:46: Error: .* GAS LISTING .* [ ]*1[ ]+# Check illegal AVX512F instructions [ ]*2[ ]+\.text -[ ]*3[ ]+_start: -[ ]*4[ ]+mov \{sae\}, %eax\{%k1\} -[ ]*5[ ]+mov \{sae\}, %eax -[ ]*6[ ]+mov %ebx, %eax\{%k2\} -[ ]*7[ ]+vaddps %zmm3, %zmm1, %zmm2\{z\}\{%k1\}\{z\} -[ ]*8[ ]+vaddps %zmm3, %zmm1\{%k3\}, %zmm2\{z\} -[ ]*9[ ]+vaddps %zmm3, %zmm1\{%k1\}, %zmm2\{%k2\} -[ ]*10[ ]+ -[ ]*11[ ]+vcvtps2pd \(%eax\), %zmm1\{1to8\} -[ ]*12[ ]+vcvtps2pd \(%eax\)\{1to16\}, %zmm1 -[ ]*13[ ]+ -[ ]*14[ ]+vcvtps2pd \(%eax\)\{%k1\}, %zmm1 -[ ]*15[ ]+vcvtps2pd \(%eax\)\{z\}, %zmm1 -[ ]*16[ ]+ -[ ]*17[ ]+vgatherqpd \(%rdi,%zmm2,8\),%zmm6 -[ ]*18[ ]+ -[ ]*19[ ]+\.intel_syntax noprefix -[ ]*20[ ]+mov eax\{k1\}, \{sae\} -[ ]*21[ ]+mov eax, \{sae\} -[ ]*22[ ]+mov eax\{k2\}, ebx -[ ]*23[ ]+vaddps zmm2\{z\}\{k1\}\{z\}, zmm1, zmm3 -[ ]*24[ ]+vaddps zmm2\{z\}, zmm1\{k3\}, zmm3 -[ ]*25[ ]+vaddps zmm2\{k2\}, zmm1\{k1\}, zmm3 -[ ]*26[ ]+ -[ ]*27[ ]+vcvtps2pd zmm1\{1to8\}, \[eax\] -[ ]*28[ ]+vcvtps2pd zmm1, \[eax\]\{1to16\} +[ ]*3[ ]+\.allow_index_reg +[ ]*4[ ]+_start: +[ ]*5[ ]+mov \{sae\}, %eax\{%k1\} +[ ]*6[ ]+mov \{sae\}, %eax +[ ]*7[ ]+mov %ebx, %eax\{%k2\} +[ ]*8[ ]+vaddps %zmm3, %zmm1, %zmm2\{z\}\{%k1\}\{z\} +[ ]*9[ ]+vaddps %zmm3, %zmm1\{%k3\}, %zmm2\{z\} +[ ]*10[ ]+vaddps %zmm3, %zmm1\{%k1\}, %zmm2\{%k2\} +[ ]*11[ ]+ +[ ]*12[ ]+vcvtps2pd \(%eax\), %zmm1\{1to8\} +[ ]*13[ ]+vcvtps2pd \(%eax\)\{1to16\}, %zmm1 +[ ]*14[ ]+ +[ ]*15[ ]+vcvtps2pd \(%eax\)\{%k1\}, %zmm1 +[ ]*16[ ]+vcvtps2pd \(%eax\)\{z\}, %zmm1 +[ ]*17[ ]+ +[ ]*18[ ]+vgatherqpd \(%rdi,%zmm2,8\),%zmm6 +[ ]*19[ ]+vgatherqpd \(%edi\),%zmm6\{%k1\} +[ ]*20[ ]+vgatherqpd \(%zmm2\),%zmm6\{%k1\} +[ ]*21[ ]+ +[ ]*22[ ]+\.intel_syntax noprefix +[ ]*23[ ]+mov eax\{k1\}, \{sae\} +[ ]*24[ ]+mov eax, \{sae\} +[ ]*25[ ]+mov eax\{k2\}, ebx +[ ]*26[ ]+vaddps zmm2\{z\}\{k1\}\{z\}, zmm1, zmm3 +[ ]*27[ ]+vaddps zmm2\{z\}, zmm1\{k3\}, zmm3 +[ ]*28[ ]+vaddps zmm2\{k2\}, zmm1\{k1\}, zmm3 [ ]*29[ ]+ -[ ]*30[ ]+vcvtps2pd zmm1, \[eax\]\{k1\} -[ ]*31[ ]+vcvtps2pd zmm1, \[eax\]\{z\} +[ ]*30[ ]+vcvtps2pd zmm1\{1to8\}, \[eax\] +[ ]*31[ ]+vcvtps2pd zmm1, \[eax\]\{1to16\} [ ]*32[ ]+ -[ ]*33[ ]+vgatherqpd zmm6, ZMMWORD PTR \[rdi\+zmm2\*8\] -[ ]*34[ ]+ -[ ]*35[ ]+vaddps zmm2, zmm1, QWORD PTR \[eax\]\{1to8\} -[ ]*36[ ]+vaddps zmm2, zmm1, QWORD PTR \[eax\]\{1to16\} -[ ]*37[ ]+vaddpd zmm2, zmm1, DWORD PTR \[eax\]\{1to8\} -[ ]*38[ ]+vaddpd zmm2, zmm1, DWORD PTR \[eax\]\{1to16\} -[ ]*39[ ]+vaddps zmm2, zmm1, ZMMWORD PTR \[eax\]\{1to16\} -[ ]*40[ ]+vaddps zmm2, zmm1, DWORD PTR \[eax\] -[ ]*41[ ]+vaddpd zmm2, zmm1, QWORD PTR \[eax\] +[ ]*33[ ]+vcvtps2pd zmm1, \[eax\]\{k1\} +[ ]*34[ ]+vcvtps2pd zmm1, \[eax\]\{z\} +[ ]*35[ ]+ +[ ]*36[ ]+vgatherqpd zmm6, ZMMWORD PTR \[rdi\+zmm2\*8\] +[ ]*37[ ]+vgatherqpd zmm6\{k1\}, ZMMWORD PTR \[edi\] +[ ]*38[ ]+vgatherqpd zmm6\{k1\}, ZMMWORD PTR \[zmm2\+eiz\] +[ ]*39[ ]+ +[ ]*40[ ]+vaddps zmm2, zmm1, QWORD PTR \[eax\]\{1to8\} +[ ]*41[ ]+vaddps zmm2, zmm1, QWORD PTR \[eax\]\{1to16\} +[ ]*42[ ]+vaddpd zmm2, zmm1, DWORD PTR \[eax\]\{1to8\} +[ ]*43[ ]+vaddpd zmm2, zmm1, DWORD PTR \[eax\]\{1to16\} +[ ]*44[ ]+vaddps zmm2, zmm1, ZMMWORD PTR \[eax\]\{1to16\} +[ ]*45[ ]+vaddps zmm2, zmm1, DWORD PTR \[eax\] +[ ]*46[ ]+vaddpd zmm2, zmm1, QWORD PTR \[eax\] diff --git a/gas/testsuite/gas/i386/inval-avx512f.s b/gas/testsuite/gas/i386/inval-avx512f.s index b1ddba4..8cffe27 100644 --- a/gas/testsuite/gas/i386/inval-avx512f.s +++ b/gas/testsuite/gas/i386/inval-avx512f.s @@ -1,5 +1,6 @@ # Check illegal AVX512F instructions .text + .allow_index_reg _start: mov {sae}, %eax{%k1} mov {sae}, %eax @@ -15,6 +16,8 @@ _start: vcvtps2pd (%eax){z}, %zmm1 vgatherqpd (%rdi,%zmm2,8),%zmm6 + vgatherqpd (%edi),%zmm6{%k1} + vgatherqpd (%zmm2),%zmm6{%k1} .intel_syntax noprefix mov eax{k1}, {sae} @@ -31,6 +34,8 @@ _start: vcvtps2pd zmm1, [eax]{z} vgatherqpd zmm6, ZMMWORD PTR [rdi+zmm2*8] + vgatherqpd zmm6{k1}, ZMMWORD PTR [edi] + vgatherqpd zmm6{k1}, ZMMWORD PTR [zmm2+eiz] vaddps zmm2, zmm1, QWORD PTR [eax]{1to8} vaddps zmm2, zmm1, QWORD PTR [eax]{1to16} diff --git a/gas/testsuite/gas/i386/x86-64-inval-avx512f.l b/gas/testsuite/gas/i386/x86-64-inval-avx512f.l index 436acb0..a78d70c 100644 --- a/gas/testsuite/gas/i386/x86-64-inval-avx512f.l +++ b/gas/testsuite/gas/i386/x86-64-inval-avx512f.l @@ -1,71 +1,82 @@ .*: Assembler messages: -.*:4: Error: .* .*:5: Error: .* .*:6: Error: .* .*:7: Error: .* .*:8: Error: .* .*:9: Error: .* -.*:11: Error: .* +.*:10: Error: .* .*:12: Error: .* -.*:14: Error: .* +.*:13: Error: .* .*:15: Error: .* +.*:16: Error: .* .*:18: Error: .* .*:19: Error: .* -.*:20: Error: .* -.*:21: Error: .* -.*:21: Error: .* .*:22: Error: .* -.*:22: Error: .* -.*:23: Error: .* .*:23: Error: .* +.*:24: Error: .* .*:25: Error: .* +.*:25: Error: .* +.*:26: Error: .* .*:26: Error: .* -.*:28: Error: .* +.*:27: Error: .* +.*:27: Error: .* .*:29: Error: .* -.*:31: Error: .* +.*:30: Error: .* .*:32: Error: .* .*:33: Error: .* -.*:34: Error: .* .*:35: Error: .* .*:36: Error: .* -.*:37: Error: .* +.*:38: Error: .* +.*:39: Error: .* +.*:40: Error: .* +.*:41: Error: .* +.*:42: Error: .* +.*:43: Error: .* +.*:44: Error: .* GAS LISTING .* [ ]*1[ ]+# Check illegal AVX512F instructions [ ]*2[ ]+\.text -[ ]*3[ ]+_start: -[ ]*4[ ]+mov \{sae\}, %rax\{%k1\} -[ ]*5[ ]+mov \{sae\}, %rax -[ ]*6[ ]+mov %rbx, %rax\{%k2\} -[ ]*7[ ]+vaddps %zmm3, %zmm1, %zmm2\{z\}\{%k1\}\{z\} -[ ]*8[ ]+vaddps %zmm3, %zmm1\{%k3\}, %zmm2\{z\} -[ ]*9[ ]+vaddps %zmm3, %zmm1\{%k1\}, %zmm2\{%k2\} -[ ]*10[ ]+ -[ ]*11[ ]+vcvtps2pd \(%rax\), %zmm1\{1to8\} -[ ]*12[ ]+vcvtps2pd \(%rax\)\{1to16\}, %zmm1 -[ ]*13[ ]+ -[ ]*14[ ]+vcvtps2pd \(%rax\)\{%k1\}, %zmm1 -[ ]*15[ ]+vcvtps2pd \(%rax\)\{z\}, %zmm1 -[ ]*16[ ]+ -[ ]*17[ ]+\.intel_syntax noprefix -[ ]*18[ ]+mov rax\{k1\}, \{sae\} -[ ]*19[ ]+mov rax, \{sae\} -[ ]*20[ ]+mov rax\{k2\}, rbx -[ ]*21[ ]+vaddps zmm2\{z\}\{k1\}\{z\}, zmm1, zmm3 -[ ]*22[ ]+vaddps zmm2\{z\}, zmm1\{k3\}, zmm3 -[ ]*23[ ]+vaddps zmm2\{k2\}, zmm1\{k1\}, zmm3 -[ ]*24[ ]+ -[ ]*25[ ]+vcvtps2pd zmm1\{1to8\}, \[rax\] -[ ]*26[ ]+vcvtps2pd zmm1, \[rax\]\{1to16\} -[ ]*27[ ]+ -[ ]*28[ ]+vcvtps2pd zmm1, \[rax\]\{k1\} -[ ]*29[ ]+vcvtps2pd zmm1, \[rax\]\{z\} -[ ]*30[ ]+ -[ ]*31[ ]+vaddps zmm2, zmm1, QWORD PTR \[rax\]\{1to8\} -[ ]*32[ ]+vaddps zmm2, zmm1, QWORD PTR \[rax\]\{1to16\} -[ ]*33[ ]+vaddpd zmm2, zmm1, DWORD PTR \[rax\]\{1to8\} -[ ]*34[ ]+vaddpd zmm2, zmm1, DWORD PTR \[rax\]\{1to16\} -[ ]*35[ ]+vaddps zmm2, zmm1, ZMMWORD PTR \[rax\]\{1to16\} -[ ]*36[ ]+vaddps zmm2, zmm1, DWORD PTR \[rax\] -[ ]*37[ ]+vaddpd zmm2, zmm1, QWORD PTR \[rax\] +[ ]*3[ ]+\.allow_index_reg +[ ]*4[ ]+_start: +[ ]*5[ ]+mov \{sae\}, %rax\{%k1\} +[ ]*6[ ]+mov \{sae\}, %rax +[ ]*7[ ]+mov %rbx, %rax\{%k2\} +[ ]*8[ ]+vaddps %zmm3, %zmm1, %zmm2\{z\}\{%k1\}\{z\} +[ ]*9[ ]+vaddps %zmm3, %zmm1\{%k3\}, %zmm2\{z\} +[ ]*10[ ]+vaddps %zmm3, %zmm1\{%k1\}, %zmm2\{%k2\} +[ ]*11[ ]+ +[ ]*12[ ]+vcvtps2pd \(%rax\), %zmm1\{1to8\} +[ ]*13[ ]+vcvtps2pd \(%rax\)\{1to16\}, %zmm1 +[ ]*14[ ]+ +[ ]*15[ ]+vcvtps2pd \(%rax\)\{%k1\}, %zmm1 +[ ]*16[ ]+vcvtps2pd \(%rax\)\{z\}, %zmm1 +[ ]*17[ ]+ +[ ]*18[ ]+vgatherqpd \(%rdi\),%zmm6\{%k1\} +[ ]*19[ ]+vgatherqpd \(%zmm2\),%zmm6\{%k1\} +[ ]*20[ ]+ +[ ]*21[ ]+\.intel_syntax noprefix +[ ]*22[ ]+mov rax\{k1\}, \{sae\} +[ ]*23[ ]+mov rax, \{sae\} +[ ]*24[ ]+mov rax\{k2\}, rbx +[ ]*25[ ]+vaddps zmm2\{z\}\{k1\}\{z\}, zmm1, zmm3 +[ ]*26[ ]+vaddps zmm2\{z\}, zmm1\{k3\}, zmm3 +[ ]*27[ ]+vaddps zmm2\{k2\}, zmm1\{k1\}, zmm3 +[ ]*28[ ]+ +[ ]*29[ ]+vcvtps2pd zmm1\{1to8\}, \[rax\] +[ ]*30[ ]+vcvtps2pd zmm1, \[rax\]\{1to16\} +[ ]*31[ ]+ +[ ]*32[ ]+vcvtps2pd zmm1, \[rax\]\{k1\} +[ ]*33[ ]+vcvtps2pd zmm1, \[rax\]\{z\} +[ ]*34[ ]+ +[ ]*35[ ]+vgatherqpd zmm6\{k1\}, ZMMWORD PTR \[rdi\] +[ ]*36[ ]+vgatherqpd zmm6\{k1\}, ZMMWORD PTR \[zmm2\+riz\] +[ ]*37[ ]+ +[ ]*38[ ]+vaddps zmm2, zmm1, QWORD PTR \[rax\]\{1to8\} +[ ]*39[ ]+vaddps zmm2, zmm1, QWORD PTR \[rax\]\{1to16\} +[ ]*40[ ]+vaddpd zmm2, zmm1, DWORD PTR \[rax\]\{1to8\} +[ ]*41[ ]+vaddpd zmm2, zmm1, DWORD PTR \[rax\]\{1to16\} +[ ]*42[ ]+vaddps zmm2, zmm1, ZMMWORD PTR \[rax\]\{1to16\} +[ ]*43[ ]+vaddps zmm2, zmm1, DWORD PTR \[rax\] +[ ]*44[ ]+vaddpd zmm2, zmm1, QWORD PTR \[rax\] diff --git a/gas/testsuite/gas/i386/x86-64-inval-avx512f.s b/gas/testsuite/gas/i386/x86-64-inval-avx512f.s index 5ac7349..3ec42b4 100644 --- a/gas/testsuite/gas/i386/x86-64-inval-avx512f.s +++ b/gas/testsuite/gas/i386/x86-64-inval-avx512f.s @@ -1,5 +1,6 @@ # Check illegal AVX512F instructions .text + .allow_index_reg _start: mov {sae}, %rax{%k1} mov {sae}, %rax @@ -14,6 +15,9 @@ _start: vcvtps2pd (%rax){%k1}, %zmm1 vcvtps2pd (%rax){z}, %zmm1 + vgatherqpd (%rdi),%zmm6{%k1} + vgatherqpd (%zmm2),%zmm6{%k1} + .intel_syntax noprefix mov rax{k1}, {sae} mov rax, {sae} @@ -28,6 +32,9 @@ _start: vcvtps2pd zmm1, [rax]{k1} vcvtps2pd zmm1, [rax]{z} + vgatherqpd zmm6{k1}, ZMMWORD PTR [rdi] + vgatherqpd zmm6{k1}, ZMMWORD PTR [zmm2+riz] + vaddps zmm2, zmm1, QWORD PTR [rax]{1to8} vaddps zmm2, zmm1, QWORD PTR [rax]{1to16} vaddpd zmm2, zmm1, DWORD PTR [rax]{1to8}