Mark sse_load_f32 and sse_load_f64 as having memory operands
authorBill Wendling <isanbard@gmail.com>
Sun, 4 Jul 2010 08:59:55 +0000 (08:59 +0000)
committerBill Wendling <isanbard@gmail.com>
Sun, 4 Jul 2010 08:59:55 +0000 (08:59 +0000)
(SDNPMemOperand). This way when they're morphed the memory operands will be
copied as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107583 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrSSE.td

index fae2246a39a4234d56131168af119bfa19b5b641..992ad3446ec3461fe44d63f82be0ad22e5153ec7 100644 (file)
@@ -82,9 +82,9 @@ def X86ptest   : SDNode<"X86ISD::PTEST", SDTX86CmpPTest>;
 // the top elements.  These are used for the SSE 'ss' and 'sd' instruction
 // forms.
 def sse_load_f32 : ComplexPattern<v4f32, 5, "SelectScalarSSELoad", [],
-                                  [SDNPHasChain, SDNPMayLoad]>;
+                                  [SDNPHasChain, SDNPMayLoad, SDNPMemOperand]>;
 def sse_load_f64 : ComplexPattern<v2f64, 5, "SelectScalarSSELoad", [],
-                                  [SDNPHasChain, SDNPMayLoad]>;
+                                  [SDNPHasChain, SDNPMayLoad, SDNPMemOperand]>;
 
 def ssmem : Operand<v4f32> {
   let PrintMethod = "printf32mem";