diff options
author | Jan Beulich <jbeulich@suse.com> | 2022-05-27 08:48:09 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2022-05-27 08:48:09 +0200 |
commit | cf665fee1d6c9efa2e59af496cd132393732306d (patch) | |
tree | 8467df5482798450a31184c949c0b69d0f729dc7 /gas/testsuite | |
parent | 90a00d6c65e7cd015ab133a129819bddf685c2b3 (diff) |
x86: re-work AVX512 embedded rounding / SAE
As a preparatory step to allowing proper non-operand forms of specifying
embedded rounding / SAE, convert the internal representation to non-
operand form. While retaining properties (and in a few cases perhaps
providing more meaningful diagnostics), this means doing away with a few
hundred standalone templates, thus - as a nice side effect - reducing
memory consumption / cache occupancy.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/gas/i386/inval-avx512f.l | 29 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/inval-avx512f.s | 17 |
2 files changed, 46 insertions, 0 deletions
diff --git a/gas/testsuite/gas/i386/inval-avx512f.l b/gas/testsuite/gas/i386/inval-avx512f.l index 5401f1aeac..84a13c8da0 100644 --- a/gas/testsuite/gas/i386/inval-avx512f.l +++ b/gas/testsuite/gas/i386/inval-avx512f.l @@ -228,6 +228,16 @@ .*:333: Error: .*vaddpd.* .*:334: Error: .*vaddpd.* .*:336: Error: .* +.*:340: Error: .*vaddps.* +.*:341: Error: .*vaddps.* +.*:342: Error: .*vaddps.* +.*:344: Error: .*vcmpps.* +.*:346: Error: .*vcmpps.* +.*:347: Error: .*vcmpps.* +.*:348: Error: .*vcmpps.* +.*:350: Error: .*vcvtsi2ss.* +.*:352: Error: .*vcvtsi2ss.* +.*:353: Error: .*vcvtsi2ss.* GAS LISTING .* @@ -600,4 +610,23 @@ GAS LISTING .* [ ]*335 \?\?\?\? 62F1F558[ ]+vaddpd zmm2, zmm1, QWORD BCST \[eax\] [ ]*335[ ]+5810 [ ]*336[ ].*vaddpd zmm2, zmm1, ZMMWORD BCST \[eax\] +#... +[ ]*339[ ].*vaddps \{rn-sae\}, %zmm0, %zmm0, %zmm0 +[ ]*339[ ]+58C0 +[ ]*340[ ]+vaddps %zmm0, \{rn-sae\}, %zmm0, %zmm0 +[ ]*341[ ]+vaddps %zmm0, %zmm0, \{rn-sae\}, %zmm0 +[ ]*342[ ]+vaddps %zmm0, %zmm0, %zmm0, \{rn-sae\} +[ ]*343[ ]* +[ ]*344[ ]+vcmpps \{sae\}, \$0, %zmm0, %zmm0, %k0 +[ ]*345[ ].*vcmpps \$0, \{sae\}, %zmm0, %zmm0, %k0 +[ ]*345[ ]+C2C000 +[ ]*346[ ]+vcmpps \$0, %zmm0, \{sae\}, %zmm0, %k0 +[ ]*347[ ]+vcmpps \$0, %zmm0, %zmm0, \{sae\}, %k0 +[ ]*348[ ]+vcmpps \$0, %zmm0, %zmm0, %k0, \{sae\} +[ ]*349[ ]* +[ ]*350[ ]+vcvtsi2ss \{rn-sae\}, %eax, %xmm0, %xmm0 +[ ]*351[ ].*vcvtsi2ss %eax, \{rn-sae\}, %xmm0, %xmm0 +[ ]*351[ ]+2AC0 +[ ]*352[ ]+vcvtsi2ss %eax, %xmm0, \{rn-sae\}, %xmm0 +[ ]*353[ ]+vcvtsi2ss %eax, %xmm0, %xmm0, \{rn-sae\} #pass diff --git a/gas/testsuite/gas/i386/inval-avx512f.s b/gas/testsuite/gas/i386/inval-avx512f.s index d46c8e2d02..5f3aab4b4d 100644 --- a/gas/testsuite/gas/i386/inval-avx512f.s +++ b/gas/testsuite/gas/i386/inval-avx512f.s @@ -335,4 +335,21 @@ _start: vaddpd zmm2, zmm1, QWORD BCST [eax] vaddpd zmm2, zmm1, ZMMWORD BCST [eax] + .att_syntax prefix + vaddps {rn-sae}, %zmm0, %zmm0, %zmm0 + vaddps %zmm0, {rn-sae}, %zmm0, %zmm0 + vaddps %zmm0, %zmm0, {rn-sae}, %zmm0 + vaddps %zmm0, %zmm0, %zmm0, {rn-sae} + + vcmpps {sae}, $0, %zmm0, %zmm0, %k0 + vcmpps $0, {sae}, %zmm0, %zmm0, %k0 + vcmpps $0, %zmm0, {sae}, %zmm0, %k0 + vcmpps $0, %zmm0, %zmm0, {sae}, %k0 + vcmpps $0, %zmm0, %zmm0, %k0, {sae} + + vcvtsi2ss {rn-sae}, %eax, %xmm0, %xmm0 + vcvtsi2ss %eax, {rn-sae}, %xmm0, %xmm0 + vcvtsi2ss %eax, %xmm0, {rn-sae}, %xmm0 + vcvtsi2ss %eax, %xmm0, %xmm0, {rn-sae} + .p2align 4 |