[PATCH] D60546: [X86] Use MOVQ for i64 atomic_stores when SSE2 is enabled

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 24 12:17:23 PDT 2019


RKSimon accepted this revision.
RKSimon added a comment.
This revision is now accepted and ready to land.

LGTM



================
Comment at: llvm/lib/Target/X86/X86ISelLowering.h:594
+      // extract_vector_elt, store.
+      VEXTRACT_STORE,
+
----------------
craig.topper wrote:
> RKSimon wrote:
> > If we used MOVSD (f64 store) could we avoid needing this NodeType?
> if we don't use a dedicated X86ISD opcode, then we have to use ISD::ATOMIC_STORE. TargetSelectinoDAG has this type constraint which says that the store value type is integer. Perhaps we can relax that, but I don't know if there is some code assuming this.
> 
> ```
> def SDTAtomicStore : SDTypeProfile<0, 2, [
>   SDTCisPtrTy<0>, SDTCisInt<1>
> ]>;
> def atomic_store     : SDNode<"ISD::ATOMIC_STORE", SDTAtomicStore,
>                     [SDNPHasChain, SDNPMayStore, SDNPMemOperand]>;
> ```
OK - please can you raise a bug about whether SDTCisInt<1> can be relaxed?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60546/new/

https://reviews.llvm.org/D60546





More information about the llvm-commits mailing list