[PATCH] D18356: [selectionDAG][atomics] Add sign extension handling to atom cmp and swap

Simon Dardis via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 22 09:42:32 PDT 2016


sdardis created this revision.
sdardis added subscribers: t.p.northover, vkalintiris, llvm-commits.
Herald added a subscriber: dsanders.

ATOMIC_CMP_AND_SWAP_WITH_SUCCESS needs to generate sign extension nodes for
targets that sign extend their implementation of ATOMIC_CMP_AND_SWAP.

This is required as MIPS canonicalises the result of atomic operations into sign extended
form. The resulting setCC can then have ATOMIC_CMP_AND_SWAP operand which is
signed and an operand which may be unsigned.


http://reviews.llvm.org/D18356

Files:
  include/llvm/Target/TargetLowering.h
  lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  lib/Target/Mips/MipsISelLowering.h
  test/CodeGen/Mips/atomic.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18356.51292.patch
Type: text/x-patch
Size: 5291 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160322/16c4da2b/attachment.bin>


More information about the llvm-commits mailing list