mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-27 16:17:17 +00:00
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51060 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -764,4 +764,28 @@ madd:
|
|||||||
|
|
||||||
//===---------------------------------------------------------------------===//
|
//===---------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
Consider:
|
||||||
|
#include <emmintrin.h>
|
||||||
|
__m128 foo2 (float x) {
|
||||||
|
return _mm_set_ps (0, 0, x, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
In x86-32 mode, we generate this spiffy code:
|
||||||
|
|
||||||
|
_foo2:
|
||||||
|
movss 4(%esp), %xmm0
|
||||||
|
pshufd $81, %xmm0, %xmm0
|
||||||
|
ret
|
||||||
|
|
||||||
|
in x86-64 mode, we generate this code, which could be better:
|
||||||
|
|
||||||
|
_foo2:
|
||||||
|
xorps %xmm1, %xmm1
|
||||||
|
movss %xmm0, %xmm1
|
||||||
|
pshufd $81, %xmm1, %xmm0
|
||||||
|
ret
|
||||||
|
|
||||||
|
In sse4 mode, we could use insertps to make both better.
|
||||||
|
|
||||||
|
//===---------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user