Changes in directory llvm/lib/Target/X86:
README.txt updated: 1.75 -> 1.76 --- Log message: Added a couple of entries about movhps and movlhps. --- Diffs of the changes: (+26 -0) README.txt | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+) Index: llvm/lib/Target/X86/README.txt diff -u llvm/lib/Target/X86/README.txt:1.75 llvm/lib/Target/X86/README.txt:1.76 --- llvm/lib/Target/X86/README.txt:1.75 Mon Mar 27 20:44:05 2006 +++ llvm/lib/Target/X86/README.txt Mon Mar 27 20:49:12 2006 @@ -662,3 +662,29 @@ Obviously it would have been better for the first mov (or any op) to store directly %esp[0] if there are no other uses. + +//===---------------------------------------------------------------------===// + +Is it really a good idea to use movlhps to move 1 double-precision FP value from +low quadword of source to high quadword of destination? + +e.g. + +void test2 (v2sd *b, double X, double Y) { + v2sd a = (v2sd) {X, X*Y}; + *b = a; +} + + movsd 8(%esp), %xmm0 + movapd %xmm0, %xmm1 + mulsd 16(%esp), %xmm1 + movlhps %xmm1, %xmm0 + movl 4(%esp), %eax + movapd %xmm0, (%eax) + ret + +icc uses unpcklpd instead. + +//===---------------------------------------------------------------------===// + +Use movhps and movlhps to update upper 64-bits of a v4sf value. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits