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.
//===---------------------------------------------------------------------===//
//===---------------------------------------------------------------------===//
-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: