Update
authorEvan Cheng <evan.cheng@apple.com>
Thu, 13 Apr 2006 05:09:45 +0000 (05:09 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 13 Apr 2006 05:09:45 +0000 (05:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27643 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/README.txt

index 08dcf5afc42d4b5157d32f6ec091fc65c176a552..f58991728ea61c8feace00ac8b0ec74fc6bf0d87 100644 (file)
@@ -191,6 +191,18 @@ commutative, it is not matched with the load on both sides.  The dag combiner
 should be made smart enough to cannonicalize the load into the RHS of a compare
 when it can invert the result of the compare for free.
 
+How about intrinsics? An example is:
+  *res = _mm_mulhi_epu16(*A, _mm_mul_epu32(*B, *C));
+
+compiles to
+       pmuludq (%eax), %xmm0
+       movl 8(%esp), %eax
+       movdqa (%eax), %xmm1
+       pmulhuw %xmm0, %xmm1
+
+The transformation probably requires a X86 specific pass or a DAG combiner
+target specific hook.
+
 //===---------------------------------------------------------------------===//
 
 LSR should be turned on for the X86 backend and tuned to take advantage of its