[all-commits] [llvm/llvm-project] d56d12: [LLVM][AArch64] Add native ct.select support for A...

Julius Alexandre via All-commits all-commits at lists.llvm.org
Sat Dec 6 21:22:58 PST 2025


  Branch: refs/heads/users/wizardengineer/ct-select-aarch64
  Home:   https://github.com/llvm/llvm-project
  Commit: d56d121e45fef048b2a09e9a5af2a147d23d7be3
      https://github.com/llvm/llvm-project/commit/d56d121e45fef048b2a09e9a5af2a147d23d7be3
  Author: wizardengineer <juliuswoosebert at gmail.com>
  Date:   2025-12-07 (Sun, 07 Dec 2025)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
    A llvm/test/CodeGen/AArch64/ctselect.ll

  Log Message:
  -----------
  [LLVM][AArch64] Add native ct.select support for ARM64

This patch implements architecture-specific lowering for ct.select on AArch64
using CSEL (conditional select) instructions for constant-time selection.

Implementation details:
- Uses CSEL family of instructions for scalar integer types
- Uses FCSEL for floating-point types (F16, BF16, F32, F64)
- Post-RA MC lowering to convert pseudo-instructions to real CSEL/FCSEL
- Handles vector types appropriately
- Comprehensive test coverage for AArch64

The implementation includes:
- ISelLowering: Custom lowering to CTSELECT pseudo-instructions
- InstrInfo: Pseudo-instruction definitions and patterns
- MCInstLower: Post-RA lowering of pseudo-instructions to actual CSEL/FCSEL
- Proper handling of condition codes for constant-time guarantees



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