History log of /llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp (Results 1 – 25 of 29)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init
# ee2722fc 24-Jan-2025 Phoebe Wang <phoebe.wang@intel.com>

[X86][AVX10.2-BF16] Remove [NE]P from intrinsic and instruction name (#123335)

Ref.: https://cdrdv2.intel.com/v1/dl/getContent/828965


Revision tags: llvmorg-19.1.7
# 9cd774d1 02-Jan-2025 Phoebe Wang <phoebe.wang@intel.com>

[X86][NFC] Move "_Int" after "k"/"kz" (#121450)

Address comment at
https://github.com/llvm/llvm-project/pull/121373#discussion_r1900402932


Revision tags: llvmorg-19.1.6, llvmorg-19.1.5
# 0b06301a 21-Nov-2024 Nabeel Omer <nabeel.omer@sony.com>

[X86] Fix shuffle comment decoding for vinsertps immediate operand (#117009)

The relevant bit from the Intel SDM for vinsertps semantics:
```
IF (SRC = REG) THEN COUNT_S := imm8[7:6] ELSE COUNT_S :=

[X86] Fix shuffle comment decoding for vinsertps immediate operand (#117009)

The relevant bit from the Intel SDM for vinsertps semantics:
```
IF (SRC = REG) THEN COUNT_S := imm8[7:6] ELSE COUNT_S := 0
```

This is now taken into account.

show more ...


# 7dcefb37 19-Nov-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86] Tidyup up AVX512 FPCLASS instruction naming (#116661)

FPCLASS is a unary instruction with an immediate operand - update the naming to match similar instructions (e.g. VPSHUFD) by only using th

[X86] Tidyup up AVX512 FPCLASS instruction naming (#116661)

FPCLASS is a unary instruction with an immediate operand - update the naming to match similar instructions (e.g. VPSHUFD) by only using the source reg/mem and immediate in the instruction name

show more ...


Revision tags: llvmorg-19.1.4, llvmorg-19.1.3
# 5c124349 29-Oct-2024 David Majnemer <david.majnemer@gmail.com>

[X86] Emit comments explaining the immediate in vfpclass

This makes the assembly a lot more readable at a glance.

As an example:
```
vfpclasspd $4, %zmm0, %k0 # k0 = isNegativeZero(zmm0)
```


Revision tags: llvmorg-19.1.2
# aa02b76b 01-Oct-2024 David Majnemer <david.majnemer@gmail.com>

[X86] Let's improve the expression we dump for vpternlog

Right now, we are printing stuff like:
zmm0 = (~zmm0 & zmm1 & mem) | (zmm0 & ~zmm1 & ~mem) |
(zmm0 & ~zmm1 & mem) | (zmm0 & zmm1 & ~

[X86] Let's improve the expression we dump for vpternlog

Right now, we are printing stuff like:
zmm0 = (~zmm0 & zmm1 & mem) | (zmm0 & ~zmm1 & ~mem) |
(zmm0 & ~zmm1 & mem) | (zmm0 & zmm1 & ~mem) |
(zmm0 & zmm1 & mem)

This is not wrong but it sure is verbose and it makes it a bit hard to
understand what is going on at a glance.

The above expression is equivalent to:
zmm0 = zmm0 | (zmm1 & mem)

I considered simplifying the expressions on the fly but that gets out of
hand very quickly. Quine-McCluskey is not so simple and so fast that it
makes a ton of sense for our pretty printer. I quickly played around
with some different normal forms and ended up just using this [1] table
of functions with some minor post-processing. I made sure that each
function is identical to the appropriate BooleanFunction in Mathematica.

If the size of these tables ends up mattering for whatever reason there
are a few obvious things we could do to save space without undue effort.

[1]: https://gist.github.com/dougallj/81a80cd381988466c4e1c4889ecac95b#file-2-x86-base-txt

show more ...


Revision tags: llvmorg-19.1.1
# 6c5277ba 30-Sep-2024 David Majnemer <david.majnemer@gmail.com>

[X86] Decode VPTERNLOG truth tables when disassembling

Alongside something like:
vpternlogq zmm0, zmm2, zmm1, 64

We will now have a comment on the right like:
# zmm0 = zmm0 & zmm2 & ~zmm1

[X86] Decode VPTERNLOG truth tables when disassembling

Alongside something like:
vpternlogq zmm0, zmm2, zmm1, 64

We will now have a comment on the right like:
# zmm0 = zmm0 & zmm2 & ~zmm1

This makes it easy to tell at a glance what sort of truth table the
instruction will provide.

show more ...


# c59ac1a2 18-Sep-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86] Cleanup AVX512 VBROADCAST subvector instruction names. (#108888)

This patch makes the `VBROADCAST***X**` subvector broadcast instructions consistent - the `***X**` section represents the origi

[X86] Cleanup AVX512 VBROADCAST subvector instruction names. (#108888)

This patch makes the `VBROADCAST***X**` subvector broadcast instructions consistent - the `***X**` section represents the original subvector type/size, but we were not correctly using the AVX512 Z/Z256/Z128 suffix to consistently represent the destination width (or we missed it entirely).

show more ...


Revision tags: llvmorg-19.1.0
# 614a064c 15-Sep-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86] Add missing immediate qualifier to the (V)INSERT/EXTRACT/PERM2 instruction names (#108593)

Makes it easier to algorithmically recreate the instruction name in various analysis scripts I'm work

[X86] Add missing immediate qualifier to the (V)INSERT/EXTRACT/PERM2 instruction names (#108593)

Makes it easier to algorithmically recreate the instruction name in various analysis scripts I'm working on

show more ...


# ba8e4246 15-Sep-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86] Add missing immediate qualifier to the (V)INSERTPS instruction names (#108568)

Matches (V)BLENDPS etc and makes it easier to algorithmically recreate the instruction name in various analysis s

[X86] Add missing immediate qualifier to the (V)INSERTPS instruction names (#108568)

Matches (V)BLENDPS etc and makes it easier to algorithmically recreate the instruction name in various analysis scripts I'm working on

show more ...


# a20a9738 14-Sep-2024 Craig Topper <craig.topper@sifive.com>

[X86] Use MCRegister in more places. NFC (#108682)


Revision tags: llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2
# f4714204 05-Feb-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86] printExtend - add support for mask predicated instructions

Remove handling from EmitAnyX86InstComments and handle all VPMOVSX/VPMOVZX comments in addConstantComments now that we can genericall

[X86] printExtend - add support for mask predicated instructions

Remove handling from EmitAnyX86InstComments and handle all VPMOVSX/VPMOVZX comments in addConstantComments now that we can generically handle the destination + mask register and shuffle mask comment

show more ...


# 69ffa7be 05-Feb-2024 Simon Pilgrim <RKSimon@users.noreply.github.com>

[X86] X86FixupVectorConstants - load+zero vector constants that can be stored in a truncated form (#80428)

Further develops the vsextload support added in #79815 / b5d35feacb7246573c6a4ab2bddc4919a4

[X86] X86FixupVectorConstants - load+zero vector constants that can be stored in a truncated form (#80428)

Further develops the vsextload support added in #79815 / b5d35feacb7246573c6a4ab2bddc4919a4228ed5 - reduces the size of the vector constant by storing it in the constant pool in a truncated form, and zero-extend it as part of the load.

show more ...


Revision tags: llvmorg-18.1.0-rc1, llvmorg-19-init
# a2a0089a 19-Jan-2024 Simon Pilgrim <RKSimon@users.noreply.github.com>

[X86] movsd/movss/movd/movq - add support for constant comments (#78601)

If we're loading a constant value, print the constant (and the zero upper elements) instead of just the shuffle mask.

This

[X86] movsd/movss/movd/movq - add support for constant comments (#78601)

If we're loading a constant value, print the constant (and the zero upper elements) instead of just the shuffle mask.

This did require me to move the shuffle mask handling into addConstantComments as we can't handle this in the MC layer.

show more ...


# d1deeae0 11-Dec-2023 Simon Pilgrim <RKSimon@users.noreply.github.com>

[X86] Rename VBROADCASTF128/VBROADCASTI128 to VBROADCASTF128rm/VBROADCASTI128rm (#75040)

Add missing rm postfix to show these are load instructions


Revision tags: llvmorg-17.0.6, llvmorg-17.0.5
# 860f9e51 01-Nov-2023 Shengchen Kan <shengchen.kan@intel.com>

[NFC][X86] Reorder the registers to reduce unnecessary iterations (#70222)

* Introduce field `PositionOrder` for class `Register` and
`RegisterTuples`
* If register A's `PositionOrder` < register

[NFC][X86] Reorder the registers to reduce unnecessary iterations (#70222)

* Introduce field `PositionOrder` for class `Register` and
`RegisterTuples`
* If register A's `PositionOrder` < register B's `PositionOrder`, then A
is placed before B in the enum in X86GenRegisterInfo.inc
* The new order of registers in the enum for X86 will be
1. Registers before AVX512,
2. AVX512 registers (X/YMM16-31, ZMM0-31, K registers)
3. AMX registers (TMM)
4. APX registers (R16-R31)
* Add a new target hook `getNumSupportedRegs()` to return the number of
registers for the function (may overestimate).
* Replace `getNumRegs()` with `getNumSupportedRegs()` in LiveVariables
to eliminate iterations on unsupported registers

This patch can reduce 0.3% instruction count regression for sqlite3
during compile-stage (O3) by not iterating on APX registers
for #67702

show more ...


Revision tags: llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init
# 6ae84d66 15-Jan-2023 Sergei Barannikov <barannikov88@gmail.com>

[MC] Use MCRegister instead of unsigned in MCInstPrinter (NFC)

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D140654


Revision tags: llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2
# de9d80c1 08-Aug-2022 Fangrui Song <i@maskray.me>

[llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC

With C++17 there is no Clang pedantic warning or MSVC C5051.


Revision tags: llvmorg-15.0.0-rc1, llvmorg-16-init
# 8d9dc83f 07-Jul-2022 Tim Northover <tnorthover@apple.com>

X86: add newline to end of FMA instruction comments.

The newline is used by Disassembler.cpp (`emitComments`) to work out how to
format them properly, and if there's no newline it goes into an infin

X86: add newline to end of FMA instruction comments.

The newline is used by Disassembler.cpp (`emitComments`) to work out how to
format them properly, and if there's no newline it goes into an infinite loop.

Unfortunately I couldn't get llvm-objdump to be affected, only the MacOS otool
utility which dlopens libLTO.

show more ...


Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2
# 0a08813c 12-Dec-2021 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86][MMX] Remove superfluous 'i' from MMX binop opnames. NFCI.

This is a very old copy+paste typo - none of these binops have an immediate operand.

Noticed while trying to merge MMX instructions i

[X86][MMX] Remove superfluous 'i' from MMX binop opnames. NFCI.

This is a very old copy+paste typo - none of these binops have an immediate operand.

Noticed while trying to merge MMX instructions into some existing SSE instruction scheduler instregex patterns.

show more ...


Revision tags: llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1
# 6dbf1a12 13-Apr-2020 Craig Topper <craig.topper@intel.com>

[X86] Move X86ShuffleDecode.cpp/h into MCTargetDesc and remove X86Utils library. NFC

The shuffle decoding is used by X86ISelLowering and
MCTargetDesc/X86InstComments. The latter used to be in a
sepa

[X86] Move X86ShuffleDecode.cpp/h into MCTargetDesc and remove X86Utils library. NFC

The shuffle decoding is used by X86ISelLowering and
MCTargetDesc/X86InstComments. The latter used to be in a
separate InstPrinter library. The Utils library existed to allow
InstPrinter and CodeGen to share the shuffle decoding. Since
X86InstComments now lives in the MCTargetDesc, which CodeGen
already depends on, we can sink the shuffle decoding there as well.

Differential Revision: https://reviews.llvm.org/D77980

show more ...


# 42fc7852 12-Apr-2020 Craig Topper <craig.topper@gmail.com>

[X86] Print k-mask in FMA3 comments.


Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4
# 1dbef64e 05-Mar-2020 Simon Pilgrim <llvm-dev@redking.me.uk>

Fix "Value stored to 'RegForm' is never read" static analyzer warnings. NFC.


Revision tags: llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2
# 4aa7b9cc 08-Feb-2020 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86] X86InstComments - add FMA4 comments

These typically match the FMA3 equivalents, although the multiply operands sometimes get flipped due to the FMA3 permute variants.


# 10417ad2 08-Feb-2020 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86] Standardize BROADCAST enum names (PR31079)

Tweak EVEX implementation names so it matches the other variants by adding the 'r' prefix. Oddly some of the subvec broadcast ops already matched.


12