Chris Lattner
a8b1b4b5d2
Teach VMCore to constant fold shufflevectors with constant operands.
This allows us to compile:
#include <emmintrin.h>
typedef __m128i VSInt16;
typedef short vSInt16 __attribute__ ((__vector_size__ (16)));
VSInt16 t3() {
return (VSInt16)((vSInt16)_mm_set1_epi16(6518));
}
into:
_t3:
movaps LCPI1_0, %xmm0
ret
instead of:
_t3:
movl $6518, %eax
movd %eax, %xmm0
pextrw $0, %xmm0, %eax
xorps %xmm0, %xmm0
pinsrw $0, %eax, %xmm0
punpcklwd %xmm0, %xmm0
pshufd $0, %xmm0, %xmm0
ret
llvm-svn: 44856
2007-12-11 07:49:37 +00:00
..
2007-12-10 03:18:06 +00:00
2007-12-03 20:06:50 +00:00
2007-12-10 02:14:30 +00:00
2007-12-11 07:49:37 +00:00
2007-10-22 20:44:10 +00:00
2007-12-10 02:14:30 +00:00
2007-12-10 03:18:06 +00:00
2007-10-23 20:58:37 +00:00
2007-12-10 03:35:18 +00:00
2007-05-05 23:49:02 +00:00
2007-12-10 02:14:30 +00:00
2007-12-10 02:14:30 +00:00
2007-12-10 02:14:30 +00:00
2007-01-26 21:22:28 +00:00
2006-12-07 01:30:32 +00:00
2006-10-26 01:42:23 +00:00
2007-12-03 20:06:50 +00:00
2007-04-28 13:45:00 +00:00
2005-04-21 23:48:37 +00:00
2007-10-18 16:11:18 +00:00
2007-10-08 15:08:41 +00:00
2007-04-17 04:04:14 +00:00
2007-11-27 13:23:08 +00:00
2007-02-07 06:22:45 +00:00
2007-12-10 02:14:30 +00:00
2007-02-25 20:42:59 +00:00
2007-10-16 09:56:48 +00:00
2007-11-30 15:52:20 +00:00