[all-commits] [llvm/llvm-project] 212cba: [X86] Correct the cdisp8 encoding for VSCATTER/VGA...
Michael Clark via All-commits
all-commits at lists.llvm.org
Sat Jan 11 00:51:42 PST 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 212cba0ef37dd3b2a253c063240370de42fc67c1
https://github.com/llvm/llvm-project/commit/212cba0ef37dd3b2a253c063240370de42fc67c1
Author: Michael Clark <michaeljclark at mac.com>
Date: 2025-01-11 (Sat, 11 Jan 2025)
Changed paths:
M llvm/lib/Target/X86/X86InstrAVX512.td
M llvm/test/MC/X86/avx512pf-64-att.s
Log Message:
-----------
[X86] Correct the cdisp8 encoding for VSCATTER/VGATHER prefetch (#122051)
during differential fuzzing, I found 8 more instructions with disp8
offset multiplier differences to binutils. somewhat sure there is a bug
in the X86 LLVM disp8 offset multipliers for this subset of vector
scatter and gather prefetch instructions. please check and refer to the
previous pull request: https://github.com/llvm/llvm-project/pull/120340
these vector scatter and gather prefetch instructions also have an
unusual k mask operand position but I have not addressed this with this
patch as I am unsure how to change the Intel format in the tablegen
file.
```
hex: 62 f2 fd 49 c6 4c 51 01
llvm: vgatherpf0dpd {k1}, zmmword ptr [rcx + 2*ymm2 + 4]
ours: vgatherpf0dpd qword ptr * 8 [rcx + 2*ymm2 + 8] {k1}
gnu: vgatherpf0dpd QWORD PTR [rcx+ymm2*2+0x8]{k1}
hex: 62 f2 7d 49 c7 4c 51 01
llvm: vgatherpf0qps {k1}, ymmword ptr [rcx + 2*zmm2 + 8]
ours: vgatherpf0qps dword ptr * 8 [rcx + 2*zmm2 + 4] {k1}
gnu: vgatherpf0qps DWORD PTR [rcx+zmm2*2+0x4]{k1}
hex: 62 f2 fd 49 c6 54 51 01
llvm: vgatherpf1dpd {k1}, zmmword ptr [rcx + 2*ymm2 + 4]
ours: vgatherpf1dpd qword ptr * 8 [rcx + 2*ymm2 + 8] {k1}
gnu: vgatherpf1dpd QWORD PTR [rcx+ymm2*2+0x8]{k1}
hex: 62 f2 7d 49 c7 54 51 01
llvm: vgatherpf1qps {k1}, ymmword ptr [rcx + 2*zmm2 + 8]
ours: vgatherpf1qps dword ptr * 8 [rcx + 2*zmm2 + 4] {k1}
gnu: vgatherpf1qps DWORD PTR [rcx+zmm2*2+0x4]{k1}
hex: 62 f2 fd 49 c6 6c 51 01
llvm: vscatterpf0dpd {k1}, zmmword ptr [rcx + 2*ymm2 + 4]
ours: vscatterpf0dpd qword ptr * 8 [rcx + 2*ymm2 + 8] {k1}
gnu: vscatterpf0dpd QWORD PTR [rcx+ymm2*2+0x8]{k1}
hex: 62 f2 7d 49 c7 6c 51 01
llvm: vscatterpf0qps {k1}, ymmword ptr [rcx + 2*zmm2 + 8]
ours: vscatterpf0qps dword ptr * 8 [rcx + 2*zmm2 + 4] {k1}
gnu: vscatterpf0qps DWORD PTR [rcx+zmm2*2+0x4]{k1}
hex: 62 f2 fd 49 c6 74 51 01
llvm: vscatterpf1dpd {k1}, zmmword ptr [rcx + 2*ymm2 + 4]
ours: vscatterpf1dpd qword ptr * 8 [rcx + 2*ymm2 + 8] {k1}
gnu: vscatterpf1dpd QWORD PTR [rcx+ymm2*2+0x8]{k1}
hex: 62 f2 7d 49 c7 74 51 01
llvm: vscatterpf1qps {k1}, ymmword ptr [rcx + 2*zmm2 + 8]
ours: vscatterpf1qps dword ptr * 8 [rcx + 2*zmm2 + 4] {k1}
gnu: vscatterpf1qps DWORD PTR [rcx+zmm2*2+0x4]{k1}
```
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list