Go to file
Chris Lattner 9fa15c3608 ignore structs that wrap vectors in IR, the abstraction shouldn't add penalty.
Before we'd compile the example into something like:

  %coerce.dive2 = getelementptr %struct.v4f32wrapper* %retval, i32 0, i32 0 ; <<4 x float>*> [#uses=1]
  %1 = bitcast <4 x float>* %coerce.dive2 to <2 x double>* ; <<2 x double>*> [#uses=1]
  %2 = load <2 x double>* %1, align 1             ; <<2 x double>> [#uses=1]
  ret <2 x double> %2

Now we produce:

  %coerce.dive2 = getelementptr %struct.v4f32wrapper* %retval, i32 0, i32 0 ; <<4 x float>*> [#uses=1]
  %0 = load <4 x float>* %coerce.dive2, align 1   ; <<4 x float>> [#uses=1]
  ret <4 x float> %0

llvm-svn: 109732
2010-07-29 05:02:29 +00:00
clang ignore structs that wrap vectors in IR, the abstraction shouldn't add penalty. 2010-07-29 05:02:29 +00:00
compiler-rt add assembly implementation of modsi3 so compiler does not have to special case a - (a / b) * b optimization 2010-07-27 06:24:32 +00:00
libcxx fix bug incrementing past end in search 2010-07-29 01:15:27 +00:00
lldb Removed debug stmts checked into the previous commit. 2010-07-29 00:40:06 +00:00
llvm Make sure to include config.h, to pickup LLVM_ON_WIN32. 2010-07-29 01:52:04 +00:00