[PATCH] Match new shuffle codegen for MOVHPD patterns (PR21791)

Sanjay Patel spatel at rotateright.com
Fri Dec 12 11:18:24 PST 2014


REPOSITORY
  rL LLVM

================
Comment at: llvm/trunk/lib/Target/X86/X86InstrSSE.td:1381-1385
@@ -1371,2 +1380,7 @@
             (MOVHPDrm VR128:$src1, addr:$src2)>;
+
+  def : Pat<(store (f64 (vector_extract
+                          (v2f64 (X86Shufp VR128:$src, VR128:$src, (i8 1))),
+                          (iPTR 0))), addr:$dst),
+            (MOVHPDmr addr:$dst, VR128:$src)>;
 }
----------------
tstellarAMD wrote:
> The types on the output pattern aren't needed any more, so you can do:
> 
> (MOVHPDmr $dst, $src)
> 
> Also, you can use types instead of register class on the input patterns.
> 
> 
If I remove the types on that output line, I get an error:
/path/to/X86InstrSSE.td:1382:3: error: In anonymous_2468: Instruction 'MOVHPDmr' expects more than the provided 2 operands!

Something in the definition also needs to change for that to work?

http://reviews.llvm.org/D6586

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list