git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42922 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2007-10-12 18:22:55 +00:00
parent 1ff2ddda08
commit 1c5d83c14e

View File

@ -89,6 +89,8 @@ Should we promote i16 to i32 to avoid partial register update stalls?
Leave any_extend as pseudo instruction and hint to register
allocator. Delay codegen until post register allocation.
Note. any_extend is now turned into an INSERT_SUBREG. We still need to teach
the coalescer how to deal with it though.
//===---------------------------------------------------------------------===//
@ -991,24 +993,6 @@ int %test2(int %X) {
//===---------------------------------------------------------------------===//
This:
#include <xmmintrin.h>
unsigned test(float f) {
return _mm_cvtsi128_si32( (__m128i) _mm_set_ss( f ));
}
Compiles to:
_test:
movss 4(%esp), %xmm0
movd %xmm0, %eax
ret
it should compile to a move from the stack slot directly into eax. DAGCombine
has this xform, but it is currently disabled until the alignment fields of
the load/store nodes are trustworthy.
//===---------------------------------------------------------------------===//
Sometimes it is better to codegen subtractions from a constant (e.g. 7-x) with
a neg instead of a sub instruction. Consider: