[all-commits] [llvm/llvm-project] 1ca809: [X86][MC] Support encoding/decoding for APX CCMP/C...

Shengchen Kan via All-commits all-commits at lists.llvm.org
Fri Mar 8 04:54:54 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1ca8092e87aea58f1c3752d03c20bdfc4259e409
      https://github.com/llvm/llvm-project/commit/1ca8092e87aea58f1c3752d03c20bdfc4259e409
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h
    M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
    M llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
    M llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
    M llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
    M llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h
    M llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
    M llvm/lib/Target/X86/X86InstrAsmAlias.td
    A llvm/lib/Target/X86/X86InstrConditionalCompare.td
    M llvm/lib/Target/X86/X86InstrFormats.td
    M llvm/lib/Target/X86/X86InstrInfo.td
    M llvm/lib/Target/X86/X86InstrOperands.td
    A llvm/test/MC/Disassembler/X86/apx/ccmp.txt
    M llvm/test/MC/Disassembler/X86/apx/reverse-encoding.txt
    A llvm/test/MC/X86/apx/ccmp-att-error.s
    A llvm/test/MC/X86/apx/ccmp-att.s
    A llvm/test/MC/X86/apx/ccmp-intel-error.s
    A llvm/test/MC/X86/apx/ccmp-intel.s
    M llvm/test/TableGen/x86-fold-tables.inc
    M llvm/tools/llvm-exegesis/lib/X86/Target.cpp
    M llvm/utils/TableGen/X86RecognizableInstr.cpp
    M llvm/utils/TableGen/X86RecognizableInstr.h

  Log Message:
  -----------
  [X86][MC] Support encoding/decoding for APX CCMP/CTEST (#83863)

APX assembly syntax recommendations:
  https://cdrdv2.intel.com/v1/dl/getContent/817241

NOTE:
The change in llvm/tools/llvm-exegesis/lib/X86/Target.cpp is for test
LLVM ::
tools/llvm-exegesis/X86/latency/latency-SETCCr-cond-codes-sweep.s

For `SETcc`, llvm-exegesis would randomly choose 1 other instruction to
test with `SETcc`, after selecting the instruction, llvm-exegesis would
check if the operand is initialized and valid, if not
`randomizeTargetMCOperand` would choose a value for invalid operand, it
misses support for condition code operand, which cause the flaky failure
after `CCMP` supported.

llvm-exegesis can choose `CCMP` without specifying ccmp feature b/c it
use `MCSubtarget` and only16/32/64 bit is considered.
llvm-exegesis doesn't choose other instructions b/c requirement in
`hasAliasingRegistersThrough`: the instruction should use GPR (defined
by `SETcc`) and define `EFLAGS` (used by `SETcc`).



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