Changes in directory llvm/utils/TableGen:
CodeGenTarget.cpp updated: 1.86 -> 1.87 --- Log message: Add support for the v1i64 type. This makes better code for this: #include <mmintrin.h> extern __m64 C; void baz(__v2si *A, __v2si *B) { *A = C; _mm_empty(); } We get this: _baz: call "L1$pb" "L1$pb": popl %eax movl L_C$non_lazy_ptr-"L1$pb"(%eax), %eax movq (%eax), %mm0 movl 4(%esp), %eax movq %mm0, (%eax) emms ret GCC gives us this: _baz: pushl %ebx call L3 "L00000000001$pb": L3: popl %ebx subl $8, %esp movl L_C$non_lazy_ptr-"L00000000001$pb"(%ebx), %eax movl (%eax), %edx movl 4(%eax), %ecx movl 16(%esp), %eax movl %edx, (%eax) movl %ecx, 4(%eax) emms addl $8, %esp popl %ebx ret --- Diffs of the changes: (+2 -0) CodeGenTarget.cpp | 2 ++ 1 files changed, 2 insertions(+) Index: llvm/utils/TableGen/CodeGenTarget.cpp diff -u llvm/utils/TableGen/CodeGenTarget.cpp:1.86 llvm/utils/TableGen/CodeGenTarget.cpp:1.87 --- llvm/utils/TableGen/CodeGenTarget.cpp:1.86 Mon Mar 19 01:20:37 2007 +++ llvm/utils/TableGen/CodeGenTarget.cpp Mon Mar 26 02:53:08 2007 @@ -52,6 +52,7 @@ case MVT::v8i8: return "MVT::v8i8"; case MVT::v4i16: return "MVT::v4i16"; case MVT::v2i32: return "MVT::v2i32"; + case MVT::v1i64: return "MVT::v1i64"; case MVT::v16i8: return "MVT::v16i8"; case MVT::v8i16: return "MVT::v8i16"; case MVT::v4i32: return "MVT::v4i32"; @@ -82,6 +83,7 @@ case MVT::v8i8: return "MVT::v8i8"; case MVT::v4i16: return "MVT::v4i16"; case MVT::v2i32: return "MVT::v2i32"; + case MVT::v1i64: return "MVT::v1i64"; case MVT::v16i8: return "MVT::v16i8"; case MVT::v8i16: return "MVT::v8i16"; case MVT::v4i32: return "MVT::v4i32"; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits