- Apr 27, 2006
-
-
Evan Cheng authored
llvm-svn: 27993
-
Evan Cheng authored
llvm-svn: 27992
-
Evan Cheng authored
(VAND, VADD, etc.). Legalizer will assert otherwise. llvm-svn: 27991
-
Evan Cheng authored
llvm-svn: 27989
-
Evan Cheng authored
llvm-svn: 27988
-
Chris Lattner authored
PR748. llvm-svn: 27987
-
Evan Cheng authored
- Fixed vararg support. llvm-svn: 27985
-
Chris Lattner authored
nondeterminism being bad) could cause some trivial missed optimizations (dead phi nodes being left around for later passes to clean up). With this, llvm-gcc4 now bootstraps and correctly compares. I don't know why I never tried to do it before... :) llvm-svn: 27984
-
- Apr 26, 2006
-
-
Chris Lattner authored
recognize some simple affine IV's. llvm-svn: 27982
-
Evan Cheng authored
llvm-svn: 27980
-
Evan Cheng authored
llvm-svn: 27975
-
Evan Cheng authored
llvm-svn: 27974
-
- Apr 25, 2006
-
-
Nate Begeman authored
failres. llvm-svn: 27973
-
Evan Cheng authored
llvm-svn: 27972
-
Andrew Lenharth authored
llvm-svn: 27971
-
Andrew Lenharth authored
llvm-svn: 27970
-
Evan Cheng authored
llvm-svn: 27968
-
Nate Begeman authored
llvm-svn: 27967
-
Nate Begeman authored
llvm-svn: 27966
-
Evan Cheng authored
result). Otherwise tblgen will pick the default (v16i8 for 128-bit vector). llvm-svn: 27965
-
Evan Cheng authored
a temporary workaround for the 2-wide vector_shuffle problem (i.e. its mask would have type v2i32 which is not legal). llvm-svn: 27964
-
Evan Cheng authored
llvm-svn: 27963
-
Evan Cheng authored
llvm-svn: 27961
-
- Apr 24, 2006
-
-
Evan Cheng authored
llvm-svn: 27960
-
Evan Cheng authored
llvm-svn: 27959
-
Evan Cheng authored
llvm-svn: 27958
-
Evan Cheng authored
llvm-svn: 27955
-
- Apr 23, 2006
-
-
Chris Lattner authored
llvm-svn: 27954
-
Evan Cheng authored
llvm-svn: 27953
-
Nate Begeman authored
the jump table's range check block. This re-enables 100% dense jump tables by default on PPC & x86 llvm-svn: 27952
-
Nate Begeman authored
these. llvm-svn: 27950
-
Nate Begeman authored
updating the machine CFG. llvm-svn: 27949
-
Nate Begeman authored
llvm-svn: 27948
-
- Apr 22, 2006
-
-
Nate Begeman authored
x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. llvm-svn: 27947
-
Evan Cheng authored
Don't do all the lowering stuff for 2-wide build_vector's. Also, minor optimization for shuffle of undef. llvm-svn: 27946
-
Evan Cheng authored
Fix a performance regression. Use {p}shuf* when there are only two distinct elements in a build_vector. llvm-svn: 27945
-
Chris Lattner authored
llvm-svn: 27943
-
Chris Lattner authored
This allows Prolangs-C++/city and probably a bunch of other stuff to work well with the new front-end llvm-svn: 27941
-
Evan Cheng authored
movd always clear the top 96 bits and movss does so when it's loading the value from memory. The net result is codegen for 4-wide shuffles is much improved. It is near optimal if one or more elements is a zero. e.g. __m128i test(int a, int b) { return _mm_set_epi32(0, 0, b, a); } compiles to _test: movd 8(%esp), %xmm1 movd 4(%esp), %xmm0 punpckldq %xmm1, %xmm0 ret compare to gcc: _test: subl $12, %esp movd 20(%esp), %xmm0 movd 16(%esp), %xmm1 punpckldq %xmm0, %xmm1 movq %xmm1, %xmm0 movhps LC0, %xmm0 addl $12, %esp ret or icc: _test: movd 4(%esp), %xmm0 #5.10 movd 8(%esp), %xmm3 #5.10 xorl %eax, %eax #5.10 movd %eax, %xmm1 #5.10 punpckldq %xmm1, %xmm0 #5.10 movd %eax, %xmm2 #5.10 punpckldq %xmm2, %xmm3 #5.10 punpckldq %xmm3, %xmm0 #5.10 ret #5.10 There are still room for improvement, for example the FP variant of the above example: __m128 test(float a, float b) { return _mm_set_ps(0.0, 0.0, b, a); } _test: movss 8(%esp), %xmm1 movss 4(%esp), %xmm0 unpcklps %xmm1, %xmm0 xorps %xmm1, %xmm1 movlhps %xmm1, %xmm0 ret The xorps and movlhps are unnecessary. This will require post legalizer optimization to handle. llvm-svn: 27939
-
Nate Begeman authored
llvm-svn: 27938
-