[all-commits] [llvm/llvm-project] 746c68: [LoongArch] Introduce `32s` target feature for LA3...
hev via All-commits
all-commits at lists.llvm.org
Tue May 20 03:28:29 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 746c682c4a8a6418fa7fca2c65176433135e6549
https://github.com/llvm/llvm-project/commit/746c682c4a8a6418fa7fca2c65176433135e6549
Author: hev <wangrui at loongson.cn>
Date: 2025-05-20 (Tue, 20 May 2025)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArch.td
M llvm/lib/Target/LoongArch/LoongArchExpandAtomicPseudoInsts.cpp
M llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.h
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
M llvm/test/CodeGen/LoongArch/alloca.ll
M llvm/test/CodeGen/LoongArch/alsl.ll
M llvm/test/CodeGen/LoongArch/annotate-tablejump.ll
M llvm/test/CodeGen/LoongArch/atomicrmw-cond-sub-clamp.ll
M llvm/test/CodeGen/LoongArch/atomicrmw-uinc-udec-wrap.ll
M llvm/test/CodeGen/LoongArch/bitreverse.ll
M llvm/test/CodeGen/LoongArch/bnez-beqz.ll
M llvm/test/CodeGen/LoongArch/branch-relaxation.ll
M llvm/test/CodeGen/LoongArch/bstrins_w.ll
M llvm/test/CodeGen/LoongArch/bstrpick_w.ll
M llvm/test/CodeGen/LoongArch/bswap-bitreverse.ll
M llvm/test/CodeGen/LoongArch/bswap.ll
M llvm/test/CodeGen/LoongArch/bytepick.ll
M llvm/test/CodeGen/LoongArch/ctlz-cttz-ctpop.ll
M llvm/test/CodeGen/LoongArch/ctpop-with-lsx.ll
M llvm/test/CodeGen/LoongArch/exception-pointer-register.ll
M llvm/test/CodeGen/LoongArch/fabs.ll
M llvm/test/CodeGen/LoongArch/fcopysign.ll
M llvm/test/CodeGen/LoongArch/feature-32bit.ll
M llvm/test/CodeGen/LoongArch/intrinsic-csr-side-effects.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/and.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/ashr.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/atomic-cmpxchg-128.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/atomic-cmpxchg.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/atomicrmw-fp.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/atomicrmw-lam-bh.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/atomicrmw-lamcas.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/atomicrmw-minmax.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/atomicrmw.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/br.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/double-convert.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/fcmp-dbl.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/fcmp-flt.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/float-convert.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/load-store-fp.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/load-store.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/lshr.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/mul.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/sdiv-udiv-srem-urem.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/select-bare-int.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/select-fpcc-int.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/select-icc-int.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/sext-zext-trunc.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/shl.ll
M llvm/test/CodeGen/LoongArch/jump-table.ll
M llvm/test/CodeGen/LoongArch/rotl-rotr.ll
M llvm/test/CodeGen/LoongArch/select-to-shiftand.ll
M llvm/test/CodeGen/LoongArch/shift-masked-shamt.ll
M llvm/test/CodeGen/LoongArch/smul-with-overflow.ll
M llvm/test/CodeGen/LoongArch/stack-realignment-with-variable-sized-objects.ll
M llvm/test/CodeGen/LoongArch/typepromotion-overflow.ll
M llvm/test/MC/LoongArch/Basic/Integer/atomic.s
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/loongarch_generated_funcs.ll.generated.expected
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/loongarch_generated_funcs.ll.nogenerated.expected
Log Message:
-----------
[LoongArch] Introduce `32s` target feature for LA32S ISA extensions (#139695)
According to the offical LoongArch reference manual, the 32-bit
LoongArch is divied into two variants: the Reduced version (LA32R) and
Standard version (LA32S). LA32S extends LA32R by adding additional
instructions, and the 64-bit version (LA64) fully includes the LA32S
instruction set.
This patch introduces a new target feature `32s` for the LoongArch
backend, enabling support for instructions specific to the LA32S
variant.
The LA32S exntension includes the following additional instructions:
- ALSL.W
- {AND,OR}N
- B{EQ,NE}Z
- BITREV.{4B,W}
- BSTR{INS,PICK}.W
- BYTEPICK.W
- CL{O,Z}.W
- CPUCFG
- CT{O,Z}.W
- EXT.W,{B,H}
- F{LD,ST}X.{D,S}
- MASK{EQ,NE}Z
- PC{ADDI,ALAU12I}
- REVB.2H
- ROTR{I},W
Additionally, LA32R defines three new instruction aliases:
- RDCNTID.W RJ => RDTIMEL.W ZERO, RJ
- RDCNTVH.W RD => RDTIMEH.W RD, ZERO
- RDCNTVL.W RD => RDTIMEL.W RD, ZERO
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