[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/18700] Wrong code generated on i386 for instructions with AVX-5
From: |
lili.cui at intel dot com |
Subject: |
[Bug gas/18700] Wrong code generated on i386 for instructions with AVX-512 {sae} |
Date: |
Wed, 06 Nov 2024 08:48:25 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=18700
--- Comment #4 from lili.cui at intel dot com <lili.cui at intel dot com> ---
This is not an issue anymore.
I tested these instructions on a machine with AVX512 and they are correct.
0000000000001222 <foo>:
1222: f3 0f 1e fa endbr64
1226: 55 push %rbp
1227: 48 89 e5 mov %rsp,%rbp
122a: 62 f1 f5 18 c2 ca 00 vcmpeqpd {sae},%zmm2,%zmm1,%k1
1231: 62 f1 f5 48 c2 ca 00 vcmpeqpd %zmm2,%zmm1,%k1
1238: 62 f1 f7 18 c2 ca 00 vcmpeqsd {sae},%xmm2,%xmm1,%k1
123f: 62 f1 f7 08 c2 ca 00 vcmpeqsd %xmm2,%xmm1,%k1
1246: 62 f1 f5 38 c2 ca 00 vcmpeqpd {sae},%zmm2,%zmm1,%k1
124d: 5d pop %rbp
124e: c3 ret
For "62 f1 f5 38 c2 ca 00 vcmpeqpd {sae},%zmm2,%zmm1,%k1"
I think when reg-reg and EVEX.b is 1, vcmpeqpd will ignore EVEX.L'L(I tested
them in the foo), and when EVEX.b is 0, EVEX.L'L makes sense.
Thanks to Michael for pointing out the inconsistencies in SDM. I checked them
one by one in SDM and found that they have all been corrected. Now the logic is
clearer.
For vcmpeqpd :
1c: 62 f1 f5 18 c2 ca 00 vcmpeqpd {sae},%zmm2,%zmm1,%k1
23: 62 f1 f5 38 c2 ca 00 vcmpeqpd {sae},%zmm2,%zmm1,%k1
2a: 62 f1 f5 58 c2 ca 00 vcmpeqpd {sae},%zmm2,%zmm1,%k1
31: 62 f1 f5 78 c2 ca 00 vcmpeqpd {sae},%zmm2,%zmm1,%k1
I think when reg-reg and EVEX.b is 1, vcmpeqpd will ignore EVEX.L'L(I tested
them in the foo), and when EVEX.b is 0, EVEX.L'L makes sense.
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug gas/18700] Wrong code generated on i386 for instructions with AVX-512 {sae},
lili.cui at intel dot com <=